示例#1
0
        public void TestThatModifyDataCallsIsNullWithHouseholdMemberOnCommonValidationsWhenHouseholdDoesHaveHouseholdMemberWithMailAddress()
        {
            ITranslationInfo translationInfoMock = DomainObjectMockBuilder.BuildTranslationInfoMock();

            HouseholdAddHouseholdMemberCommandHandler sut = CreateSut(translationInfoMock);

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

            IHousehold householdMock = DomainObjectMockBuilder.BuildHouseholdMock();

            Assert.That(householdMock, Is.Not.Null);
            Assert.That(householdMock.HouseholdMembers, Is.Not.Null);
            Assert.That(householdMock.HouseholdMembers, Is.Not.Empty);

            IHouseholdMember householdMemberMock = householdMock.HouseholdMembers.ElementAt(_random.Next(0, householdMock.HouseholdMembers.Count() - 1));

            Assert.That(householdMemberMock, Is.Not.Null);
            Assert.That(householdMemberMock.MailAddress, Is.Not.Null);
            Assert.That(householdMemberMock.MailAddress, Is.Not.Empty);

            string mailAddress = householdMemberMock.MailAddress;

            Assert.That(householdMock.HouseholdMembers.Any(householdMember => string.Compare(householdMember.MailAddress, mailAddress, StringComparison.OrdinalIgnoreCase) == 0), Is.True);

            HouseholdAddHouseholdMemberCommand householdAddHouseholdMemberCommand = _fixture.Build <HouseholdAddHouseholdMemberCommand>()
                                                                                    .With(m => m.HouseholdIdentifier, Guid.NewGuid())
                                                                                    .With(m => m.MailAddress, mailAddress)
                                                                                    .With(m => m.TranslationInfoIdentifier, Guid.NewGuid())
                                                                                    .Create();

            sut.ModifyData(householdMock, householdAddHouseholdMemberCommand);

            _commonValidationsMock.AssertWasCalled(m => m.IsNull(Arg <IHouseholdMember> .Is.Equal(householdMemberMock)), opt => opt.Repeat.Once());
        }
示例#2
0
        public void TestThatHouseholdAddHouseholdMemberThrowsFaultExceptionWhenHouseholdMemberHasNotBeenCreated()
        {
            var client = _channelFactory.CreateChannel();

            try
            {
                IList <TranslationInfoSystemView> translationInfoCollection = GetTranslationInfoCollection(client);
                Assert.That(translationInfoCollection, Is.Not.Null);
                Assert.That(translationInfoCollection, Is.Not.Empty);

                foreach (var translationInfo in translationInfoCollection)
                {
                    HouseholdAddHouseholdMemberCommand householdAddHouseholdMemberCommand = new HouseholdAddHouseholdMemberCommand
                    {
                        HouseholdIdentifier       = Guid.NewGuid(),
                        MailAddress               = $"test.{Guid.NewGuid().ToString("D").ToLower()}@osdevgrp.dk",
                        TranslationInfoIdentifier = translationInfo.TranslationInfoIdentifier
                    };
                    FaultException <FoodWasteFault> faultException = Assert.Throws <FaultException <FoodWasteFault> >(() => client.HouseholdAddHouseholdMember(householdAddHouseholdMemberCommand));

                    TestHelper.AssertFaultExceptionWithFoodWasteFault(faultException, FoodWasteFaultType.BusinessFault, SoapNamespaces.FoodWasteHouseholdDataServiceName, "HouseholdAddHouseholdMember", ExceptionMessage.HouseholdMemberNotCreated);
                }
            }
            finally
            {
                ChannelTools.CloseChannel(client);
            }
        }
 public virtual ServiceReceiptResponse HouseholdAddHouseholdMember(HouseholdAddHouseholdMemberCommand command)
 {
     if (command == null)
     {
         throw new ArgumentNullException(nameof(command));
     }
     try
     {
         return(_commandBus.Publish <HouseholdAddHouseholdMemberCommand, ServiceReceiptResponse>(command));
     }
     catch (Exception ex)
     {
         throw _foodWasteFaultExceptionBuilder.Build(ex, SoapNamespaces.FoodWasteHouseholdDataServiceName, MethodBase.GetCurrentMethod());
     }
 }
