Skip to content

Commit

Permalink
updated xuint to version 1.9.2
Browse files Browse the repository at this point in the history
clearly there have been some changes from the previous version to the
latest stable version
assert.throws now no longer takes a string as a parameter which was being
used heavily to validate the exception message
odd thing was that even in the previous version of xunit, this feature
was not doing what was expected
  • Loading branch information
meisinger committed Mar 26, 2014
1 parent 65c9e14 commit 496ee01
Show file tree
Hide file tree
Showing 48 changed files with 1,527 additions and 350 deletions.
11 changes: 0 additions & 11 deletions Rhino.Mocks.Tests/ArgConstraintTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,6 @@ public void ConstraintsThatWerentCallCauseVerifyFailure()
demoMock.Expect(x => x.VoidStringArg(Arg.Text.Contains("World")));

Assert.Throws<ExpectationViolationException>(
"IDemo.VoidStringArg(contains \"World\"); Expected #1, Actual #0.",
() => demoMock.VerifyExpectations());
}

Expand Down Expand Up @@ -147,15 +146,13 @@ public void ListTest()
testMock.VoidList(new List<string>(new string[] { "1", "3" }));

Assert.Throws<ExpectationViolationException>(
"ITestInterface.VoidList(System.Collections.Generic.List`1[System.String]); Expected #0, Actual #1.",
() => testMock.VerifyExpectations());
}

[Fact]
public void ConstraintWithTooFewArguments_ThrowsException()
{
Assert.Throws<InvalidOperationException>(
"When using Arg<T>, all arguments must be defined using Arg<T>.Is, Arg<T>.Text, Arg<T>.List, Arg<T>.Ref or Arg<T>.Out. 3 arguments expected, 2 have been defined.",
() => demoMock.Expect(x => x.VoidThreeArgs(
Arg<int>.Is.Equal(4), Arg.Text.Contains("World"), 3.14f)));
}
Expand All @@ -165,7 +162,6 @@ public void ConstraintToManyArgs_ThrowsException()
{
Arg<int>.Is.Equal(4);
Assert.Throws<InvalidOperationException>(
"Use Arg<T> ONLY within a mock method call while recording. 3 arguments expected, 4 have been defined.",
() => demoMock.Expect(x =>
x.VoidThreeArgs(Arg<int>.Is.Equal(4), Arg.Text.Contains("World"), Arg<float>.Is.Equal(3.14f))));
}
Expand All @@ -188,7 +184,6 @@ public void TooFewOutArgs()
int iout = 2;

