示例#1
0
        private DomainModelEventHandler1 RegisterDomainEventHandler()
        {
            var container = new AsyncLocalScopedContainer();

            container.Register <SingleInstanceFactory>((Type type) => container.Resolve(type));

            DomainEventStore.InstanceFactory = () => container.Resolve <SingleInstanceFactory>();

            var domainEventHandler = new DomainModelEventHandler1();

            container.Register(domainEventHandler);
            DomainEventStore.RegisterHandler <DomainModelEvent1, DomainModelEventHandler1>();

            return(domainEventHandler);
        }
示例#2
0
        public async void Test1()
        {
            // arrange

            var domainModel  = new DomainModel1(2);
            var eventHandler = RegisterDomainEventHandler();

            // act
            domainModel.DoSomething();

            DomainEventStore.WaitForAllEvents().Wait();

            // assert
            var loggedEvent = eventHandler.RaisedDomainEvents.Single();

            Assert.Equal(2, loggedEvent.Id);

            Assert.Equal(2, AsyncLocalScopedContainer._asyncLocalDictionary.Value.Count());
        }