Ejemplo n.º 1
0
        public void ShouldCreateSimpleRepositoryWithContextNoLog()
        {
            //Arrange
            var testDomain = new TestDomain();
            IRepositoryFactory factory = new RepositoryFactory(testDomain.ConnectionString, testDomain.Mappings, testDomain.Context);

            //Act
            IRepository repo = factory.Create();

            // assert
            repo.Should().NotBeNull();
        }
Ejemplo n.º 2
0
        public void ShouldCreateRepositoryWhenDomainEventsAreNull()
        {
            // arrange
            var testDomain = new TestDomain { Events = null };
            IDomainRepositoryFactory factory = new DomainRepositoryFactory(new []{testDomain});

            // act
            IRepository repo = factory.Create<TestDomain>();

            // assert
            repo.Should().NotBeNull();
        }
        public void ShouldRegisterOneEventHandlerForPostSave()
        {
            //arrange 
            var domain = new TestDomain();
            var testPreSaveInterceptor = new TestEventInterceptor<AfterSave>(1);
            domain.Events = new List<IInterceptor>
            {
                testPreSaveInterceptor
            };
            domain.ConnectionString = Settings.Default.Connection;

            //act
            var repo = new DomainRepository<TestDomain>(new DomainContext<TestDomain>(domain), domain);
            repo.Context.Commit();

            //assert
            testPreSaveInterceptor.WasCalled.Should().BeTrue();
        }
        public void ShouldAddSingleInterceptorForAfterCommandExecution()
        {
            //Arrange
            var domain = new TestDomain();
            var interceptor = new TestEventInterceptor<AfterCommand>(1);
            domain.Events = new List<IInterceptor>
            {
                interceptor
            };
            domain.ConnectionString = Settings.Default.Connection;

            //act
            var repository = new DomainRepositoryFactory(new[] { domain }).Create<TestDomain>();
            repository.Execute(new EmptyCommand());

            //assert
            interceptor.WasCalled.Should().BeTrue();

        }
        public void ShouldRegisterTwoEventHandlersForPostSaveAndHonorPriority()
        {
            //arrange 
            var domain = new TestDomain();
            var testPreSaveInterceptor = new TestEventInterceptor<AfterSave>(1);
            var testPreSaveInterceptor2 = new TestEventInterceptor<AfterSave>(2);
            domain.Events = new List<IInterceptor>
            {
                testPreSaveInterceptor,
                testPreSaveInterceptor2,
            };
            domain.ConnectionString = Settings.Default.Connection;

            //act
            var repo = new DomainRepository<TestDomain>(new DomainContext<TestDomain>(domain), domain);
            repo.Context.Commit();

            //assert
            testPreSaveInterceptor.WasCalled.Should().BeTrue();
            testPreSaveInterceptor2.WasCalled.Should().BeTrue();
            testPreSaveInterceptor.CallTime.Should().BeBefore(testPreSaveInterceptor2.CallTime);
        }