Assert.Throws<InvalidOperationException>(
"When using Arg<T>, all arguments must be defined using Arg<T>.Is, Arg<T>.Text, Arg<T>.List, Arg<T>.Ref or Arg<T>.Out. 5 arguments expected, 4 have been defined.",
() => testMock.Expect(x => x.RefOut(
Arg<string>.Is.Anything, out iout,
Arg.Text.Contains("Steinegger"), ref Arg<int>.Ref(Is.Equal(2), 7).Dummy,
Expand All @@ -199,7 +194,6 @@ public void TooFewOutArgs()
public void RefInsteadOfOutArg()
{
Assert.Throws<InvalidOperationException>(
"Argument 1 must be defined as: out Arg<T>.Out(returnvalue).Dummy",
() => testMock.Expect(x => x.RefOut(
Arg<string>.Is.Anything, out Arg<int>.Ref(Is.Equal(2), 7).Dummy,
Arg.Text.Contains("Steinegger"), ref Arg<int>.Ref(Is.Equal(2), 7).Dummy,
Expand All @@ -210,7 +204,6 @@ public void RefInsteadOfOutArg()
public void OutInsteadOfRefArg()
{
Assert.Throws<InvalidOperationException>(
"Argument 3 must be defined as: ref Arg<T>.Ref(constraint, returnvalue).Dummy",
() => testMock.Expect(x => x.RefOut(
Arg<string>.Is.Anything, out Arg<int>.Out(7).Dummy,
Arg.Text.Contains("Steinegger"), ref Arg<int>.Out(7).Dummy,
Expand All @@ -221,31 +214,27 @@ public void OutInsteadOfRefArg()
public void OutInsteadOfInArg()
{
Assert.Throws<InvalidOperationException>(
"Argument 0 must be defined using: Arg<T>.Is, Arg<T>.Text or Arg<T>.List",
() => testMock.Expect(x => x.VoidObject(Arg<object>.Out(null))));
}

[Fact]
public void Is_EqualsThrowsException()
{
Assert.Throws<InvalidOperationException>(
"Don't use Equals() to define constraints, use Equal() instead",
() => Arg<object>.Is.Equals(null));
}

[Fact]
public void List_EqualsThrowsException()
{
Assert.Throws<InvalidOperationException>(
"Don't use Equals() to define constraints, use Equal() instead",
() => Arg<object>.List.Equals(null));
}

[Fact]
public void Text_EqualsThrowsException()
{
Assert.Throws<InvalidOperationException>(
"Don't use Equals() to define constraints, use Equal() instead",
() => Arg.Text.Equals(null));
}

Expand Down
2 changes: 0 additions & 2 deletions Rhino.Mocks.Tests/CallOriginalMethodTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,6 @@ public void CantCallOriginalMethodOnInterface()
IDemo demo = Repository.Mock<IDemo>();

Assert.Throws<InvalidOperationException>(
"Can't use CallOriginalMethod on method ReturnIntNoArgs because the method is abstract.",
() => demo.Expect(x => x.ReturnIntNoArgs())
.CallOriginalMethod());
}
Expand All @@ -73,7 +72,6 @@ public void CantCallOriginalMethodOnAbstractMethod()
MockingClassesTests.AbstractDemo demo = Repository.Partial<MockingClassesTests.AbstractDemo>();

Assert.Throws<InvalidOperationException>(
"Can't use CallOriginalMethod on method Six because the method is abstract.",
() => demo.Expect(x => x.Six())
.CallOriginalMethod());
}
Expand Down
8 changes: 0 additions & 8 deletions Rhino.Mocks.Tests/Callbacks/CallbackTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,6 @@ public void GetSameArgumentsAsMethod()
public void DifferentArgumentsFromMethodThrows()
{
Assert.Throws<InvalidOperationException>(
"Callback arguments didn't match the method arguments",
() => demo.Expect(x => x.VoidThreeArgs(0, "", 0f))
.WhenCalled<int, string, string>((x, y, z) => OtherThreeArgs(x, y, z)));
}
Expand Down Expand Up @@ -107,7 +106,6 @@ public void SetReturnValueOnMethodWithCallback()
public void CallbackWithDifferentSignatureFails()
{
Assert.Throws<InvalidOperationException>(
"Callback arguments didn't match the method arguments",
() => demo.Expect(x => x.VoidThreeArgs(0, "", 0f))
.WhenCalled<string>(x => StringMethod(x)));
}
Expand All @@ -119,7 +117,6 @@ public void GetMessageFromCallbackWhenNotReplaying()
.WhenCalled<int, string, float>((x, y, z) => ThreeArgsAreSame(x, y, z));

Assert.Throws<ExpectationViolationException>(
"IDemo.VoidThreeArgs(callback method: CallbackTests.ThreeArgsAreSame); Expected #1, Actual #0.",
() => demo.VerifyExpectations(true));
}

Expand All @@ -134,7 +131,6 @@ public void GetMessageFromCallbackWhenCalledTooMuch()
demo.VoidThreeArgs(1, "Ayende", 3.14f);

Assert.Throws<ExpectationViolationException>(
"IDemo.VoidThreeArgs(1, \"Ayende\", 3.14); Expected #1, Actual #2.",
() => demo.VerifyExpectations(true));
}

Expand All @@ -145,15 +141,13 @@ public void CallbackWhenMethodHasReturnValue()
.WhenCalled(() => NoArgsMethod());

Assert.Throws<InvalidOperationException>(
"Previous method 'IDemo.ReturnIntNoArgs(callback method: CallbackTests.NoArgsMethod);' requires a return value or an exception to throw.",
() => demo.ReturnIntNoArgs());
}

[Fact(Skip = "Test No Longer Valid (Constraint Removed)")]
public void CallbackAndConstraintsOnSameMethod()
{
Assert.Throws<InvalidOperationException>(
"This method has already been set to CallbackExpectation.",
() => demo.Expect(x => x.StringArgString(Arg<string>.Is.Anything))
.WhenCalled<string>(x => StringMethod(x)));
}
Expand All @@ -166,7 +160,6 @@ public void ExceptionInCallback()
.Return(5);

Assert.Throws<ExternalException>(
"I'm not guilty, is was /him/",
() => Assert.Equal(5, demo.ReturnIntNoArgs()));
}

Expand All @@ -179,7 +172,6 @@ public void CallbackCanFailExpectationByReturningFalse()
demo.VoidThreeArgs(1, "Ayende", 3.14f);

Assert.Throws<ExpectationViolationException>(
"IDemo.VoidThreeArgs(1, \"Ayende\", 3.14); Expected #0, Actual #1.",
() => demo.VerifyExpectations(true));
}

Expand Down
32 changes: 1 addition & 31 deletions Rhino.Mocks.Tests/Constraints/ConstraintTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,6 @@ public void UsingPredicateWhenExpectationViolated()
demo.VoidStringArg("cc");

Assert.Throws<ExpectationViolationException>(
"IDemo.VoidStringArg(\"cc\"); Expected #0, Actual #1.\r\nIDemo.VoidStringArg(Predicate (ConstraintTests.JustPredicate(obj);)); Expected #1, Actual #0.",
() => demo.VerifyExpectations(true));
}

Expand Down Expand Up @@ -150,45 +149,16 @@ public void ConstraintFailingThrows()
demo.VoidStringArg("Hello, world");

Assert.Throws<ExpectationViolationException>(
"IDemo.VoidStringArg(\"Hello, world\"); Expected #0, Actual #1.\r\nIDemo.VoidStringArg(contains \"World\"); Expected #1, Actual #0.",
() => demo.VerifyExpectations(true));
}

//[Fact]
//public void ConstraintWithTooMuchForArguments()
//{
// Assert.Throws<InvalidOperationException>(
// "The number of constraints is not the same as the number of the method's parameters!",
// () => demo.Expect(x => x.VoidStringArg("Ayende"))
// .Constraints(Text.Contains("World"), Is.Equal("Rahien")));
//}

//[Fact]
//public void ConstraintWithTooFewForArguments()
//{
// Assert.Throws<InvalidOperationException>(
// "The number of constraints is not the same as the number of the method's parameters!",
// () => demo.Expect(x => x.VoidThreeArgs(1, "Ayende", 3.14f))
// .Constraints(Text.Contains("World"), Is.Equal("Rahien")));
//}

[Fact]
[Fact]
public void ConstraintsThatWerentCallCauseVerifyFailure()
{
demo.Expect(x => x.VoidStringArg(Arg.Text.Contains("World")));

Assert.Throws<ExpectationViolationException>(
"IDemo.VoidStringArg(contains \"World\"); Expected #1, Actual #0.",
() => demo.VerifyExpectations());
}

//[Fact]
//public void AddConstraintAndThenTryToIgnoreArgs()
//{
// Assert.Throws<InvalidOperationException>(
// "This method has already been set to ConstraintsExpectation.",
// () => demo.Expect(x => x.VoidStringArg("Ayende"))
// .Constraints(Text.Contains("World")).Callback<string>("".StartsWith));
//}
}
}
24 changes: 23 additions & 1 deletion Rhino.Mocks.Tests/Core/RepositoryScenarios.cs
Original file line number Diff line number Diff line change
Expand Up @@ -401,7 +401,6 @@ public void Verification_Throws_Exception_When_Expectations_Set_Against_Mock_Cla
Assert.Equal("one", second);

