示例#1
0
        public void SavesCommitHeadersOnEachEvent()
        {
            var commitId        = Guid.NewGuid();
            var aggregateToSave = new TestWoftamAggregate(Guid.NewGuid());

            aggregateToSave.ProduceEvents(20);
            _repo.Save(aggregateToSave, commitId, d =>
            {
                d.Add("CustomHeader1", "CustomValue1");
                d.Add("CustomHeader2", "CustomValue2");
            });

            var read = _connection.ReadStreamEventsForwardAsync($"aggregate-{aggregateToSave.Id}", 1, 20, false).Result;

            foreach (var serializedEvent in read.Events)
            {
                var parsedMetadata       = JObject.Parse(Encoding.UTF8.GetString(serializedEvent.OriginalEvent.Metadata));
                var deserializedCommitId = parsedMetadata.Property("CommitId").Value.ToObject <Guid>();
                Assert.Equal(commitId, deserializedCommitId);

                var deserializedCustomHeader1 = parsedMetadata.Property("CustomHeader1").Value.ToObject <string>();
                Assert.Equal("CustomValue1", deserializedCustomHeader1);

                var deserializedCustomHeader2 = parsedMetadata.Property("CustomHeader2").Value.ToObject <string>();
                Assert.Equal("CustomValue2", deserializedCustomHeader2);
            }
        }
示例#2
0
        private static Guid SaveTestAggregateWithoutCustomHeaders(IRepository repository, int numberOfEvents)
        {
            var aggregateToSave = new TestWoftamAggregate(Guid.NewGuid());

            aggregateToSave.ProduceEvents(numberOfEvents);
            repository.Save(aggregateToSave, Guid.NewGuid(), d => { });
            return(aggregateToSave.Id);
        }
示例#3
0
        public void ClearsEventsFromAggregateOnceCommitted()
        {
            var aggregateToSave = new TestWoftamAggregate(Guid.NewGuid());

            aggregateToSave.ProduceEvents(10);
            _repo.Save(aggregateToSave, Guid.NewGuid(), d => { });

            Assert.Equal(0, ((IAggregate)aggregateToSave).GetUncommittedEvents().Count);
        }