示例#4
0
        public void TestThatAddValidationRulesDoesNotCallsEvaluateOnSpecification()
        {
            HouseholdAddHouseholdMemberCommandHandler sut = CreateSut();

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

            HouseholdAddHouseholdMemberCommand householdAddHouseholdMemberCommand = _fixture.Build <HouseholdAddHouseholdMemberCommand>()
                                                                                    .With(m => m.HouseholdIdentifier, Guid.NewGuid())
                                                                                    .With(m => m.MailAddress, _fixture.Create <string>())
                                                                                    .With(m => m.TranslationInfoIdentifier, Guid.NewGuid())
                                                                                    .Create();

            sut.AddValidationRules(DomainObjectMockBuilder.BuildHouseholdMock(), householdAddHouseholdMemberCommand, _specificationMock);

            _specificationMock.AssertWasNotCalled(m => m.Evaluate());
        }
示例#5
0
        public void TestThatModifyDataCallsEvaluateOnSpecification()
        {
            HouseholdAddHouseholdMemberCommandHandler sut = CreateSut();

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

            HouseholdAddHouseholdMemberCommand householdAddHouseholdMemberCommand = _fixture.Build <HouseholdAddHouseholdMemberCommand>()
                                                                                    .With(m => m.HouseholdIdentifier, Guid.NewGuid())
                                                                                    .With(m => m.MailAddress, _fixture.Create <string>())
                                                                                    .With(m => m.TranslationInfoIdentifier, Guid.NewGuid())
                                                                                    .Create();

            sut.ModifyData(DomainObjectMockBuilder.BuildHouseholdMock(), householdAddHouseholdMemberCommand);

            _specificationMock.AssertWasCalled(m => m.Evaluate(), opt => opt.Repeat.Once());
        }
示例#6
0
        public void TestThatModifyDataDoesNotCallGetForAnyHouseholdMemberOnHouseholdDataRepositoryWhenHouseholdMemberForMailAddressExists()
        {
            HouseholdAddHouseholdMemberCommandHandler sut = CreateSut();

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

            HouseholdAddHouseholdMemberCommand householdAddHouseholdMemberCommand = _fixture.Build <HouseholdAddHouseholdMemberCommand>()
                                                                                    .With(m => m.HouseholdIdentifier, Guid.NewGuid())
                                                                                    .With(m => m.MailAddress, _fixture.Create <string>())
                                                                                    .With(m => m.TranslationInfoIdentifier, Guid.NewGuid())
                                                                                    .Create();

            sut.ModifyData(DomainObjectMockBuilder.BuildHouseholdMock(), householdAddHouseholdMemberCommand);

            _householdDataRepositoryMock.AssertWasNotCalled(m => m.Get <IHouseholdMember>(Arg <Guid> .Is.Anything));
        }
示例#7
0
        public void TestThatAddValidationRulesCallsMailAddressOnClaimValueProvider()
        {
            HouseholdAddHouseholdMemberCommandHandler sut = CreateSut();

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

            HouseholdAddHouseholdMemberCommand householdAddHouseholdMemberCommand = _fixture.Build <HouseholdAddHouseholdMemberCommand>()
                                                                                    .With(m => m.HouseholdIdentifier, Guid.NewGuid())
                                                                                    .With(m => m.MailAddress, _fixture.Create <string>())
                                                                                    .With(m => m.TranslationInfoIdentifier, Guid.NewGuid())
                                                                                    .Create();

            sut.AddValidationRules(DomainObjectMockBuilder.BuildHouseholdMock(), householdAddHouseholdMemberCommand, _specificationMock);

            _claimValueProviderMock.AssertWasCalled(m => m.MailAddress, opt => opt.Repeat.Once());
        }
示例#8
0
        public void TestThatModifyDataCallsIsSatisfiedByOnSpecification2Times()
        {
            HouseholdAddHouseholdMemberCommandHandler sut = CreateSut();

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

            HouseholdAddHouseholdMemberCommand householdAddHouseholdMemberCommand = _fixture.Build <HouseholdAddHouseholdMemberCommand>()
                                                                                    .With(m => m.HouseholdIdentifier, Guid.NewGuid())
                                                                                    .With(m => m.MailAddress, _fixture.Create <string>())
                                                                                    .With(m => m.TranslationInfoIdentifier, Guid.NewGuid())
                                                                                    .Create();

            sut.ModifyData(DomainObjectMockBuilder.BuildHouseholdMock(), householdAddHouseholdMemberCommand);

            _specificationMock.AssertWasCalled(m => m.IsSatisfiedBy(Arg <Func <bool> > .Is.NotNull, Arg <IntranetBusinessException> .Is.TypeOf), opt => opt.Repeat.Times(2));
        }
