public void TestThatAddValidationRulesDoesNotCallsEvaluateOnSpecification()
        {
            HouseholdRemoveHouseholdMemberCommandHandler sut = CreateSut();

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

            HouseholdRemoveHouseholdMemberCommand householdRemoveHouseholdMemberCommand = _fixture.Build <HouseholdRemoveHouseholdMemberCommand>()
                                                                                          .With(m => m.HouseholdIdentifier, Guid.NewGuid())
                                                                                          .With(m => m.MailAddress, _fixture.Create <string>())
                                                                                          .Create();

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

            _specificationMock.AssertWasNotCalled(m => m.Evaluate());
        }
        public void TestThatAddValidationRulesCallsIsSatisfiedByOnSpecification5Times()
        {
            HouseholdRemoveHouseholdMemberCommandHandler sut = CreateSut();

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

            HouseholdRemoveHouseholdMemberCommand householdRemoveHouseholdMemberCommand = _fixture.Build <HouseholdRemoveHouseholdMemberCommand>()
                                                                                          .With(m => m.HouseholdIdentifier, Guid.NewGuid())
                                                                                          .With(m => m.MailAddress, _fixture.Create <string>())
                                                                                          .Create();

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

            _specificationMock.AssertWasCalled(m => m.IsSatisfiedBy(Arg <Func <bool> > .Is.NotNull, Arg <IntranetBusinessException> .Is.TypeOf), opt => opt.Repeat.Times(5));
        }
        public void TestThatAddValidationRulesCallsMailAddressOnClaimValueProvider()
        {
            HouseholdRemoveHouseholdMemberCommandHandler sut = CreateSut();

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

            HouseholdRemoveHouseholdMemberCommand householdRemoveHouseholdMemberCommand = _fixture.Build <HouseholdRemoveHouseholdMemberCommand>()
                                                                                          .With(m => m.HouseholdIdentifier, Guid.NewGuid())
                                                                                          .With(m => m.MailAddress, _fixture.Create <string>())
                                                                                          .Create();

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

            _claimValueProviderMock.AssertWasCalled(m => m.MailAddress, opt => opt.Repeat.Once());
        }
        public void TestThatAddValidationRulesCallsIsMailAddressWithMailAddressOnDomainObjectValidations()
        {
            HouseholdRemoveHouseholdMemberCommandHandler sut = CreateSut();

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

            string mailAddress = _fixture.Create <string>();
            HouseholdRemoveHouseholdMemberCommand householdRemoveHouseholdMemberCommand = _fixture.Build <HouseholdRemoveHouseholdMemberCommand>()
                                                                                          .With(m => m.HouseholdIdentifier, Guid.NewGuid())
                                                                                          .With(m => m.MailAddress, mailAddress)
                                                                                          .Create();

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

            _domainObjectValidationsMock.AssertWasCalled(m => m.IsMailAddress(Arg <string> .Is.Equal(mailAddress)), opt => opt.Repeat.Once());
        }
        public void TestThatAddValidationRulesCallsEqualsWithMailAddressAndCurrentUserMailAddressOnCommonValidations()
        {
            string currentUserMailAddress = _fixture.Create <string>();

            HouseholdRemoveHouseholdMemberCommandHandler sut = CreateSut(currentUserMailAddress: currentUserMailAddress);

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

            string mailAddress = _fixture.Create <string>();
            HouseholdRemoveHouseholdMemberCommand householdRemoveHouseholdMemberCommand = _fixture.Build <HouseholdRemoveHouseholdMemberCommand>()
                                                                                          .With(m => m.HouseholdIdentifier, Guid.NewGuid())
                                                                                          .With(m => m.MailAddress, mailAddress)
                                                                                          .Create();

            sut.AddValidationRules(DomainObjectMockBuilder.BuildHouseholdMock(), householdRemoveHouseholdMemberCommand, _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());
        }
        public void TestThatAddValidationRulesThrowsArgumentNullExceptionWhenHouseholdIsNull()
        {
            HouseholdRemoveHouseholdMemberCommandHandler sut = CreateSut();

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

            ArgumentNullException result = Assert.Throws <ArgumentNullException>(() => sut.AddValidationRules(null, _fixture.Create <HouseholdRemoveHouseholdMemberCommand>(), _specificationMock));

            TestHelper.AssertArgumentNullExceptionIsValid(result, "household");
        }
        public void TestThatAddValidationRulesThrowsArgumentNullExceptionWhenSpecificationIsNull()
        {
            HouseholdRemoveHouseholdMemberCommandHandler sut = CreateSut();

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

            ArgumentNullException result = Assert.Throws <ArgumentNullException>(() => sut.AddValidationRules(DomainObjectMockBuilder.BuildHouseholdMock(), _fixture.Create <HouseholdRemoveHouseholdMemberCommand>(), null));

            TestHelper.AssertArgumentNullExceptionIsValid(result, "specification");
        }