public void TestThatQueryReturnsResultFromMapOnFoodWasteObjectMapper()
        {
            var fixture = new Fixture();

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

            householdDataRepositoryMock.Stub(m => m.HouseholdMemberGetByMailAddress(Arg <string> .Is.Anything))
            .Return(DomainObjectMockBuilder.BuildHouseholdMemberMock())
            .Repeat.Any();

            var claimValueProviderMock = MockRepository.GenerateMock <IClaimValueProvider>();

            claimValueProviderMock.Stub(m => m.MailAddress)
            .Return(fixture.Create <string>())
            .Repeat.Any();

            var booleanResultResponse = fixture.Create <BooleanResultResponse>();
            var objectMapperMock      = MockRepository.GenerateMock <IFoodWasteObjectMapper>();

            objectMapperMock.Stub(m => m.Map <bool, BooleanResultResponse>(Arg <bool> .Is.Anything, Arg <CultureInfo> .Is.Anything))
            .Return(booleanResultResponse)
            .Repeat.Any();

            var householdMemberIsCreatedQueryHandler = new HouseholdMemberIsCreatedQueryHandler(householdDataRepositoryMock, claimValueProviderMock, objectMapperMock);

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

            var result = householdMemberIsCreatedQueryHandler.Query(fixture.Create <HouseholdMemberIsCreatedQuery>());

            Assert.That(result, Is.Not.Null);
            Assert.That(result, Is.EqualTo(booleanResultResponse));
        }
        public void TestThatQueryCallsMapWithFalseOnFoodWasteObjectMapperWhenHouseholdMemberDoesNotExist()
        {
            var fixture = new Fixture();

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

            householdDataRepositoryMock.Stub(m => m.HouseholdMemberGetByMailAddress(Arg <string> .Is.Anything))
            .Return(null)
            .Repeat.Any();

            var claimValueProviderMock = MockRepository.GenerateMock <IClaimValueProvider>();

            claimValueProviderMock.Stub(m => m.MailAddress)
            .Return(fixture.Create <string>())
            .Repeat.Any();

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

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

            var householdMemberIsCreatedQueryHandler = new HouseholdMemberIsCreatedQueryHandler(householdDataRepositoryMock, claimValueProviderMock, objectMapperMock);

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

            householdMemberIsCreatedQueryHandler.Query(fixture.Create <HouseholdMemberIsCreatedQuery>());

            objectMapperMock.AssertWasCalled(m => m.Map <bool, BooleanResultResponse>(Arg <bool> .Is.Equal(false), Arg <CultureInfo> .Is.Null));
        }
        public void TestThatConstructorInitializeHouseholdMemberIsCreatedQueryHandler()
        {
            var householdDataRepositoryMock = MockRepository.GenerateMock <IHouseholdDataRepository>();
            var claimValueProviderMock      = MockRepository.GenerateMock <IClaimValueProvider>();
            var objectMapperMock            = MockRepository.GenerateMock <IFoodWasteObjectMapper>();

            var householdMemberIsCreatedQueryHandler = new HouseholdMemberIsCreatedQueryHandler(householdDataRepositoryMock, claimValueProviderMock, objectMapperMock);

            Assert.That(householdMemberIsCreatedQueryHandler, Is.Not.Null);
        }
        public void TestThatQueryThrowsArgumentNullExceptionWhenQueryIsNull()
        {
            var householdDataRepositoryMock = MockRepository.GenerateMock <IHouseholdDataRepository>();
            var claimValueProviderMock      = MockRepository.GenerateMock <IClaimValueProvider>();
            var objectMapperMock            = MockRepository.GenerateMock <IFoodWasteObjectMapper>();

            var householdMemberIsCreatedQueryHandler = new HouseholdMemberIsCreatedQueryHandler(householdDataRepositoryMock, claimValueProviderMock, objectMapperMock);

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

            var exception = Assert.Throws <ArgumentNullException>(() => householdMemberIsCreatedQueryHandler.Query(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("query"));
            Assert.That(exception.InnerException, Is.Null);
        }