示例#9
0
        public void TestThatAddValidationRulesCallsIsMailAddressWithMailAddressOnDomainObjectValidations()
        {
            HouseholdAddHouseholdMemberCommandHandler sut = CreateSut();

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

            string mailAddress = _fixture.Create <string>();
            HouseholdAddHouseholdMemberCommand householdAddHouseholdMemberCommand = _fixture.Build <HouseholdAddHouseholdMemberCommand>()
                                                                                    .With(m => m.HouseholdIdentifier, Guid.NewGuid())
                                                                                    .With(m => m.MailAddress, mailAddress)
                                                                                    .With(m => m.TranslationInfoIdentifier, Guid.NewGuid())
                                                                                    .Create();

            sut.AddValidationRules(DomainObjectMockBuilder.BuildHouseholdMock(), householdAddHouseholdMemberCommand, _specificationMock);

            _domainObjectValidationsMock.AssertWasCalled(m => m.IsMailAddress(Arg <string> .Is.Equal(mailAddress)), opt => opt.Repeat.Once());
        }
示例#10
0
        public void TestThatModifyDataCallsHouseholdMemberGetByMailAddressOnHouseholdDataRepository()
        {
            HouseholdAddHouseholdMemberCommandHandler sut = CreateSut();

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

            string mailAddress = _fixture.Create <string>();
            HouseholdAddHouseholdMemberCommand householdAddHouseholdMemberCommand = _fixture.Build <HouseholdAddHouseholdMemberCommand>()
                                                                                    .With(m => m.HouseholdIdentifier, Guid.NewGuid())
                                                                                    .With(m => m.MailAddress, mailAddress)
                                                                                    .With(m => m.TranslationInfoIdentifier, Guid.NewGuid())
                                                                                    .Create();

            sut.ModifyData(DomainObjectMockBuilder.BuildHouseholdMock(), householdAddHouseholdMemberCommand);

            _householdDataRepositoryMock.AssertWasCalled(m => m.HouseholdMemberGetByMailAddress(Arg <string> .Is.Equal(mailAddress)), opt => opt.Repeat.Once());
        }
示例#11
0
        public void TestThatModifyDataCallsGetWithIdentifierForCreatedHouseholdMemberOnHouseholdDataRepositoryWhenHouseholdMemberForMailAddressDoesNotExist()
        {
            Guid createdHouseholdMemberIdentifier = Guid.NewGuid();

            HouseholdAddHouseholdMemberCommandHandler sut = CreateSut(knownMailAddress: false, createdHouseholdMemberIdentifier: createdHouseholdMemberIdentifier);

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

            HouseholdAddHouseholdMemberCommand householdAddHouseholdMemberCommand = _fixture.Build <HouseholdAddHouseholdMemberCommand>()
                                                                                    .With(m => m.HouseholdIdentifier, Guid.NewGuid())
                                                                                    .With(m => m.MailAddress, _fixture.Create <string>())
                                                                                    .With(m => m.TranslationInfoIdentifier, Guid.NewGuid())
                                                                                    .Create();

            sut.ModifyData(DomainObjectMockBuilder.BuildHouseholdMock(), householdAddHouseholdMemberCommand);

            _householdDataRepositoryMock.AssertWasCalled(m => m.Get <IHouseholdMember>(Arg <Guid> .Is.Equal(createdHouseholdMemberIdentifier)), opt => opt.Repeat.Once());
        }
示例#12
0
        public void TestThatModifyDataCallsIsNotNullWithTranslationInfoOnCommonValidations()
        {
            ITranslationInfo translationInfoMock = DomainObjectMockBuilder.BuildTranslationInfoMock();

            HouseholdAddHouseholdMemberCommandHandler sut = CreateSut(translationInfoMock);

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

            HouseholdAddHouseholdMemberCommand householdAddHouseholdMemberCommand = _fixture.Build <HouseholdAddHouseholdMemberCommand>()
                                                                                    .With(m => m.HouseholdIdentifier, Guid.NewGuid())
                                                                                    .With(m => m.MailAddress, _fixture.Create <string>())
                                                                                    .With(m => m.TranslationInfoIdentifier, Guid.NewGuid())
                                                                                    .Create();

            sut.ModifyData(DomainObjectMockBuilder.BuildHouseholdMock(), householdAddHouseholdMemberCommand);

            _commonValidationsMock.AssertWasCalled(m => m.IsNotNull(Arg <ITranslationInfo> .Is.Equal(translationInfoMock)), opt => opt.Repeat.Once());
        }
