public void Update_GivenFalseStatement_ItUpdateToValidValidation()
        {
            // Arrange
            const string groupName         = "InvalidOperation";
            var          mustNotValidation = new MustNotValidation <bool>(groupName, x => x, false);

            // Act
            var result = mustNotValidation.Update();

            // Assert
            mustNotValidation.ShouldBe(result);
            mustNotValidation.IsValid.ShouldBeTrue();
            mustNotValidation.Failures.ShouldBeEmpty();
        }
        public void Update_GivenTrueStatement_ItUpdateItSelfToAnInvalidValidation()
        {
            // Arrange
            const string message           = "It must be true";
            const int    severtiy          = 5;
            const string groupName         = "InvalidOperation";
            var          mustNotValidation = new MustNotValidation <bool>(groupName, x => x, true, message, severtiy);

            // Act
            var result = mustNotValidation.Update();

            // Assert
            result.ShouldBe(mustNotValidation);
            result.IsValid.ShouldBeFalse();
            result.Failures.Count.ShouldBe(1);
            result.Failures.Single().Message.ShouldBe(message);
            result.Failures.Single().GroupName.ShouldBe(groupName);
            result.Failures.Single().Severity.ShouldBe(severtiy);
        }
        public void Update_ForcingFailedValidationAndPassingSummaryMessage_ItInsertsTheSummaryMessage()
        {
            // Arrange
            var person         = Fixture.Create <Person>();
            var summaryMessage = "#TestSummaryMessage";
            var validation     = new CompositeValidation <Person>(null, null, summaryMessage);
            var stopValidation = new MustNotValidation <object>("Failing", x => true);

            validation.Add(stopValidation, x => x);


            // Act
            validation.Update(person);

            // Assert
            validation.IsValid.ShouldBeFalse();
            validation.Failures.Count.ShouldBe(2);
            validation.Failures.First().Message.ShouldBe(summaryMessage);
        }