Assert.Throws<ExpectationViolationException>(
"ScenarioObject.StringMethodEcho(starts with m); Expected # 3, Actual # 2.",
() => mock.VerifyExpectations());
}

Expand Down Expand Up @@ -596,5 +595,28 @@ public void Can_Create_Expectation_For_Event()
Assert.Equal(2, eventValue);
mock.VerifyExpectations();
}

[Fact]
public void Can_Get_Arguments_For_Call_Made_On_Method()
{
var mock = Repository.Mock<IScenarioObject>();
mock.StringMethodEcho("mike");
mock.StringMethodEcho("meisinger");

var actuals = mock.GetArgumentsForCallsMadeOn(x =>
x.StringMethodEcho(Arg<string>.Is.Anything));

Assert.Equal(2, actuals.Length);

var first = actuals[0];
var firstArguments = first.Arguments;
Assert.Equal(1, firstArguments.Length);
Assert.Equal("mike", firstArguments[0]);

var second = actuals[1];
var secondArguments = second.Arguments;
Assert.Equal(1, secondArguments.Length);
Assert.Equal("meisinger", secondArguments[0]);
}
}
}
3 changes: 0 additions & 3 deletions Rhino.Mocks.Tests/DoHanlderTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,6 @@ public void CanThrow()
public void InvalidReturnValueThrows()
{
Assert.Throws<InvalidOperationException>(
"The delegate return value should be assignable from System.Int32",
() => demo.Expect(x => x.ReturnIntNoArgs())
.DoInstead(new GetDay(GetSunday)));
}
Expand All @@ -105,7 +104,6 @@ public void InvalidReturnValueThrows()
public void InvalidDelegateThrows()
{
Assert.Throws<InvalidOperationException>(
"Callback arguments didn't match the method arguments",
() => demo.Expect(x => x.ReturnIntNoArgs())
.DoInstead(new IntDelegate(IntMethod)));
}
Expand All @@ -114,7 +112,6 @@ public void InvalidDelegateThrows()
public void CanOnlySpecifyOnce()
{
Assert.Throws<InvalidOperationException>(
"Can set only a single return value or exception to throw or delegate to execute on the same method call.",
() => demo.Expect(x => x.EnumNoArgs())
.Return(DayOfWeek.Saturday)
.DoInstead(new GetDay(ThrowDay)));
Expand Down
8 changes: 0 additions & 8 deletions Rhino.Mocks.Tests/DoNotExpectTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,6 @@ public void ShouldNotExpect()
demo.StringArgString("Ayende");

Assert.Throws<ExpectationViolationException>(
"IDemo.StringArgString(\"Ayende\"); Expected #0, Actual #1.",
() => demo.VerifyExpectations());
}