示例#13
0
        public void TestThatModifyDataReturnsResultFromUpdateCalledWithHouseholdOnHouseholdDataRepository()
        {
            IHousehold updatedHouseholdMock = DomainObjectMockBuilder.BuildHouseholdMock();

            HouseholdAddHouseholdMemberCommandHandler sut = CreateSut(updatedHousehold: updatedHouseholdMock);

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

            HouseholdAddHouseholdMemberCommand householdAddHouseholdMemberCommand = _fixture.Build <HouseholdAddHouseholdMemberCommand>()
                                                                                    .With(m => m.HouseholdIdentifier, Guid.NewGuid())
                                                                                    .With(m => m.MailAddress, _fixture.Create <string>())
                                                                                    .With(m => m.TranslationInfoIdentifier, Guid.NewGuid())
                                                                                    .Create();

            IIdentifiable result = sut.ModifyData(DomainObjectMockBuilder.BuildHouseholdMock(), householdAddHouseholdMemberCommand);

            Assert.That(result, Is.Not.Null);
            Assert.That(result, Is.EqualTo(updatedHouseholdMock));
        }
示例#14
0
        public void TestThatAddValidationRulesCallsEqualsWithMailAddressAndCurrentUserMailAddressOnCommonValidations()
        {
            string currentUserMailAddress = _fixture.Create <string>();

            HouseholdAddHouseholdMemberCommandHandler sut = CreateSut(currentUserMailAddress: currentUserMailAddress);

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

            string mailAddress = _fixture.Create <string>();
            HouseholdAddHouseholdMemberCommand householdAddHouseholdMemberCommand = _fixture.Build <HouseholdAddHouseholdMemberCommand>()
                                                                                    .With(m => m.HouseholdIdentifier, Guid.NewGuid())
                                                                                    .With(m => m.MailAddress, mailAddress)
                                                                                    .With(m => m.TranslationInfoIdentifier, Guid.NewGuid())
                                                                                    .Create();

            sut.AddValidationRules(DomainObjectMockBuilder.BuildHouseholdMock(), householdAddHouseholdMemberCommand, _specificationMock);

            _commonValidationsMock.AssertWasCalled(m => m.Equals(Arg <string> .Is.Equal(mailAddress), Arg <string> .Is.Equal(currentUserMailAddress), Arg <StringComparison> .Is.Equal(StringComparison.OrdinalIgnoreCase)), opt => opt.Repeat.Once());
        }
示例#15
0
        public void TestThatModifyDataCallsHouseholdMemberAddWithHouseholdMemberForMailAddressOnHouseholdWhenHouseholdMemberForMailAddressExists()
        {
            IHouseholdMember householdMemberForMailAddressMock = DomainObjectMockBuilder.BuildHouseholdMemberMock();

            HouseholdAddHouseholdMemberCommandHandler sut = CreateSut(householdMemberForMailAddress: householdMemberForMailAddressMock);

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

            IHousehold householdMock = DomainObjectMockBuilder.BuildHouseholdMock();

            HouseholdAddHouseholdMemberCommand householdAddHouseholdMemberCommand = _fixture.Build <HouseholdAddHouseholdMemberCommand>()
                                                                                    .With(m => m.HouseholdIdentifier, Guid.NewGuid())
                                                                                    .With(m => m.MailAddress, _fixture.Create <string>())
                                                                                    .With(m => m.TranslationInfoIdentifier, Guid.NewGuid())
                                                                                    .Create();

            sut.ModifyData(householdMock, householdAddHouseholdMemberCommand);

            householdMock.AssertWasCalled(m => m.HouseholdMemberAdd(Arg <IHouseholdMember> .Is.Equal(householdMemberForMailAddressMock)), opt => opt.Repeat.Once());
        }
