Exemplo n.º 1
0
        public void AllowAddingNewVerifiables()
        {
            var verifiable1 = new MockVerifiable();

            verifiable1.Verify.Return(new[] { new VerificationResult("My Verification", false) });

            var verifiable2 = new MockVerifiable();

            verifiable2.Verify.Return(new[] { new VerificationResult("My other verification", true) });

            IVerifiable group = new VerificationGroup("My Group")
            {
                verifiable1,
                verifiable2
            };

            var groupResult = group.Verify();
            var result      = Assert.Single(groupResult);

            var expectedResult = new VerificationResult("Verification Group 'My Group':", new[]
            {
                new VerificationResult("My Verification", false),
                new VerificationResult("My other verification", true)
            });

            result.AssertEquals(expectedResult);
        }
Exemplo n.º 2
0
        public void NotThrowWhenAssertingSuccessfulGroup()
        {
            var verifiable = new MockVerifiable();

            verifiable.Verify
            .Return(new[] { new VerificationResult("a passing test", true) });

            var group = new VerificationGroup("My Group")
            {
                verifiable
            };

            group.Assert();
        }
Exemplo n.º 3
0
        public void ExposesVerifiablesThroughIEnumerable()
        {
            var verifiable1 = new MockVerifiable();

            verifiable1.Verify.Return(new[] { new VerificationResult("My Verification", false) });

            var verifiable2 = new MockVerifiable();

            verifiable2.Verify.Return(new[] { new VerificationResult("My other verification", true) });

            var group = new VerificationGroup("My Group")
            {
                verifiable1,
                verifiable2
            };

            Assert.Equal(new IVerifiable[] { verifiable1, verifiable2 }, group);
            Assert.Equal(new IVerifiable[] { verifiable1, verifiable2 }, group.ToArray());
        }
Exemplo n.º 4
0
        public void PassFormatProviderToGroupMembers()
        {
            var verifiable = new MockVerifiable();

            verifiable.Verify
            .RecordBeforeCall(out var ledger)
            .Return(new[] { new VerificationResult("aha", true) });

            IVerifiable group = new VerificationGroup("My Group")
            {
                verifiable
            };

            var french   = new CultureInfo("fr-FR");
            var japanese = new CultureInfo("ja-JP");

            group.Verify(french);
            group.Verify(japanese);

            Assert.Equal(new IFormatProvider[] { french, japanese }, ledger);
            Assert.Equal(new IFormatProvider[] { french, japanese }, ledger.ToArray());
        }
Exemplo n.º 5
0
        public void ThrowWhenAssertingFailedGroup()
        {
            var verifiable = new MockVerifiable();

            verifiable.Verify
            .Return(new[] { new VerificationResult("a failing test", false) });

            var group = new VerificationGroup("My Group")
            {
                verifiable
            };

            var ex = Assert.Throws <VerificationFailedException>(() => group.Assert());

            ex.VerificationResult.AssertEquals(new VerificationResult("Verification Group 'My Group':", new[]
            {
                new VerificationResult("a failing test", false)
            }));

            Assert.Equal(@"Verification failed.

FAILED: Verification Group 'My Group':
FAILED:   a failing test", ex.Message);
        }
        public void TestIfAnd_NowConnectsToTwoValidPredicaments()
        {
            // Arrange
              bool actionCalled = false;
              object target = new object();
              object received_parameter = null;
              var verifiable = new MockVerifiable<object>(
                          new Verifiable<object>(
                              new Assertion<object>(target),
                              p =>
                              {
                                actionCalled = true;
                                received_parameter = p;
                              }));
              StubVerifiable<string> right = null;

              // Act
              right = new StubVerifiable<string>(verifiable.And("data")
                .IsEqualTo("data"));
              right.Now();

              // Assert
              Assert.IsTrue(verifiable.NowCalled, "No se mandó llamar Now()");
              Assert.IsTrue(actionCalled, "No se ejctuó la acción sobre el Target");
              Assert.AreEqual(target, received_parameter);
              Assert.IsFalse(verifiable.TargetGetCalled, "No se debe pedir el Target del Verifiable en la conexión");
              Assert.IsTrue(right.NowCalled);
        }
        public void TestIfAnd_NowConnectsAnInvalidRightPredicament()
        {
            // Arrange
              bool actionCalled = false;
              object target = new object();
              object received_parameter = null;
              var verifiable = new MockVerifiable<object>(
                          new Verifiable<object>(
                              new Assertion<object>(target),
                                  p =>
                                  {
                                    actionCalled = true;
                                    received_parameter = p;
                                  }));
              StubVerifiable<string> right = null;

              // Act
              Exception x = null;
              try
              {
            right = new StubVerifiable<string>(
            verifiable.And("data")
                      .IsEqualTo("bad"));
            right.Now();
              }
              catch (Exception ex)
              {
            x = ex;
              }

              // Assert
              Assert.IsNotNull(x);
              Assert.IsTrue(verifiable.NowCalled, "Se mandó llamar Now()");
              Assert.IsTrue(actionCalled, "Se ejecutó la acción sobre el Target");
              Assert.IsTrue(right.NowCalled);
        }
        public void TestIfAnd_NowConnectsAnInvalidLeftPredicament()
        {
            // Arrange
              object target = new object();
              var left = new MockVerifiable<object>(
                          new Verifiable<object>(
                              new Assertion<object>(target),
                              p =>
                              {
                                throw new Exception();
                              }));
              StubVerifiable<string> right = null;
              bool rightPredicamentCalled = false;
              // Act
              Exception ex = null;

              try
              {
            right = new StubVerifiable<string>(
                   left.And("data")
                       .ItsTrueThat(_ => rightPredicamentCalled = true));
            right.Now();
              }
              catch (Exception e)
              {
            ex = e;
              }

              // Assert
              Assert.IsTrue(left.NowCalled, "No se mandó llamar Now()");
              Assert.IsFalse(rightPredicamentCalled, "No se debió mandar llamar el segundo Target_get(), pues ya debió fallar el primero");
              Assert.IsNotNull(ex);
        }