예제 #1
0
        public void TestThatHandleExceptionThrowsCreatedExceptionFromExceptionBuilder()
        {
            var fixture = new Fixture();
            var householdDataRepositoryMock = MockRepository.GenerateMock <IHouseholdDataRepository>();
            var objectMapperMock            = MockRepository.GenerateMock <IFoodWasteObjectMapper>();
            var specificationMock           = MockRepository.GenerateMock <ISpecification>();
            var commonValidationsMock       = MockRepository.GenerateMock <ICommonValidations>();
            var domainObjectValidationsMock = MockRepository.GenerateMock <IDomainObjectValidations>();
            var welcomeLetterDispatcherMock = MockRepository.GenerateMock <IWelcomeLetterDispatcher>();

            var exceptionToThrow     = fixture.Create <Exception>();
            var exceptionBuilderMock = MockRepository.GenerateMock <IExceptionBuilder>();

            exceptionBuilderMock.Stub(m => m.Build(Arg <Exception> .Is.Anything, Arg <MethodBase> .Is.Anything))
            .Return(exceptionToThrow)
            .Repeat.Any();

            var householdMemberAddCommandHandler = new HouseholdMemberAddCommandHandler(householdDataRepositoryMock, objectMapperMock, specificationMock, commonValidationsMock, domainObjectValidationsMock, welcomeLetterDispatcherMock, exceptionBuilderMock);

            Assert.That(householdMemberAddCommandHandler, Is.Not.Null);

            var exception = Assert.Throws <Exception>(() => householdMemberAddCommandHandler.HandleException(fixture.Create <HouseholdMemberAddCommand>(), fixture.Create <Exception>()));

            Assert.That(exception, Is.Not.Null);
            Assert.That(exception, Is.EqualTo(exceptionToThrow));
        }
예제 #2
0
        public void TestThatHandleExceptionCallsBuildOnExceptionBuilder()
        {
            var fixture = new Fixture();
            var householdDataRepositoryMock = MockRepository.GenerateMock <IHouseholdDataRepository>();
            var objectMapperMock            = MockRepository.GenerateMock <IFoodWasteObjectMapper>();
            var specificationMock           = MockRepository.GenerateMock <ISpecification>();
            var commonValidationsMock       = MockRepository.GenerateMock <ICommonValidations>();
            var domainObjectValidationsMock = MockRepository.GenerateMock <IDomainObjectValidations>();
            var welcomeLetterDispatcherMock = MockRepository.GenerateMock <IWelcomeLetterDispatcher>();

            var exceptionBuilderMock = MockRepository.GenerateMock <IExceptionBuilder>();

            exceptionBuilderMock.Stub(m => m.Build(Arg <Exception> .Is.Anything, Arg <MethodBase> .Is.NotNull))
            .WhenCalled(e =>
            {
                var methodBase = (MethodBase)e.Arguments.ElementAt(1);
                Assert.That(methodBase, Is.Not.Null);
                Assert.That(methodBase.ReflectedType.Name, Is.EqualTo(typeof(HouseholdMemberAddCommandHandler).Name));
            })
            .Return(fixture.Create <Exception>())
            .Repeat.Any();

            var householdMemberAddCommandHandler = new HouseholdMemberAddCommandHandler(householdDataRepositoryMock, objectMapperMock, specificationMock, commonValidationsMock, domainObjectValidationsMock, welcomeLetterDispatcherMock, exceptionBuilderMock);

            Assert.That(householdMemberAddCommandHandler, Is.Not.Null);

            var exception = fixture.Create <Exception>();

            Assert.Throws <Exception>(() => householdMemberAddCommandHandler.HandleException(fixture.Create <HouseholdMemberAddCommand>(), exception));

            exceptionBuilderMock.AssertWasCalled(m => m.Build(Arg <Exception> .Is.Equal(exception), Arg <MethodBase> .Is.NotNull));
        }
예제 #3
0
        public void TestThatConstructorInitializeFoodWasteHouseholdDataCommandHandlerBase()
        {
            var householdDataRepositoryMock = MockRepository.GenerateMock <IHouseholdDataRepository>();
            var objectMapperMock            = MockRepository.GenerateMock <IFoodWasteObjectMapper>();
            var specificationMock           = MockRepository.GenerateMock <ISpecification>();
            var commonValidationsMock       = MockRepository.GenerateMock <ICommonValidations>();
            var domainObjectValidationsMock = MockRepository.GenerateMock <IDomainObjectValidations>();
            var welcomeLetterDispatcherMock = MockRepository.GenerateMock <IWelcomeLetterDispatcher>();
            var exceptionBuilderMock        = MockRepository.GenerateMock <IExceptionBuilder>();

            var householdMemberAddCommandHandler = new HouseholdMemberAddCommandHandler(householdDataRepositoryMock, objectMapperMock, specificationMock, commonValidationsMock, domainObjectValidationsMock, welcomeLetterDispatcherMock, exceptionBuilderMock);

            Assert.That(householdMemberAddCommandHandler, Is.Not.Null);
        }
