private void TestToString() { string actual = new GenericDomainEventMessage <object>("AggregateType", "id1", 1, "MyPayload") .AndMetaData(MetaData.With("key", "value").And("key2", 13)).ToString() !; Assert.True(actual.StartsWith("GenericDomainEventMessage{payload={MyPayload}, metadata={"), "Wrong output: " + actual); Assert.True(actual.Contains("'key'->'value'"), "Wrong output: " + actual); Assert.True(actual.Contains("'key2'->'13'"), "Wrong output: " + actual); Assert.True(actual.Contains("', timestamp='"), "Wrong output: " + actual); Assert.True(actual.Contains("', aggregateIdentifier='id1'"), "Wrong output: " + actual); Assert.True(actual.Contains("', aggregateType='AggregateType'"), "Wrong output: " + actual); Assert.True(actual.Contains("', sequenceNumber=1"), "Wrong output: " + actual); Assert.True(actual.EndsWith("}"), "Wrong output: " + actual); }
private void TestWithMetaData() { object payload = new object(); long seqNo = 0; string id = Guid.NewGuid().ToString(); IImmutableDictionary <string, object> metaDataMap = ImmutableDictionary <string, object> .Empty.Add("key", "value"); MetaData metaData = MetaData.From(metaDataMap); GenericDomainEventMessage <object> message = new GenericDomainEventMessage <object>("type", id, seqNo, payload, metaData); GenericDomainEventMessage <object> message1 = (GenericDomainEventMessage <object>)message.WithMetaData(MetaData.EmptyInstance); GenericDomainEventMessage <object> message2 = (GenericDomainEventMessage <object>)message.WithMetaData( MetaData.From(ImmutableDictionary <string, object> .Empty.Add("key", "otherValue"))); Assert.Empty(message1.GetMetaData()); Assert.Single(message2.GetMetaData()); }
private void TestConstructor() { object payload = new object(); long seqNo = 0; string id = Guid.NewGuid().ToString(); GenericDomainEventMessage <object> message1 = new GenericDomainEventMessage <object>("type", id, seqNo, payload); IImmutableDictionary <string, object> metaDataMap = ImmutableDictionary <string, object> .Empty.Add("key", "value"); MetaData metaData = MetaData.From(metaDataMap); GenericDomainEventMessage <object> message2 = new GenericDomainEventMessage <object>("type", id, seqNo, payload, metaData); GenericDomainEventMessage <object> message3 = new GenericDomainEventMessage <object>("type", id, seqNo, payload, metaDataMap); Assert.Same(id, message1.GetAggregateIdentifier()); Assert.Equal(seqNo, message1.GetSequenceNumber()); Assert.Same(MetaData.EmptyInstance, message1.GetMetaData()); Assert.Equal(typeof(object), message1.GetPayload() !.GetType()); Assert.Equal(typeof(object), message1.GetPayloadType()); Assert.Same(id, message2.GetAggregateIdentifier()); Assert.Equal(seqNo, message2.GetSequenceNumber()); Assert.Same(metaData, message2.GetMetaData()); Assert.Equal(typeof(object), message2.GetPayload() !.GetType()); Assert.Equal(typeof(object), message2.GetPayloadType()); Assert.Same(id, message3.GetAggregateIdentifier()); Assert.Equal(seqNo, message3.GetSequenceNumber()); Assert.NotSame(metaDataMap, message3.GetMetaData()); Assert.Equal(metaDataMap, message3.GetMetaData()); Assert.Equal(typeof(object), message3.GetPayload() !.GetType()); Assert.Equal(typeof(object), message3.GetPayloadType()); Assert.NotEqual(message1.GetIdentifier(), message2.GetIdentifier()); Assert.NotEqual(message1.GetIdentifier(), message3.GetIdentifier()); Assert.NotEqual(message2.GetIdentifier(), message3.GetIdentifier()); }