Пример #1
0
        public void When_raising_future_event()
        {
            _testCommand = new ScheduleEventInFutureCommand(DateTime.Now, Guid.NewGuid(), "test value");

            _aggregate = new TestAggregate(_testCommand.AggregateId);
            _aggregate.ScheduleInFuture(_testCommand.RaiseTime, _testCommand.Value);

            _futureEventEnvelop = _aggregate.GetEvent <FutureEventScheduledEvent>();
            _aggregate.RaiseScheduledEvent(_futureEventEnvelop.Id);
            _producedEvent           = _aggregate.GetEvent <TestDomainEvent>();
            _futureEventOccuredEvent = _aggregate.GetEvent <FutureEventOccuredEvent>();
        }
        public void All_existed_future_events_remain_the_same()
        {
            _aggregate.RaiseScheduledEvent(_futureEvent.Id);
            var occuredEvent = _aggregate.GetEvent <FutureEventOccuredEvent>();

            Assert.AreEqual(_futureEvent.Id, occuredEvent.FutureEventId);
        }
        public void When_cancel_existing_scheduled_future_event()
        {
            _aggregate = new TestAggregate(Guid.NewGuid());
            var testValue = "value D";

            _aggregate.ScheduleInFuture(DateTime.Now.AddSeconds(400), testValue);
            _futureEvent = _aggregate.GetEvent <FutureEventScheduledEvent>();
            _aggregate.ClearEvents();
            _aggregate.CancelFutureEvents("will not be found in any future event");
        }
        public void Cancelation_event_is_produced()
        {
            var cancelEvent = _aggregate.GetEvent <FutureEventCanceledEvent>();

            Assert.AreEqual(_futureEventA.Id, cancelEvent.FutureEventId);
        }