private static EventBatch <T> CreateStream <T>(Guid streamID, params EventBase[] events) { DefaultEventMetadata metadata = new DefaultEventMetadata(DateTime.Today); return(new EventBatch <T>( streamID, events.Select(e => new RecordedEvent(streamID, e, metadata) ).ToArray())); }
internal void RecordedEvent( RecordedEvent rec, long eventID, Guid streamID, DefaultEventMetadata metadata, CustomerCreated e, RecordedEvent act, BsonDocument doc ) { GIVEN["a recorded event"] = () => { rec = new RecordedEvent( streamID = Guid.NewGuid(), e = new CustomerCreated { Name = "Customer 1" }, metadata = new DefaultEventMetadata(DateTime.Today)); rec.ID = new EventID(eventID = 100_000_000_000); }; AND["an appropriate configuration"] = () => ConfigureSerialization(); WHEN["serializing the event"] = () => doc = Serialize(rec); THEN["the BSON is as expected"] = () => { var exp = new BsonDocument { { "_id", new BsonInt64(eventID) }, { "StreamID", new BsonBinaryData(streamID, GuidRepresentation.Standard) }, { "m", new BsonDocument { { "ts", new BsonDateTime(metadata.Timestamp) }, { "c", BsonNull.Value } } }, { "e", new BsonDocument { { "_t", "TEST:Test.CustomerCreated" }, { "Name", e.Name }, { "CreationDate", e.CreationDate } } } }; doc.Should().BeEqivalentTo(exp); }; AND["deserializing it"] = () => act = Deserialize <RecordedEvent>(doc); THEN["it has the same value"] = () => act.Should().BeEquivalentTo(rec); }