예제 #4
0
        public void TestThatExecuteCallsIsNotNullWithTranslationInfoOnCommonValidations()
        {
            var fixture = new Fixture();
            var commonValidationsMock       = MockRepository.GenerateMock <ICommonValidations>();
            var domainObjectValidationsMock = MockRepository.GenerateMock <IDomainObjectValidations>();
            var welcomeLetterDispatcherMock = MockRepository.GenerateMock <IWelcomeLetterDispatcher>();
            var exceptionBuilderMock        = MockRepository.GenerateMock <IExceptionBuilder>();

            var translationInfoMock         = DomainObjectMockBuilder.BuildTranslationInfoMock();
            var householdDataRepositoryMock = MockRepository.GenerateMock <IHouseholdDataRepository>();

            householdDataRepositoryMock.Stub(m => m.Get <ITranslationInfo>(Arg <Guid> .Is.Anything))
            .Return(translationInfoMock)
            .Repeat.Any();
            householdDataRepositoryMock.Stub(m => m.Insert(Arg <IHouseholdMember> .Is.Anything))
            .Return(DomainObjectMockBuilder.BuildHouseholdMemberMock())
            .Repeat.Any();

            var specificationMock = MockRepository.GenerateMock <ISpecification>();

            specificationMock.Stub(m => m.IsSatisfiedBy(Arg <Func <bool> > .Is.NotNull, Arg <Exception> .Is.Anything))
            .WhenCalled(e =>
            {
                var func = (Func <bool>)e.Arguments.ElementAt(0);
                func.Invoke();
            })
            .Return(specificationMock)
            .Repeat.Any();

            var objectMapperMock = MockRepository.GenerateMock <IFoodWasteObjectMapper>();

            objectMapperMock.Stub(m => m.Map <IIdentifiable, ServiceReceiptResponse>(Arg <IIdentifiable> .Is.Anything, Arg <CultureInfo> .Is.Anything))
            .Return(fixture.Create <ServiceReceiptResponse>())
            .Repeat.Any();

            var householdMemberAddCommandHandler = new HouseholdMemberAddCommandHandler(householdDataRepositoryMock, objectMapperMock, specificationMock, commonValidationsMock, domainObjectValidationsMock, welcomeLetterDispatcherMock, exceptionBuilderMock);

            Assert.That(householdMemberAddCommandHandler, Is.Not.Null);

            var householdMemberAddCommand = fixture.Build <HouseholdMemberAddCommand>()
                                            .With(m => m.MailAddress, string.Format("test.{0}@osdevgrp.dk", Guid.NewGuid().ToString("D")).ToLower())
                                            .With(m => m.TranslationInfoIdentifier, Guid.NewGuid())
                                            .Create();

            householdMemberAddCommandHandler.Execute(householdMemberAddCommand);

            commonValidationsMock.AssertWasCalled(m => m.IsNotNull(Arg <ITranslationInfo> .Is.Equal(translationInfoMock)));
        }
예제 #5
0
        public void TestThatExecuteThrowsArgumentNullExceptionWhenHouseholdMemberAddCommandIsNull()
        {
            var householdDataRepositoryMock = MockRepository.GenerateMock <IHouseholdDataRepository>();
            var objectMapperMock            = MockRepository.GenerateMock <IFoodWasteObjectMapper>();
            var specificationMock           = MockRepository.GenerateMock <ISpecification>();
            var commonValidationsMock       = MockRepository.GenerateMock <ICommonValidations>();
            var domainObjectValidationsMock = MockRepository.GenerateMock <IDomainObjectValidations>();
            var welcomeLetterDispatcherMock = MockRepository.GenerateMock <IWelcomeLetterDispatcher>();
            var exceptionBuilderMock        = MockRepository.GenerateMock <IExceptionBuilder>();

            var householdMemberAddCommandHandler = new HouseholdMemberAddCommandHandler(householdDataRepositoryMock, objectMapperMock, specificationMock, commonValidationsMock, domainObjectValidationsMock, welcomeLetterDispatcherMock, exceptionBuilderMock);

            Assert.That(householdMemberAddCommandHandler, Is.Not.Null);

            var exception = Assert.Throws <ArgumentNullException>(() => householdMemberAddCommandHandler.Execute(null));

            Assert.That(exception, Is.Not.Null);
            Assert.That(exception.ParamName, Is.Not.Null);
            Assert.That(exception.ParamName, Is.Not.Empty);
            Assert.That(exception.ParamName, Is.EqualTo("command"));
            Assert.That(exception.InnerException, Is.Null);
        }