Expand All @@ -64,7 +63,6 @@ public void CanUseAnonymousDelegatesToCallVoidMethods()
demo.VoidNoArgs();

Assert.Throws<ExpectationViolationException>(
"IDemo.VoidNoArgs(); Expected #0, Actual #1.",
() => demo.VerifyExpectations());
}

Expand All @@ -77,7 +75,6 @@ public void CanUseAnonymousDelegatesToCallVoidMethods_WithStringArg()
demo.VoidStringArg("Ayende");

Assert.Throws<ExpectationViolationException>(
"IDemo.VoidStringArg(\"Ayende\"); Expected #0, Actual #1.",
() => demo.VerifyExpectations());
}

Expand All @@ -90,7 +87,6 @@ public void CanUseAnonymousDelegatesToCallVoidMethods_WithoutAnonymousDelegate()
demo.VoidNoArgs();

Assert.Throws<ExpectationViolationException>(
"IDemo.VoidNoArgs(); Expected #0, Actual #1.",
() => demo.VerifyExpectations());
}

Expand All @@ -103,7 +99,6 @@ public void CanUseAnonymousDelegatesToCallStringMethods_WithoutAnonymousDelegate
demo.StringArgString("Ayende");

Assert.Throws<ExpectationViolationException>(
"IDemo.StringArgString(\"Ayende\"); Expected #0, Actual #1.",
() => demo.VerifyExpectations());
}

