public async Task NotDeserializeEvents(ObjectId id, IMongoDatabase database) { var aggregates = database.GetCollection <TestAggregate>("test.aggregates"); var aggregate = new TestAggregate(id.ToString()); aggregate.RecordEvent(new AggregateModified(aggregate.Id)); // Act await aggregates.InsertOneAsync(aggregate); // Assert var aggregate1 = await aggregates.Find(a => a.Id == aggregate.Id).FirstAsync(); aggregate1.Events.Should().BeNull(); }
public async Task SerializeEvents(ObjectId id, IMongoDatabase database) { // Arrange var aggregates = database.GetCollection <TestAggregate>("test.aggregates"); var bsonAggregates = database.GetCollection <BsonDocument>("test.aggregates"); var aggregate = new TestAggregate(id.ToString()); aggregate.RecordEvent(new AggregateModified(aggregate.Id)); // Act await aggregates.InsertOneAsync(aggregate); // Assert var bsonAggregate = await bsonAggregates.Find(document => document["_id"] == id).FirstAsync(); bsonAggregate.TryGetValue(PrivateField.Events, out var e).Should().BeTrue(); var events = (BsonArray)e; events.Should().HaveCount(1); events.First()["timestamp"].Should().Be(new BsonTimestamp(0, 0)); }