File tree Expand file tree Collapse file tree 2 files changed +69
-0
lines changed
contrib/ruby_event_store-transformations
lib/ruby_event_store/transformations Expand file tree Collapse file tree 2 files changed +69
-0
lines changed Original file line number Diff line number Diff line change 1+ # frozen_string_literal: true
2+
3+ module RubyEventStore
4+ module Transformations
5+ class EventClassRemapper
6+ def initialize ( class_map )
7+ @class_map = class_map
8+ end
9+
10+ def dump ( record )
11+ record
12+ end
13+
14+ def load ( record )
15+ Record . new (
16+ event_id : record . event_id ,
17+ event_type : class_map [ record . event_type ] || record . event_type ,
18+ data : record . data ,
19+ metadata : record . metadata ,
20+ timestamp : record . timestamp ,
21+ valid_at : record . valid_at
22+ )
23+ end
24+
25+ private
26+
27+ attr_reader :class_map
28+ end
29+ end
30+ end
Original file line number Diff line number Diff line change 1+ require "spec_helper"
2+
3+ module RubyEventStore
4+ module Transformations
5+ ::RSpec . describe EventClassRemapper do
6+ let ( :time ) { Time . now . utc }
7+ let ( :uuid ) { SecureRandom . uuid }
8+
9+ def record ( event_type : "TestEvent" )
10+ Record . new (
11+ event_id : uuid ,
12+ metadata : {
13+ some : "meta"
14+ } ,
15+ data : {
16+ some : "value"
17+ } ,
18+ event_type : event_type ,
19+ timestamp : time ,
20+ valid_at : time
21+ )
22+ end
23+
24+ let ( :changeable_record ) { record ( event_type : "EventNameBeforeRefactor" ) }
25+ let ( :changed_record ) { record ( event_type : "SomethingHappened" ) }
26+ let ( :class_map ) { { "EventNameBeforeRefactor" => "SomethingHappened" } }
27+
28+ specify "#dump" do
29+ expect ( EventClassRemapper . new ( class_map ) . dump ( record ) ) . to eq ( record )
30+ expect ( EventClassRemapper . new ( class_map ) . dump ( record ) ) . to eq ( record )
31+ end
32+
33+ specify "#load" do
34+ expect ( EventClassRemapper . new ( class_map ) . load ( record ) ) . to eq ( record )
35+ expect ( EventClassRemapper . new ( class_map ) . load ( changeable_record ) ) . to eq ( changed_record )
36+ end
37+ end
38+ end
39+ end
You can’t perform that action at this time.
0 commit comments