コード例 #1
0
        public void Can_load_aggregate_from_xml()
        {
            var storage = new XmlEventStorage(this);

            var aggregate = storage.Load<SomeDomainEntityWithEvents>(Guid.Empty); // fake id

            aggregate.ShouldNotBeNull();
            aggregate.GetChanges().Count().ShouldBeEqualTo(0,  "events should be replayed, not marked as new");
            aggregate.DomainEventHandlerInvoked.ShouldBeTrue("event handler for replayed event should be invoked");
        }
コード例 #2
0
        public void can_write_aggregate_to_xml()
        {
            var storage = new XmlEventStorage(this);

            var aggregate = new SomeDomainEntityWithEvents();
            aggregate.Apply(new SomeDomainEvent());

            storage.Save(aggregate.Id, aggregate.GetChanges());

            _writtenXml.ShouldNotBeNull();
            _writtenXml.Length.ShouldNotBeEqualTo(0);

            var ev = DomainEventSerializer.Deserialize(_writtenXml.ToString());

            ev.ShouldNotBeNull();
            ev.ShouldBeOfType<SomeDomainEvent>();
        }