예제 #6
0
        public void TestThatExecuteCallsInsertWithNewHouseholdMemberOnHouseholdDataRepository()
        {
            var fixture = new Fixture();
            var commonValidationsMock       = MockRepository.GenerateMock <ICommonValidations>();
            var domainObjectValidationsMock = MockRepository.GenerateMock <IDomainObjectValidations>();
            var welcomeLetterDispatcherMock = MockRepository.GenerateMock <IWelcomeLetterDispatcher>();
            var exceptionBuilderMock        = MockRepository.GenerateMock <IExceptionBuilder>();

            var mailAddress = string.Format("test.{0}@osdevgrp.dk", Guid.NewGuid().ToString("D")).ToLower();
            var householdDataRepositoryMock = MockRepository.GenerateMock <IHouseholdDataRepository>();

            householdDataRepositoryMock.Stub(m => m.Get <ITranslationInfo>(Arg <Guid> .Is.Anything))
            .Return(DomainObjectMockBuilder.BuildTranslationInfoMock())
            .Repeat.Any();
            householdDataRepositoryMock.Stub(m => m.Insert(Arg <IHouseholdMember> .Is.NotNull))
            .WhenCalled(e =>
            {
                var householdMember = (IHouseholdMember)e.Arguments.ElementAt(0);
                Assert.That(householdMember, Is.Not.Null);
                Assert.That(householdMember.Identifier, Is.Null);
                Assert.That(householdMember.Identifier.HasValue, Is.False);
                Assert.That(householdMember.MailAddress, Is.Not.Null);
                Assert.That(householdMember.MailAddress, Is.Not.Empty);
                Assert.That(householdMember.MailAddress, Is.EqualTo(mailAddress));
                Assert.That(householdMember.Membership, Is.EqualTo(Membership.Basic));
                Assert.That(householdMember.MembershipExpireTime, Is.Null);
                Assert.That(householdMember.MembershipExpireTime.HasValue, Is.False);
                Assert.That(householdMember.ActivationCode, Is.Not.Null);
                Assert.That(householdMember.ActivationCode, Is.Not.Empty);
                Assert.That(householdMember.ActivationTime, Is.Null);
                Assert.That(householdMember.ActivationTime.HasValue, Is.False);
                Assert.That(householdMember.IsActivated, Is.False);
                Assert.That(householdMember.PrivacyPolicyAcceptedTime, Is.Null);
                Assert.That(householdMember.PrivacyPolicyAcceptedTime.HasValue, Is.False);
                Assert.That(householdMember.IsPrivacyPolicyAccepted, Is.False);
                Assert.That(householdMember.CreationTime, Is.EqualTo(DateTime.Now).Within(3).Seconds);
                Assert.That(householdMember.Households, Is.Not.Null);
                Assert.That(householdMember.Households, Is.Empty);
                Assert.That(householdMember.Payments, Is.Not.Null);
                Assert.That(householdMember.Payments, Is.Empty);
            })
            .Return(DomainObjectMockBuilder.BuildHouseholdMemberMock())
            .Repeat.Any();

            var specificationMock = MockRepository.GenerateMock <ISpecification>();

            specificationMock.Stub(m => m.IsSatisfiedBy(Arg <Func <bool> > .Is.Anything, Arg <Exception> .Is.Anything))
            .Return(specificationMock)
            .Repeat.Any();

            var objectMapperMock = MockRepository.GenerateMock <IFoodWasteObjectMapper>();

            objectMapperMock.Stub(m => m.Map <IIdentifiable, ServiceReceiptResponse>(Arg <IIdentifiable> .Is.Anything, Arg <CultureInfo> .Is.Anything))
            .Return(fixture.Create <ServiceReceiptResponse>())
            .Repeat.Any();

            var householdMemberAddCommandHandler = new HouseholdMemberAddCommandHandler(householdDataRepositoryMock, objectMapperMock, specificationMock, commonValidationsMock, domainObjectValidationsMock, welcomeLetterDispatcherMock, exceptionBuilderMock);

            Assert.That(householdMemberAddCommandHandler, Is.Not.Null);

            var householdMemberAddCommand = fixture.Build <HouseholdMemberAddCommand>()
                                            .With(m => m.MailAddress, mailAddress)
                                            .With(m => m.TranslationInfoIdentifier, Guid.NewGuid())
                                            .Create();

            householdMemberAddCommandHandler.Execute(householdMemberAddCommand);

            householdDataRepositoryMock.AssertWasCalled(m => m.Insert(Arg <IHouseholdMember> .Is.NotNull));
        }