synapse-core 0.5.1 → 0.5.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/lib/synapse.rb +1 -1
- data/lib/synapse/command.rb +1 -1
- data/lib/synapse/command/command_handler.rb +1 -1
- data/lib/synapse/command/mapping.rb +71 -0
- data/lib/synapse/command/message.rb +0 -16
- data/lib/synapse/command/simple_command_bus.rb +5 -2
- data/lib/synapse/common/message.rb +16 -0
- data/lib/synapse/configuration.rb +1 -18
- data/lib/synapse/configuration/component/command_bus.rb +7 -24
- data/lib/synapse/configuration/component/command_bus/simple_command_bus.rb +31 -7
- data/lib/synapse/configuration/component/event_bus.rb +3 -8
- data/lib/synapse/configuration/component/event_sourcing.rb +11 -8
- data/lib/synapse/configuration/component/event_sourcing/aggregate_snapshot_taker.rb +48 -0
- data/lib/synapse/configuration/component/event_sourcing/interval_snapshot_policy.rb +33 -0
- data/lib/synapse/configuration/component/event_sourcing/repository.rb +36 -1
- data/lib/synapse/configuration/component/repository.rb +4 -8
- data/lib/synapse/configuration/component/serialization.rb +5 -16
- data/lib/synapse/configuration/component/uow.rb +3 -8
- data/lib/synapse/configuration/component/upcasting.rb +3 -8
- data/lib/synapse/configuration/container_builder.rb +29 -2
- data/lib/synapse/configuration/definition_builder.rb +47 -23
- data/lib/synapse/domain/message.rb +0 -16
- data/lib/synapse/event_bus.rb +1 -1
- data/lib/synapse/event_bus/event_listener.rb +1 -1
- data/lib/synapse/event_bus/mapping.rb +47 -0
- data/lib/synapse/event_sourcing.rb +3 -2
- data/lib/synapse/event_sourcing/aggregate_factory.rb +4 -3
- data/lib/synapse/event_sourcing/aggregate_root.rb +17 -0
- data/lib/synapse/event_sourcing/conflict_resolver.rb +3 -0
- data/lib/synapse/event_sourcing/member.rb +34 -6
- data/lib/synapse/event_sourcing/repository.rb +17 -0
- data/lib/synapse/event_sourcing/snapshot/aggregate_taker.rb +38 -0
- data/lib/synapse/event_sourcing/snapshot/policy.rb +27 -0
- data/lib/synapse/event_sourcing/snapshot/taker.rb +2 -37
- data/lib/synapse/event_sourcing/snapshot/unit_listener.rb +26 -0
- data/lib/synapse/event_sourcing/stream_decorator.rb +8 -6
- data/lib/synapse/event_store/errors.rb +2 -2
- data/lib/synapse/mapping.rb +2 -0
- data/lib/synapse/mapping/mapper.rb +75 -0
- data/lib/synapse/{wiring/wire.rb → mapping/mapping.rb} +8 -8
- data/lib/synapse/process_manager.rb +2 -2
- data/lib/synapse/process_manager/mapping/process.rb +44 -0
- data/lib/synapse/process_manager/{wiring → mapping}/process_manager.rb +13 -13
- data/lib/synapse/process_manager/process.rb +3 -3
- data/lib/synapse/repository/locking.rb +14 -8
- data/lib/synapse/upcasting/upcaster_chain.rb +2 -2
- data/lib/synapse/version.rb +1 -1
- data/test/command/{wiring_test.rb → mapping_test.rb} +11 -11
- data/test/configuration/component/command_bus/simple_command_bus_test.rb +30 -0
- data/test/configuration/component/event_bus/simple_event_bus_test.rb +2 -2
- data/test/configuration/component/event_sourcing/repository_test.rb +71 -0
- data/test/configuration/component/repository/simple_repository_test.rb +35 -0
- data/test/configuration/component/upcasting/upcaster_chain_test.rb +29 -0
- data/test/configuration/container_builder_test.rb +4 -6
- data/test/event_bus/{wiring_test.rb → mapping_test.rb} +6 -6
- data/test/event_sourcing/aggregate_factory_test.rb +5 -1
- data/test/event_sourcing/aggregate_root_test.rb +1 -0
- data/test/event_sourcing/fixtures.rb +21 -21
- data/test/event_sourcing/repository_test.rb +10 -0
- data/test/event_sourcing/snapshot/aggregate_taker_test.rb +1 -1
- data/test/event_sourcing/snapshot/interval_policy_test.rb +24 -0
- data/test/process_manager/{wiring → mapping}/fixtures.rb +7 -8
- data/test/process_manager/{wiring → mapping}/process_manager_test.rb +6 -6
- data/test/process_manager/{wiring → mapping}/process_test.rb +3 -3
- data/test/serialization/converter/chain_test.rb +2 -2
- data/test/serialization/converter/factory_test.rb +2 -2
- data/test/serialization/converter/identity_test.rb +1 -1
- data/test/serialization/converter/json_test.rb +2 -2
- data/test/serialization/converter/ox_test.rb +2 -2
- data/test/serialization/lazy_object_test.rb +1 -1
- data/test/serialization/message/metadata_test.rb +1 -1
- data/test/serialization/message/serialization_aware_message_test.rb +5 -5
- data/test/serialization/message/serialized_message_builder_test.rb +1 -1
- data/test/serialization/message/serialized_message_test.rb +5 -5
- data/test/serialization/message/serializer_test.rb +2 -2
- data/test/serialization/revision_resolver_test.rb +1 -1
- data/test/serialization/serialized_object_test.rb +2 -2
- data/test/serialization/serialized_type_test.rb +2 -2
- data/test/serialization/serializer/marshal_test.rb +1 -1
- data/test/serialization/serializer/oj_test.rb +1 -1
- data/test/serialization/serializer/ox_test.rb +2 -2
- data/test/serialization/serializer_test.rb +1 -1
- data/test/uow/factory_test.rb +1 -1
- data/test/uow/outer_commit_listener_test.rb +4 -4
- data/test/uow/provider_test.rb +5 -5
- data/test/uow/uow_test.rb +19 -17
- data/test/upcasting/chain_test.rb +1 -1
- data/test/upcasting/data_test.rb +3 -1
- metadata +30 -37
- data/lib/synapse/command/wiring.rb +0 -47
- data/lib/synapse/event_bus/wiring.rb +0 -20
- data/lib/synapse/event_sourcing/snapshot/count_stream.rb +0 -86
- data/lib/synapse/event_sourcing/snapshot/count_trigger.rb +0 -91
- data/lib/synapse/process_manager/wiring/process.rb +0 -27
- data/lib/synapse/wiring.rb +0 -3
- data/lib/synapse/wiring/message_wiring.rb +0 -76
- data/lib/synapse/wiring/wire_registry.rb +0 -61
- data/test/event_sourcing/snapshot/integration_test.rb +0 -65
- data/test/wiring/wire_registry_test.rb +0 -60
- data/test/wiring/wire_test.rb +0 -51
@@ -0,0 +1,29 @@
|
|
1
|
+
module Synapse
|
2
|
+
module Configuration
|
3
|
+
class UpcasterChainDefinitionBuilderTest < Test::Unit::TestCase
|
4
|
+
|
5
|
+
def setup
|
6
|
+
@container = Container.new
|
7
|
+
@builder = ContainerBuilder.new @container
|
8
|
+
end
|
9
|
+
|
10
|
+
should 'build with sensible defaults' do
|
11
|
+
@builder.converter_factory
|
12
|
+
@builder.factory :some_upcaster, :tag => :upcaster do
|
13
|
+
Object.new
|
14
|
+
end
|
15
|
+
|
16
|
+
@builder.upcaster_chain
|
17
|
+
|
18
|
+
converter_factory = @container.resolve :converter_factory
|
19
|
+
some_upcaster = @container.resolve :some_upcaster
|
20
|
+
|
21
|
+
upcaster_chain = @container.resolve :upcaster_chain
|
22
|
+
|
23
|
+
assert_same converter_factory, upcaster_chain.converter_factory
|
24
|
+
assert_includes upcaster_chain.upcasters, some_upcaster
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -17,7 +17,7 @@ module Synapse
|
|
17
17
|
ContainerBuilder.initializers = @initializers
|
18
18
|
end
|
19
19
|
|
20
|
-
|
20
|
+
should 'call initializers upon creation' do
|
21
21
|
ContainerBuilder.initializer do
|
22
22
|
definition :test_definition do
|
23
23
|
tag :derp
|
@@ -29,12 +29,10 @@ module Synapse
|
|
29
29
|
assert @container.registered? :test_definition
|
30
30
|
end
|
31
31
|
|
32
|
-
|
32
|
+
should 'create a simple definition from a factory' do
|
33
33
|
builder = ContainerBuilder.new @container
|
34
|
-
builder.
|
35
|
-
|
36
|
-
123
|
37
|
-
end
|
34
|
+
builder.factory :derp_service, :tag => [:first_tag, :nth_tag] do
|
35
|
+
123
|
38
36
|
end
|
39
37
|
|
40
38
|
assert @container.registered? :derp_service
|
@@ -3,9 +3,9 @@ require 'test_helper'
|
|
3
3
|
module Synapse
|
4
4
|
module EventBus
|
5
5
|
|
6
|
-
class
|
6
|
+
class MappingEventListenerTest < Test::Unit::TestCase
|
7
7
|
should 'use the correct handler when notified of an events' do
|
8
|
-
listener =
|
8
|
+
listener = ExampleMappingEventListener.new
|
9
9
|
|
10
10
|
event = Domain::EventMessage.build do |builder|
|
11
11
|
builder.payload = TestEvent.new
|
@@ -28,16 +28,16 @@ module Synapse
|
|
28
28
|
class TestEvent; end
|
29
29
|
class TestSubEvent < TestEvent; end
|
30
30
|
|
31
|
-
class
|
32
|
-
include
|
31
|
+
class ExampleMappingEventListener
|
32
|
+
include MappingEventListener
|
33
33
|
|
34
34
|
attr_accessor :handled, :sub_handled
|
35
35
|
|
36
|
-
|
36
|
+
map_event TestEvent do |event|
|
37
37
|
@handled = true
|
38
38
|
end
|
39
39
|
|
40
|
-
|
40
|
+
map_event TestSubEvent do |event|
|
41
41
|
@sub_handled = true
|
42
42
|
end
|
43
43
|
end
|
@@ -20,13 +20,17 @@ module Synapse
|
|
20
20
|
|
21
21
|
should 'use an aggregate snapshot if available' do
|
22
22
|
snapshot = StubAggregate.new 123
|
23
|
+
snapshot.change_something
|
24
|
+
snapshot.mark_committed
|
25
|
+
|
23
26
|
snapshot_event = Domain::DomainEventMessage.build do |m|
|
24
27
|
m.payload = snapshot
|
25
28
|
end
|
26
29
|
|
27
30
|
aggregate = @factory.create_aggregate 123, snapshot_event
|
28
31
|
|
29
|
-
|
32
|
+
assert_same snapshot, aggregate
|
33
|
+
assert_equal snapshot.version, aggregate.initial_version
|
30
34
|
end
|
31
35
|
end
|
32
36
|
|
@@ -9,6 +9,18 @@ module Synapse
|
|
9
9
|
end
|
10
10
|
end
|
11
11
|
|
12
|
+
class StubCreatedEvent
|
13
|
+
attr_reader :id
|
14
|
+
|
15
|
+
def initialize(id)
|
16
|
+
@id = id
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
class StubDeletedEvent; end
|
21
|
+
|
22
|
+
class StubChangedEvent; end
|
23
|
+
|
12
24
|
class StubAggregate
|
13
25
|
include AggregateRoot
|
14
26
|
|
@@ -35,16 +47,16 @@ module Synapse
|
|
35
47
|
@stub_entities = Array.new
|
36
48
|
end
|
37
49
|
|
38
|
-
|
39
|
-
|
40
|
-
|
50
|
+
map_event StubCreatedEvent do |event|
|
51
|
+
@id = event.id
|
52
|
+
end
|
41
53
|
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
mark_deleted
|
46
|
-
end
|
54
|
+
map_event StubDeletedEvent do |event|
|
55
|
+
mark_deleted
|
56
|
+
end
|
47
57
|
|
58
|
+
def handle_event(event)
|
59
|
+
super
|
48
60
|
@event_count = @event_count.next
|
49
61
|
end
|
50
62
|
end
|
@@ -69,17 +81,5 @@ module Synapse
|
|
69
81
|
end
|
70
82
|
end
|
71
83
|
|
72
|
-
class StubCreatedEvent
|
73
|
-
attr_reader :id
|
74
|
-
|
75
|
-
def initialize(id)
|
76
|
-
@id = id
|
77
|
-
end
|
78
|
-
end
|
79
|
-
|
80
|
-
class StubDeletedEvent; end
|
81
|
-
|
82
|
-
class StubChangedEvent; end
|
83
|
-
|
84
84
|
end
|
85
|
-
end
|
85
|
+
end
|
@@ -88,6 +88,16 @@ module Synapse
|
|
88
88
|
@unit.commit
|
89
89
|
end
|
90
90
|
|
91
|
+
should 'register a snapshot listener if a policy and taker are set' do
|
92
|
+
@repository.snapshot_policy = IntervalSnapshotPolicy.new 30
|
93
|
+
@repository.snapshot_taker = AggregateSnapshotTaker.new @event_store
|
94
|
+
|
95
|
+
mock(@unit).register_listener(anything)
|
96
|
+
mock(@unit).register_listener(is_a(SnapshotUnitOfWorkListener))
|
97
|
+
|
98
|
+
@repository.add StubAggregate.new 123
|
99
|
+
end
|
100
|
+
|
91
101
|
private
|
92
102
|
|
93
103
|
def create_event(aggregate_id, seq, payload)
|
@@ -5,7 +5,7 @@ module Synapse
|
|
5
5
|
module EventSourcing
|
6
6
|
|
7
7
|
class AggregateSnapshotTakerTest < Test::Unit::TestCase
|
8
|
-
|
8
|
+
should 'store a snapshot by serializing the aggregate itself' do
|
9
9
|
event_store = Object.new
|
10
10
|
aggregate_factory = GenericAggregateFactory.new StubAggregate
|
11
11
|
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
module Synapse
|
4
|
+
module EventSourcing
|
5
|
+
class IntervalSnapshotPolicyTest < Test::Unit::TestCase
|
6
|
+
|
7
|
+
should 'suggest a snapshot if the threshold is surpassed' do
|
8
|
+
aggregate_a = Object.new
|
9
|
+
aggregate_b = Object.new
|
10
|
+
|
11
|
+
stub(aggregate_a).initial_version { nil }
|
12
|
+
stub(aggregate_a).version { 35 }
|
13
|
+
stub(aggregate_b).initial_version { 0 }
|
14
|
+
stub(aggregate_b).version { 20 }
|
15
|
+
|
16
|
+
policy = IntervalSnapshotPolicy.new 30
|
17
|
+
|
18
|
+
assert policy.should_snapshot? aggregate_a
|
19
|
+
refute policy.should_snapshot? aggregate_b
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -4,7 +4,7 @@ module Synapse
|
|
4
4
|
module ProcessManager
|
5
5
|
|
6
6
|
class OrderEvent
|
7
|
-
|
7
|
+
attr_reader :order_id
|
8
8
|
def initialize(order_id)
|
9
9
|
@order_id = order_id
|
10
10
|
end
|
@@ -16,27 +16,26 @@ module Synapse
|
|
16
16
|
class OrderCanceled < OrderEvent; end
|
17
17
|
class OrderDerped; end
|
18
18
|
|
19
|
-
class OrderProcess <
|
19
|
+
class OrderProcess < MappingProcess
|
20
20
|
attr_reader :handled
|
21
21
|
|
22
|
-
|
22
|
+
map_event OrderCreated, correlate: :order_id, start: true do
|
23
23
|
@handled = (@handled or 0).next
|
24
24
|
end
|
25
25
|
|
26
|
-
|
26
|
+
map_event OrderForceCreated, correlate: :order_id, start: true, force_new: true do
|
27
27
|
@handled = (@handled or 0).next
|
28
28
|
end
|
29
29
|
|
30
|
-
|
30
|
+
map_event OrderUpdated, correlate: :order_id do
|
31
31
|
@handled = (@handled or 0).next
|
32
32
|
end
|
33
33
|
|
34
|
-
|
34
|
+
map_event OrderCanceled, correlate: :order_id, finish: true do
|
35
35
|
@handled = (@handled or 0).next
|
36
36
|
end
|
37
37
|
|
38
|
-
|
38
|
+
map_event OrderDerped, correlate: :derpy_key do; end
|
39
39
|
end
|
40
|
-
|
41
40
|
end
|
42
41
|
end
|
@@ -1,25 +1,25 @@
|
|
1
1
|
require 'test_helper'
|
2
|
-
require 'process_manager/
|
2
|
+
require 'process_manager/mapping/fixtures'
|
3
3
|
|
4
4
|
module Synapse
|
5
5
|
module ProcessManager
|
6
6
|
|
7
|
-
class
|
7
|
+
class MappingProcessManagerTest < Test::Unit::TestCase
|
8
8
|
def setup
|
9
9
|
@repository = InMemoryProcessRepository.new
|
10
10
|
@factory = GenericProcessFactory.new
|
11
11
|
@lock_manager = LockManager.new
|
12
12
|
|
13
|
-
@manager =
|
13
|
+
@manager = MappingProcessManager.new @repository, @factory, @lock_manager, OrderProcess
|
14
14
|
end
|
15
15
|
|
16
16
|
should 'raise an exception if used with a process that does not support wiring' do
|
17
17
|
assert_raise ArgumentError do
|
18
|
-
|
18
|
+
MappingProcessManager.new @repository, @factory, @lock_manager, Process
|
19
19
|
end
|
20
20
|
end
|
21
21
|
|
22
|
-
should 'use
|
22
|
+
should 'use mapping attributes to determine correlation keys' do
|
23
23
|
event = create_event OrderCreated.new 123
|
24
24
|
@manager.notify event
|
25
25
|
|
@@ -29,7 +29,7 @@ module Synapse
|
|
29
29
|
assert_equal 1, processes.count
|
30
30
|
end
|
31
31
|
|
32
|
-
should 'use
|
32
|
+
should 'use mapping attributes to determine creation policy' do
|
33
33
|
event = create_event OrderCreated.new 123
|
34
34
|
|
35
35
|
@manager.notify event
|
@@ -1,10 +1,10 @@
|
|
1
1
|
require 'test_helper'
|
2
|
-
require 'process_manager/
|
2
|
+
require 'process_manager/mapping/fixtures'
|
3
3
|
|
4
4
|
module Synapse
|
5
5
|
module ProcessManager
|
6
6
|
|
7
|
-
class
|
7
|
+
class MappingProcessTest < Test::Unit::TestCase
|
8
8
|
def setup
|
9
9
|
@process = OrderProcess.new
|
10
10
|
end
|
@@ -19,7 +19,7 @@ module Synapse
|
|
19
19
|
assert_equal 1, @process.handled
|
20
20
|
end
|
21
21
|
|
22
|
-
should 'use
|
22
|
+
should 'use mapping attributes to determine when to mark itself as finished' do
|
23
23
|
event = Domain::EventMessage.build do |builder|
|
24
24
|
builder.payload = OrderCanceled.new 123
|
25
25
|
end
|
@@ -4,7 +4,7 @@ module Synapse
|
|
4
4
|
module Serialization
|
5
5
|
|
6
6
|
class ConverterChainTest < Test::Unit::TestCase
|
7
|
-
|
7
|
+
should 'convert using a chain of converters' do
|
8
8
|
converters = Array.new
|
9
9
|
converters << ObjectToJsonConverter.new << JsonToObjectConverter.new
|
10
10
|
|
@@ -13,7 +13,7 @@ module Synapse
|
|
13
13
|
assert_equal Object, chain.source_type
|
14
14
|
assert_equal Object, chain.target_type
|
15
15
|
|
16
|
-
content = {
|
16
|
+
content = { foo: 0 }.stringify_keys
|
17
17
|
|
18
18
|
type = SerializedType.new 'TestType', 1
|
19
19
|
object = SerializedObject.new content, content.class, type
|
@@ -9,12 +9,12 @@ module Synapse
|
|
9
9
|
@factory = ConverterFactory.new
|
10
10
|
end
|
11
11
|
|
12
|
-
|
12
|
+
should 'return an identity converter if the source/target type are the same' do
|
13
13
|
assert @factory.has_converter?(String, String)
|
14
14
|
assert @factory.converter(String, String).is_a?(IdentityConverter)
|
15
15
|
end
|
16
16
|
|
17
|
-
|
17
|
+
should 'return a converter matching a source/target type' do
|
18
18
|
refute @factory.has_converter?(Object, String)
|
19
19
|
|
20
20
|
assert_raise ConversionError do
|
@@ -3,7 +3,7 @@ require 'test_helper'
|
|
3
3
|
module Synapse
|
4
4
|
module Serialization
|
5
5
|
class JsonToObjectConverterTest < Test::Unit::TestCase
|
6
|
-
|
6
|
+
should 'convert content from a JSON string to a Ruby data structure' do
|
7
7
|
converter = JsonToObjectConverter.new
|
8
8
|
|
9
9
|
assert_equal String, converter.source_type
|
@@ -16,7 +16,7 @@ module Synapse
|
|
16
16
|
end
|
17
17
|
|
18
18
|
class ObjectToJsonConverterTest < Test::Unit::TestCase
|
19
|
-
|
19
|
+
should 'convert a Ruby data structure to a JSON string' do
|
20
20
|
converter = ObjectToJsonConverter.new
|
21
21
|
|
22
22
|
assert_equal Object, converter.source_type
|
@@ -7,7 +7,7 @@ module Synapse
|
|
7
7
|
skip 'Ox not supported on JRuby' if defined? JRUBY_VERSION
|
8
8
|
end
|
9
9
|
|
10
|
-
|
10
|
+
should 'convert an Ox document to an XML string' do
|
11
11
|
converter = OxDocumentToXmlConverter.new
|
12
12
|
|
13
13
|
assert_equal Ox::Document, converter.source_type
|
@@ -25,7 +25,7 @@ module Synapse
|
|
25
25
|
skip 'Ox not supported on JRuby' if defined? JRUBY_VERSION
|
26
26
|
end
|
27
27
|
|
28
|
-
|
28
|
+
should 'convert an XML string to an Ox document' do
|
29
29
|
converter = XmlToOxDocumentConverter.new
|
30
30
|
|
31
31
|
assert_equal String, converter.source_type
|
@@ -4,7 +4,7 @@ require 'serialization/fixtures'
|
|
4
4
|
module Synapse
|
5
5
|
module Serialization
|
6
6
|
class LazyObjectTest < Test::Unit::TestCase
|
7
|
-
|
7
|
+
should 'only deserialize an object once' do
|
8
8
|
serializer = MarshalSerializer.new ConverterFactory.new
|
9
9
|
event = TestEvent.new 'a', 'b'
|
10
10
|
|
@@ -3,7 +3,7 @@ require 'test_helper'
|
|
3
3
|
module Synapse
|
4
4
|
module Serialization
|
5
5
|
class SerializationAwareDomainEventMessageTest < Test::Unit::TestCase
|
6
|
-
|
6
|
+
should 'delegate fields to the original message' do
|
7
7
|
message = Domain::DomainEventMessage.build do |builder|
|
8
8
|
builder.payload = Object.new
|
9
9
|
builder.aggregate_id = 123
|
@@ -23,7 +23,7 @@ module Synapse
|
|
23
23
|
assert_same message.sequence_number, aware.sequence_number
|
24
24
|
end
|
25
25
|
|
26
|
-
|
26
|
+
should 'cache serialization operations' do
|
27
27
|
message = Domain::DomainEventMessage.build do |builder|
|
28
28
|
builder.payload = Object.new
|
29
29
|
builder.aggregate_id = 123
|
@@ -47,7 +47,7 @@ module Synapse
|
|
47
47
|
end
|
48
48
|
end
|
49
49
|
|
50
|
-
|
50
|
+
should 'not further wrap messages that are already serialization aware' do
|
51
51
|
message = Domain::DomainEventMessage.build
|
52
52
|
|
53
53
|
aware = SerializationAwareDomainEventMessage.decorate message
|
@@ -56,7 +56,7 @@ module Synapse
|
|
56
56
|
assert_same aware, new_aware
|
57
57
|
end
|
58
58
|
|
59
|
-
|
59
|
+
should 'wrap messages that are duplicated to add metadata' do
|
60
60
|
message = Domain::DomainEventMessage.build do |builder|
|
61
61
|
builder.metadata = { foo: 0 }
|
62
62
|
end
|
@@ -71,7 +71,7 @@ module Synapse
|
|
71
71
|
assert new_aware.is_a? SerializationAwareDomainEventMessage
|
72
72
|
end
|
73
73
|
|
74
|
-
|
74
|
+
should 'wrap messages that are duplicated to replace metadata' do
|
75
75
|
message = Domain::DomainEventMessage.build do |builder|
|
76
76
|
builder.metadata = { foo: 0 }
|
77
77
|
end
|