public async Task Context()
        {
            var specification = new TTransactionScopeUnitOfWorkMiddlewareSpecification();

            var domainEventHandlerFactory = new FakeDomainEventHandlerFactory(domainEvent => _raisedDomainEvent = (TestDomainEvent)domainEvent);

            DomainEvents.Initialize(domainEventHandlerFactory);

            _volatileResourceManager = new VolatileResourceManager();

            async Task _requestDelegate(HttpContext context)
            {
                _entityRepository = IoC.Resolve <IRepository <TestEntityWithDomainEvent> >();

                _entity = new TestEntityWithDomainEvent();
                _entity.BehaviouralMethodWithRaisingDomainEvent();

                await _entityRepository.SaveAsync(_entity);

                _volatileResourceManager.SetMemberValue(23);

                throw new NotSupportedException("test exception");
            }

            try
            {
                await specification.CreateMiddlewareAndInvokeHandling(_requestDelegate, _volatileResourceManager);
            }
            catch (NotSupportedException) {}
        }
        private void _simulateApplicationTransactionWhichThrowsAnException()
        {
            _entityRepository = IoC.Resolve <IRepository <TestEntityWithDomainEvent> >();

            _entity = new TestEntityWithDomainEvent();
            _entityRepository.Save(_entity);

            throw new NotSupportedException("test exception");
        }
Example #3
0
        private void _simulateApplicationTransaction()
        {
            _entityRepository = IoC.Resolve <IRepository <TestEntityWithDomainEvent> >();

            _entity = new TestEntityWithDomainEvent();
            _entity.BehaviouralMethodWithRaisingDomainEvent();

            _entityRepository.Save(_entity);
        }
        public void Context()
        {
            var domainEventHandlerFactory = new FakeDomainEventHandlerFactory(domainEvent => _raisedDomainEvent = (TestDomainEvent)domainEvent);

            DomainEvents.Initialize(domainEventHandlerFactory);

            _entity = new TestEntityWithDomainEvent();


            _entity.BehaviouralMethodWithRaisingDomainEvent();
        }
        private void _simulateApplicationTransaction()
        {
            _entityRepository = IoC.Resolve <IRepository <TestEntityWithDomainEvent> >();

            _entity = new TestEntityWithDomainEvent();
            _entity.BehaviouralMethodWithRaisingDomainEvent();

            _entityRepository.Save(_entity);

            _volatileResourceManager.SetMemberValue(23);
        }
Example #6
0
        private void _simulateApplicationTransactionWhichThrowsAnException()
        {
            _entityRepository = IoC.Resolve <IRepository <TestEntityWithDomainEvent> >();

            _entity = new TestEntityWithDomainEvent();
            _entity.BehaviouralMethodWithRaisingDomainEvent();

            _entityRepository.Save(_entity);

            _volatileResourceManager.SetMemberValue(23);

            throw new NotSupportedException("test exception");
        }
Example #7
0
        public void Context()
        {
            _raisedDomainEvent = null;

            var domainEventHandlerFactory = new FakeDomainEventHandlerFactory(domainEvent => _raisedDomainEvent = (TestDomainEvent)domainEvent);

            DomainEvents.Initialize(domainEventHandlerFactory, isDelayedDomainEventHandlingEnabled: true);
            DomainEvents.ResetDelayedEventsStorage();

            _entity = new TestEntityWithDomainEvent();


            _entity.BehaviouralMethodWithRaisingDomainEvent();
        }
        public void entity_is_not_persisted_and_cannot_be_fetched_after_the_transaction_rollback()
        {
            _entity.ShouldNotBeNull();

            var unitOfWork = IoC.Resolve <NhibernateUnitOfWork>();

            unitOfWork.BeginTransaction();

            _entityRepository = IoC.Resolve <IRepository <TestEntityWithDomainEvent> >();
            _entity           = _entityRepository.Get(_entity.Id);

            _entity.ShouldBeNull();

            unitOfWork.Rollback();
        }
Example #9
0
        public async Task entity_is_persisted_and_can_be_fetched_after_the_transaction_commit()
        {
            _entity.ShouldNotBeNull();

            var unitOfWork = IoC.Resolve <NhibernateUnitOfWork>();

            unitOfWork.BeginTransaction();

            _entityRepository = IoC.Resolve <IRepository <TestEntityWithDomainEvent> >();
            _entity           = await _entityRepository.GetAsync(_entity.Id);

            _entity.ShouldNotBeNull();

            unitOfWork.Rollback();
        }
Example #10
0
        public async Task Context()
        {
            var specification = new TUnitOfWorkMiddlewareSpecification();

            var domainEventHandlerFactory = new FakeDomainEventHandlerFactory(domainEvent => _raisedDomainEvent = (TestDomainEvent)domainEvent);

            DomainEvents.Initialize(domainEventHandlerFactory, isDelayedDomainEventHandlingEnabled: true);
            DomainEvents.ResetDelayedEventsStorage();

            async Task _requestDelegate(HttpContext context)
            {
                _entityRepository = IoC.Resolve <IRepository <TestEntityWithDomainEvent> >();

                _entity = new TestEntityWithDomainEvent();
                _entity.BehaviouralMethodWithRaisingDomainEvent();

                await _entityRepository.SaveAsync(_entity);
            }

            await specification.CreateMiddlewareAndInvokeHandling(_requestDelegate);
        }
        public async Task Context()
        {
            var specification = new TUnitOfWorkMiddlewareSpecification();

            var domainEventHandlerFactory = new FakeDomainEventHandlerFactory(domainEvent => _raisedDomainEvent = (TestDomainEvent)domainEvent);

            DomainEvents.Initialize(domainEventHandlerFactory, isDelayedDomainEventHandlingEnabled: true);
            DomainEvents.ResetDelayedEventsStorage();

            async Task _requestDelegate(HttpContext context)
            {
                _entityRepository = IoC.Resolve <IRepository <TestEntityWithDomainEvent> >();
                _entity           = new TestEntityWithDomainEvent();
                await _entityRepository.SaveAsync(_entity);

                throw new NotSupportedException("test exception");
            }

            try
            {
                await specification.CreateMiddlewareAndInvokeHandling(_requestDelegate);
            }
            catch (NotSupportedException) {}
        }