public void DomainEventIsPlacedInTheUncommittedEventsPropertyIfPublished()
        {
            var domainEvent = new HandlerThatMeetsConventionEvent();
            var aggregateRoot = mockAggregateRoot.Object;

            aggregateRoot.Apply(domainEvent);

            Assert.AreSame(domainEvent, aggregateRoot.UncommittedEvents.First());
        }
        public void HandlerIsNotCalledWhenHandlerHasTwoParametersAndEventIsApplied()
        {
            var domainEvent   = new HandlerThatMeetsConventionEvent();
            var aggregateRoot = mockAggregateRoot.Object;

            aggregateRoot.Apply(domainEvent);

            mockAggregateRoot.Verify(ar => ar.OnHandlerThatMeetsConvention(domainEvent, "test"), Times.Never());
        }
        public void DomainEventIsPlacedInTheUncommittedEventsPropertyIfPublished()
        {
            var domainEvent   = new HandlerThatMeetsConventionEvent();
            var aggregateRoot = mockAggregateRoot.Object;

            aggregateRoot.Apply(domainEvent);

            Assert.AreSame(domainEvent, aggregateRoot.UncommittedEvents.First());
        }
        public void HandlerIsNotCalledWhenHandlerDoesNotMeetTheConventionAndEventIsApplied()
        {
            var domainEvent   = new HandlerThatMeetsConventionEvent();
            var aggregateRoot = mockAggregateRoot.Object;

            aggregateRoot.Apply(domainEvent);

            mockAggregateRoot.Verify(ar => ar.OnHandlerThatDoesNotMeetsConvention(domainEvent), Times.Never());
        }
        public void EventThatIsPublishedIsAssignedTheNextEventId()
        {
            var domainEvent   = new HandlerThatMeetsConventionEvent();
            var aggregateRoot = mockAggregateRoot.Object;

            aggregateRoot.LoadFromHistoricalEvents(new HandlerThatMeetsConventionEvent {
                Sequence = 203
            });
            aggregateRoot.Apply(domainEvent);

            Assert.AreEqual(204, domainEvent.Sequence);
        }
        public void DomainEventsAreAssignedSequentialSequenceWhenPublished()
        {
            var domainEvent1  = new HandlerThatMeetsConventionEvent();
            var domainEvent2  = new HandlerThatMeetsConventionEvent();
            var domainEvent3  = new HandlerThatMeetsConventionEvent();
            var aggregateRoot = mockAggregateRoot.Object;

            aggregateRoot.Apply(domainEvent1);
            aggregateRoot.Apply(domainEvent2);
            aggregateRoot.Apply(domainEvent3);

            Assert.AreEqual(1, domainEvent1.Sequence);
            Assert.AreEqual(2, domainEvent2.Sequence);
            Assert.AreEqual(3, domainEvent3.Sequence);
        }
        public void DomainEventsAreAssignedSequentialSequenceWhenPublished()
        {
            var domainEvent1 = new HandlerThatMeetsConventionEvent();
            var domainEvent2 = new HandlerThatMeetsConventionEvent();
            var domainEvent3 = new HandlerThatMeetsConventionEvent();
            var aggregateRoot = mockAggregateRoot.Object;

            aggregateRoot.Apply(domainEvent1);
            aggregateRoot.Apply(domainEvent2);
            aggregateRoot.Apply(domainEvent3);

            Assert.AreEqual(1, domainEvent1.Sequence);
            Assert.AreEqual(2, domainEvent2.Sequence);
            Assert.AreEqual(3, domainEvent3.Sequence);
        }
        public void MultipleDomainEventsArePlacedInTheUncommittedEventsPropertyInTheCorrectOrderIfPublished()
        {
            var domainEvent1  = new HandlerThatMeetsConventionEvent();
            var domainEvent2  = new HandlerThatMeetsConventionEvent();
            var domainEvent3  = new HandlerThatMeetsConventionEvent();
            var aggregateRoot = mockAggregateRoot.Object;

            aggregateRoot.Apply(domainEvent1);
            aggregateRoot.Apply(domainEvent2);
            aggregateRoot.Apply(domainEvent3);

            Assert.AreEqual(3, aggregateRoot.UncommittedEvents.Count);
            Assert.AreSame(domainEvent1, aggregateRoot.UncommittedEvents.ElementAt(0));
            Assert.AreSame(domainEvent2, aggregateRoot.UncommittedEvents.ElementAt(1));
            Assert.AreSame(domainEvent3, aggregateRoot.UncommittedEvents.ElementAt(2));
        }
 public virtual void OnHandlerThatMeetsConvention(HandlerThatMeetsConventionEvent domainEvent, string test)
 {
 }
 public virtual void OnHandlerThatMeetsConvention(HandlerThatMeetsConventionEvent domainEvent)
 {
     EventIds.Add(domainEvent.Sequence);
 }
 public virtual void OnHandlerThatDoesNotMeetsConvention(HandlerThatMeetsConventionEvent domainEvent)
 {
 }
        public void MultipleDomainEventsArePlacedInTheUncommittedEventsPropertyInTheCorrectOrderIfPublished()
        {
            var domainEvent1 = new HandlerThatMeetsConventionEvent();
            var domainEvent2 = new HandlerThatMeetsConventionEvent();
            var domainEvent3 = new HandlerThatMeetsConventionEvent();
            var aggregateRoot = mockAggregateRoot.Object;

            aggregateRoot.Apply(domainEvent1);
            aggregateRoot.Apply(domainEvent2);
            aggregateRoot.Apply(domainEvent3);

            var uncommittedEvents = aggregateRoot.UncommittedEvents;
            Assert.AreEqual(3, uncommittedEvents.Count());
            Assert.AreSame(domainEvent1, uncommittedEvents[0]);
            Assert.AreSame(domainEvent2, uncommittedEvents[1]);
            Assert.AreSame(domainEvent3, uncommittedEvents[2]);
        }
        public void HandlerIsNotCalledWhenHandlerHasTwoParametersAndEventIsApplied()
        {
            var domainEvent = new HandlerThatMeetsConventionEvent();
            var aggregateRoot = mockAggregateRoot.Object;

            aggregateRoot.Apply(domainEvent);

            mockAggregateRoot.Verify(ar => ar.OnHandlerThatMeetsConvention(domainEvent, "test"), Times.Never());
        }
 public virtual void OnHandlerThatMeetsConvention(HandlerThatMeetsConventionEvent domainEvent, string test)
 {
 }
 public virtual void OnHandlerThatDoesNotMeetsConvention(HandlerThatMeetsConventionEvent domainEvent)
 {
 }
 public virtual void OnHandlerThatMeetsConvention(HandlerThatMeetsConventionEvent domainEvent)
 {
     EventIds.Add(domainEvent.Sequence);
 }
        public void EventThatIsPublishedIsAssignedTheNextEventId()
        {
            var domainEvent = new HandlerThatMeetsConventionEvent();
            var aggregateRoot = mockAggregateRoot.Object;

            aggregateRoot.LoadFromHistoricalEvents(new HandlerThatMeetsConventionEvent {Sequence = 203});
            aggregateRoot.Apply(domainEvent);

            Assert.AreEqual(204, domainEvent.Sequence);
        }
        public void HandlerIsNotCalledWhenHandlerDoesNotMeetTheConventionAndEventIsApplied()
        {
            var domainEvent = new HandlerThatMeetsConventionEvent();
            var aggregateRoot = mockAggregateRoot.Object;

            aggregateRoot.Apply(domainEvent);

            mockAggregateRoot.Verify(ar => ar.OnHandlerThatDoesNotMeetsConvention(domainEvent), Times.Never());
        }