Expand All @@ -117,7 +112,6 @@ public void DoNotExpectCallRespectsArguments()
demo.StringArgString("Sneal");

Assert.Throws<ExpectationViolationException>(
"IDemo.StringArgString(\"Ayende\"); Expected #0, Actual #1.",
() => demo.VerifyExpectations());
}

Expand All @@ -130,7 +124,6 @@ public void CanUseDoNotCallOnPropertySet()
demo.Prop = "Ayende";

Assert.Throws<ExpectationViolationException>(
"IDemo.set_Prop(\"Ayende\"); Expected #0, Actual #1.",
() => demo.VerifyExpectations());
}

Expand All @@ -143,7 +136,6 @@ public void CanUseDoNotCallOnPropertyGet()
var soItCompiles = demo.Prop;

Assert.Throws<ExpectationViolationException>(
"IDemo.get_Prop(); Expected #0, Actual #1.",
() => demo.VerifyExpectations());
}
}
Expand Down
3 changes: 0 additions & 3 deletions Rhino.Mocks.Tests/DotNet35Tests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,6 @@ public void NaturalSyntaxForCallingMethods_WithArguments_WhenNotCalled_WouldFail
demo.Expect(x => x.VoidStringArg("blah"));

Assert.Throws<ExpectationViolationException>(
"IDemo.VoidStringArg(\"blah\"); Expected #1, Actual #0.",
() => demo.VerifyExpectations());
}

Expand All @@ -49,8 +48,6 @@ public void NaturalSyntaxForCallingMethods_WithArguments_WhenCalledWithDifferent
demo.VoidStringArg("arg");

Assert.Throws<ExpectationViolationException>(
@"IDemo.VoidStringArg(""arg""); Expected #0, Actual #1.
IDemo.VoidStringArg(""blah""); Expected #1, Actual #0.",
() => demo.VerifyExpectations(true));
}

Expand Down
2 changes: 0 additions & 2 deletions Rhino.Mocks.Tests/DynamicMockTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,6 @@ public void ExpectationExceptionWithDynamicMock()
Assert.Null(demo.ReturnStringNoArgs());

Assert.Throws<ExpectationViolationException>(
"IDemo.ReturnIntNoArgs(); Expected #1, Actual #0.",
() => demo.VerifyAllExpectations());
}

Expand Down Expand Up @@ -105,7 +104,6 @@ public void ExpectNeverForDyanmicMockThrowsIfOccurs()
demo.ReturnIntNoArgs();

Assert.Throws<ExpectationViolationException>(
"IDemo.ReturnIntNoArgs(); Expected #0, Actual #1.",
() => demo.VerifyExpectations());
}
}
Expand Down
4 changes: 2 additions & 2 deletions Rhino.Mocks.Tests/ExpectTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ public void CanUseAnonymousDelegatesToCallVoidMethods()
demo.Expect(x => x.VoidNoArgs())
.Throws<ArgumentNullException>();

Assert.Throws<ArgumentNullException>(demo.VoidNoArgs);
Assert.Throws<ArgumentNullException>(() => demo.VoidNoArgs());
}

[Fact]
Expand All @@ -77,7 +77,7 @@ public void CanUseAnonymousDelegatesToCallVoidMethods_WithoutAnonymousDelegate()
demo.Expect(x => x.VoidNoArgs())
.Throws<ArgumentNullException>();

Assert.Throws<ArgumentNullException>(demo.VoidNoArgs);
Assert.Throws<ArgumentNullException>(() => demo.VoidNoArgs());
}

[Fact(Skip = "Test No Longer Valid (Expect removed)")]
Expand Down
Loading

0 comments on commit 496ee01

Please sign in to comment.