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)); }
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)); }
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); }
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))); }
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); }
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)); }