Beispiel #1
0
        public void AggregateApplyEvent_ShouldFindEvent()
        {
            HasEventsAggregate aggregate = new HasEventsAggregate();

            aggregate.OneAddEventCase();

            var hasEvent = aggregate.GetDomainEvents().First();

            Assert.NotNull(hasEvent);
            Assert.IsType <CreateOrderEvents>(hasEvent);
        }
        public void ProxyRepository_ShouldRightResult()
        {
            var provider = Services.BuildServiceProvider();

            var repository = provider.GetService <IRepository <HasEventsAggregate, int> >();

            Assert.NotNull(repository);

            //some api tests
            var entity = new HasEventsAggregate()
            {
                Id = 1
            };
            var entity2 = new HasEventsAggregate()
            {
                Id = 2
            };
            var entity3 = new HasEventsAggregate()
            {
                Id = 3
            };
            var entity4 = new HasEventsAggregate()
            {
                Id = 4
            };

            repository.Add(entity);
            repository.AddAsync(entity2);
            Assert.Equal(2, repository.GetCount());

            repository.AddAndReturn(entity3);
            repository.AddAndReturnAsync(entity4);
            Assert.Equal(4, repository.GetCount());

            repository.Delete(entity);
            repository.DeleteAsync(entity2);
            Assert.Equal(2, repository.GetCount());

            Assert.NotNull(repository.Find(3));
            Assert.NotNull(repository.FindAsync(4).Result);

            repository.Update(entity3);
            repository.UpdateAsync(entity4);
            Assert.Equal(2, repository.GetCount());
        }
Beispiel #3
0
        public void EventDisptcher_ShouldCallHandler()
        {
            var expectedResult = OrderCreatedHandler.HanlderChangedValue;

            Services.AddTransient <IDomainEventHandler <CreateOrderEvents>, OrderCreatedHandler>();

            var disptcher = Services.BuildServiceProvider().GetService <IEventDispatcher>();

            HasEventsAggregate aggregate = new HasEventsAggregate();

            aggregate.OneAddEventCase();

            var orignalDomainEvent = (CreateOrderEvents)aggregate.GetDomainEvents().First();

            disptcher.DispatchAsync(orignalDomainEvent);

            Assert.Equal(expectedResult, orignalDomainEvent.OrderID);
        }