示例#16
0
        public void TestThatModifyDataCallsHouseholdMemberAddOnLogicExecutorWhenHouseholdMemberForMailAddressDoesNotExist()
        {
            ITranslationInfo translationInfoMock = DomainObjectMockBuilder.BuildTranslationInfoMock();

            HouseholdAddHouseholdMemberCommandHandler sut = CreateSut(translationInfoMock, false);

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

            string mailAddress = _fixture.Create <string>();
            HouseholdAddHouseholdMemberCommand householdAddHouseholdMemberCommand = _fixture.Build <HouseholdAddHouseholdMemberCommand>()
                                                                                    .With(m => m.HouseholdIdentifier, Guid.NewGuid())
                                                                                    .With(m => m.MailAddress, mailAddress)
                                                                                    .With(m => m.TranslationInfoIdentifier, Guid.NewGuid())
                                                                                    .Create();

            sut.ModifyData(DomainObjectMockBuilder.BuildHouseholdMock(), householdAddHouseholdMemberCommand);

            // ReSharper disable PossibleInvalidOperationException
            _logicExecutorMock.AssertWasCalled(m => m.HouseholdMemberAdd(Arg <string> .Is.Equal(mailAddress), Arg <Guid> .Is.Equal(translationInfoMock.Identifier.Value)), opt => opt.Repeat.Once());
            // ReSharper restore PossibleInvalidOperationException
        }
