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()); }