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); }
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(); }
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()); }
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()); }
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); }