示例#17
0
        public void TestHouseholdCreationFlow()
        {
            var fixture = new Fixture();

            using (var executor = new ClaimsPrincipalTestExecutor())
            {
                var translationInfoCollection = _householdDataService.TranslationInfoGetAll(new TranslationInfoCollectionGetQuery());
                Assert.That(translationInfoCollection, Is.Not.Null);
                Assert.That(translationInfoCollection, Is.Not.Empty);

                var translationInfoIdentifier = translationInfoCollection.Take(1).First().TranslationInfoIdentifier;

                var householdAddCommand = new HouseholdAddCommand
                {
                    Name        = fixture.Create <string>(),
                    Description = fixture.Create <string>(),
                    TranslationInfoIdentifier = translationInfoIdentifier
                };
                var householdAdd = _householdDataService.HouseholdAdd(householdAddCommand);
                try
                {
                    Assert.That(householdAdd, Is.Not.Null);
                    Assert.That(householdAdd.Identifier, Is.Not.Null);
                    Assert.That(householdAdd.Identifier.HasValue, Is.True);

                    // ReSharper disable PossibleInvalidOperationException
                    var householdIdentifier = householdAdd.Identifier.Value;
                    // ReSharper restore PossibleInvalidOperationException
                    Assert.That(householdIdentifier, Is.Not.EqualTo(default(Guid)));

                    var householdMemberIsCreated = _householdDataService.HouseholdMemberIsCreated(new HouseholdMemberIsCreatedQuery());
                    Assert.That(householdMemberIsCreated, Is.Not.Null);
                    Assert.That(householdMemberIsCreated.Result, Is.True);

                    var householdMemberIsActivated = _householdDataService.HouseholdMemberIsActivated(new HouseholdMemberIsActivatedQuery());
                    Assert.That(householdMemberIsActivated, Is.Not.Null);
                    Assert.That(householdMemberIsActivated.Result, Is.False);

                    var currentMailAddress             = executor.MailAddress;
                    var householdMemberActivateCommand = new HouseholdMemberActivateCommand
                    {
                        ActivationCode = _householdDataRepository.HouseholdMemberGetByMailAddress(currentMailAddress).ActivationCode
                    };
                    var householdMemberActivate = _householdDataService.HouseholdMemberActivate(householdMemberActivateCommand);
                    Assert.That(householdMemberActivate, Is.Not.Null);
                    Assert.That(householdMemberActivate.Identifier, Is.Not.Null);
                    Assert.That(householdMemberActivate.Identifier.HasValue, Is.True);

                    householdMemberIsActivated = _householdDataService.HouseholdMemberIsActivated(new HouseholdMemberIsActivatedQuery());
                    Assert.That(householdMemberIsActivated, Is.Not.Null);
                    Assert.That(householdMemberIsActivated.Result, Is.True);

                    var householdMemberHasAcceptedPrivacyPolicy = _householdDataService.HouseholdMemberHasAcceptedPrivacyPolicy(new HouseholdMemberHasAcceptedPrivacyPolicyQuery());
                    Assert.That(householdMemberHasAcceptedPrivacyPolicy, Is.Not.Null);
                    Assert.That(householdMemberHasAcceptedPrivacyPolicy.Result, Is.False);

                    var householdMemberAcceptPrivacyPolicy = _householdDataService.HouseholdMemberAcceptPrivacyPolicy(new HouseholdMemberAcceptPrivacyPolicyCommand());
                    Assert.That(householdMemberAcceptPrivacyPolicy, Is.Not.Null);
                    Assert.That(householdMemberAcceptPrivacyPolicy.Identifier, Is.Not.Null);
                    Assert.That(householdMemberAcceptPrivacyPolicy.Identifier.HasValue, Is.True);

                    householdMemberHasAcceptedPrivacyPolicy = _householdDataService.HouseholdMemberHasAcceptedPrivacyPolicy(new HouseholdMemberHasAcceptedPrivacyPolicyQuery());
                    Assert.That(householdMemberHasAcceptedPrivacyPolicy, Is.Not.Null);
                    Assert.That(householdMemberHasAcceptedPrivacyPolicy.Result, Is.True);

                    var householdDataGetQuery = new HouseholdDataGetQuery
                    {
                        HouseholdIdentifier       = householdIdentifier,
                        TranslationInfoIdentifier = translationInfoIdentifier
                    };
                    var householdData = _householdDataService.HouseholdDataGet(householdDataGetQuery);
                    Assert.That(householdData, Is.Not.Null);
                    Assert.That(householdData.HouseholdIdentifier, Is.Not.Null);
                    Assert.That(householdData.HouseholdIdentifier, Is.EqualTo(householdIdentifier));
                    Assert.That(householdData.Name, Is.Not.Null);
                    Assert.That(householdData.Name, Is.Not.Empty);
                    Assert.That(householdData.Name, Is.EqualTo(householdAddCommand.Name));
                    Assert.That(householdData.Description, Is.Not.Null);
                    Assert.That(householdData.Description, Is.Not.Empty);
                    Assert.That(householdData.Description, Is.EqualTo(householdAddCommand.Description));
                    Assert.That(householdData.CreationTime, Is.EqualTo(DateTime.Now).Within(5).Seconds);
                    Assert.That(householdData.HouseholdMembers, Is.Not.Null);
                    Assert.That(householdData.HouseholdMembers, Is.Not.Empty);
                    Assert.That(householdData.HouseholdMembers.Count(), Is.EqualTo(1));
                    Assert.That(householdData.HouseholdMembers.SingleOrDefault(householdMember => string.Compare(householdMember.MailAddress, currentMailAddress, StringComparison.Ordinal) == 0), Is.Not.Null);

                    var householdUpdateCommand = new HouseholdUpdateCommand
                    {
                        HouseholdIdentifier = householdIdentifier,
                        Name        = fixture.Create <string>(),
                        Description = fixture.Create <string>()
                    };
                    var householdUpdate = _householdDataService.HouseholdUpdate(householdUpdateCommand);
                    Assert.That(householdUpdate, Is.Not.Null);
                    Assert.That(householdUpdate.Identifier, Is.Not.Null);
                    Assert.That(householdUpdate.Identifier.HasValue, Is.True);
                    // ReSharper disable PossibleInvalidOperationException
                    Assert.That(householdUpdate.Identifier.Value, Is.EqualTo(householdIdentifier));
                    // ReSharper restore PossibleInvalidOperationException

                    householdData = _householdDataService.HouseholdDataGet(householdDataGetQuery);
                    Assert.That(householdData, Is.Not.Null);
                    Assert.That(householdData.HouseholdIdentifier, Is.Not.Null);
                    Assert.That(householdData.HouseholdIdentifier, Is.EqualTo(householdIdentifier));
                    Assert.That(householdData.Name, Is.Not.Null);
                    Assert.That(householdData.Name, Is.Not.Empty);
                    Assert.That(householdData.Name, Is.EqualTo(householdUpdateCommand.Name));
                    Assert.That(householdData.Description, Is.Not.Null);
                    Assert.That(householdData.Description, Is.Not.Empty);
                    Assert.That(householdData.Description, Is.EqualTo(householdUpdateCommand.Description));

                    householdUpdateCommand = new HouseholdUpdateCommand
                    {
                        HouseholdIdentifier = householdIdentifier,
                        Name        = fixture.Create <string>(),
                        Description = null
                    };
                    householdUpdate = _householdDataService.HouseholdUpdate(householdUpdateCommand);
                    Assert.That(householdUpdate, Is.Not.Null);
                    Assert.That(householdUpdate.Identifier, Is.Not.Null);
                    Assert.That(householdUpdate.Identifier.HasValue, Is.True);
                    // ReSharper disable PossibleInvalidOperationException
                    Assert.That(householdUpdate.Identifier.Value, Is.EqualTo(householdIdentifier));
                    // ReSharper restore PossibleInvalidOperationException

                    householdData = _householdDataService.HouseholdDataGet(householdDataGetQuery);
                    Assert.That(householdData, Is.Not.Null);
                    Assert.That(householdData.HouseholdIdentifier, Is.Not.Null);
                    Assert.That(householdData.HouseholdIdentifier, Is.EqualTo(householdIdentifier));
                    Assert.That(householdData.Name, Is.Not.Null);
                    Assert.That(householdData.Name, Is.Not.Empty);
                    Assert.That(householdData.Name, Is.EqualTo(householdUpdateCommand.Name));
                    Assert.That(householdData.Description, Is.Null);

                    var secondaryMailAddress = string.Format("test.{0}@osdevgrp.dk", Guid.NewGuid().ToString("D").ToLower());
                    var householdAddHouseholdMemberCommand = new HouseholdAddHouseholdMemberCommand
                    {
                        HouseholdIdentifier       = householdIdentifier,
                        MailAddress               = secondaryMailAddress,
                        TranslationInfoIdentifier = translationInfoIdentifier
                    };
                    var householdAddHouseholdMember = _householdDataService.HouseholdAddHouseholdMember(householdAddHouseholdMemberCommand);
                    Assert.That(householdAddHouseholdMember.Identifier, Is.Not.Null);
                    Assert.That(householdAddHouseholdMember.Identifier.HasValue, Is.True);
                    // ReSharper disable PossibleInvalidOperationException
                    Assert.That(householdAddHouseholdMember.Identifier.Value, Is.EqualTo(householdIdentifier));
                    // ReSharper restore PossibleInvalidOperationException

                    householdData = _householdDataService.HouseholdDataGet(householdDataGetQuery);
                    Assert.That(householdData, Is.Not.Null);
                    Assert.That(householdData.HouseholdIdentifier, Is.Not.Null);
                    Assert.That(householdData.HouseholdIdentifier, Is.EqualTo(householdIdentifier));
                    Assert.That(householdData.HouseholdMembers, Is.Not.Null);
                    Assert.That(householdData.HouseholdMembers, Is.Not.Empty);
                    Assert.That(householdData.HouseholdMembers.Count(), Is.EqualTo(2));
                    Assert.That(householdData.HouseholdMembers.SingleOrDefault(householdMember => string.Compare(householdMember.MailAddress, secondaryMailAddress, StringComparison.Ordinal) == 0), Is.Not.Null);

                    var householdRemoveHouseholdMemberCommand = new HouseholdRemoveHouseholdMemberCommand
                    {
                        HouseholdIdentifier = householdIdentifier,
                        MailAddress         = secondaryMailAddress
                    };
                    var householdRemoveHouseholdMember = _householdDataService.HouseholdRemoveHouseholdMember(householdRemoveHouseholdMemberCommand);
                    Assert.That(householdRemoveHouseholdMember.Identifier, Is.Not.Null);
                    Assert.That(householdRemoveHouseholdMember.Identifier.HasValue, Is.True);
                    // ReSharper disable PossibleInvalidOperationException
                    Assert.That(householdRemoveHouseholdMember.Identifier.Value, Is.EqualTo(householdIdentifier));
                    // ReSharper restore PossibleInvalidOperationException

                    householdData = _householdDataService.HouseholdDataGet(householdDataGetQuery);
                    Assert.That(householdData, Is.Not.Null);
                    Assert.That(householdData.HouseholdIdentifier, Is.Not.Null);
                    Assert.That(householdData.HouseholdIdentifier, Is.EqualTo(householdIdentifier));
                    Assert.That(householdData.HouseholdMembers, Is.Not.Null);
                    Assert.That(householdData.HouseholdMembers, Is.Not.Empty);
                    Assert.That(householdData.HouseholdMembers.Count(), Is.EqualTo(1));
                    Assert.That(householdData.HouseholdMembers.SingleOrDefault(householdMember => string.Compare(householdMember.MailAddress, secondaryMailAddress, StringComparison.Ordinal) == 0), Is.Null);
                }
                finally
                {
                    if (householdAdd != null && householdAdd.Identifier.HasValue)
                    {
                        _householdDataRepository.Delete(_householdDataRepository.Get <IHousehold>(householdAdd.Identifier.Value));
                    }
                }
            }
        }