public void That_HaveThreeBooleanInsideAssertBlock_BothConditionsAreTested()
        {
            AssertBuilderFactoryForTests.FakeAssertBuilder();


            var b1 = DummyCreator.GetTrueBooleanValue();
            var b2 = DummyCreator.GetTrueBooleanValue();
            var b3 = DummyCreator.GetTrueBooleanValue();

            Expect.That(() => b1 && b2 && b3);

            var assertBuilder = AssertBuilderFactory.GetAssertBuilder();

            A.CallTo(() => assertBuilder.GetIsTrueAction(A <Expression> ._, A <string> ._)).MustHaveHappened(Repeated.Exactly.Times(3));
        }
        public void That_HaveOneEqualityAndOneBooleanInsideAssertBlock_BothConditionsAreTested()
        {
            var fakeBuilder = AssertBuilderFactoryForTests.FakeAssertBuilder();

            var assertIsTrueValidor     = new CallValidator();
            var assertAreEqualValidator = new CallValidator();

            A.CallTo(() => fakeBuilder.GetIsTrueAction(A <Expression> ._, A <string> ._)).AddAssertValidation(assertIsTrueValidor);
            A.CallTo(() => fakeBuilder.GetAreEqualAction(A <Expression> ._, A <Expression> ._, A <string> ._)).AddAssertValidation(assertAreEqualValidator);

            var obj1 = DummyCreator.GetReferenceObject1();
            var obj2 = DummyCreator.GetReferenceObject2();
            var b1   = DummyCreator.GetTrueBooleanValue();

            Expect.That(() => obj1 == obj2 && b1);

            assertIsTrueValidor.WasAssertCalledWithArguments(b1);
            assertAreEqualValidator.WasAssertCalledWithArguments(obj2, obj1);
        }