private void storeAndLoadEvents(Serialized client) { Debug.WriteLine("Storing events on aggregate: " + orderType); client.StoreEvents(orderType, orderId1, new EventBatch(new List <EventModel>() { new EventModel("OrderPlaced", Guid.NewGuid(), new Dictionary <string, object>() { { "customerId", "some-test-id-1" }, { "orderAmount", 12345 }, { "placedAt", DateTimeOffset.UtcNow.ToUnixTimeMilliseconds() } } , "encrypted-and-secret-payload") }, 0)); client.StoreEvents(orderType, orderId1, new EventBatch(new List <EventModel>() { new EventModel("OrderPaid", Guid.NewGuid(), new Dictionary <string, object>() { { "customerId", "some-test-id-1" }, { "paidAt", DateTimeOffset.UtcNow.ToUnixTimeMilliseconds() } }) }, 1)); client.StoreEvents(orderType, orderId2, new EventBatch(new List <EventModel>() { new EventModel("OrderPlaced", Guid.NewGuid(), new Dictionary <string, object>() { { "customerId", "some-test-id-2" }, { "orderAmount", 67890 }, { "placedAt", DateTimeOffset.UtcNow.ToUnixTimeMilliseconds() } } , "another-encrypted-and-secret-payload") }, 0)); Debug.WriteLine("Loading aggregate: " + orderId1); var aggregate1 = client.LoadEvents(orderType, orderId1); Assert.AreEqual(false, aggregate1.HasMore); Assert.AreEqual(orderId1, aggregate1.AggregateId); Assert.AreEqual(orderType, aggregate1.AggregateType); Assert.AreEqual(2, aggregate1.AggregateVersion); Assert.AreEqual(2, aggregate1.Events.Count); var enumerator = aggregate1.Events.GetEnumerator(); enumerator.MoveNext(); var eventModel = enumerator.Current; Assert.AreEqual("OrderPlaced", eventModel.EventType); Assert.AreEqual("encrypted-and-secret-payload", eventModel.EncryptedData); Assert.IsNotNull(eventModel.Data); enumerator.MoveNext(); eventModel = enumerator.Current; Assert.AreEqual("OrderPaid", eventModel.EventType); Assert.IsNull(eventModel.EncryptedData); Assert.IsNotNull(eventModel.Data); }