Skip to content

Commit d503863

Browse files
committed
Fix CreatedResultAssertions tests.
1 parent 15a18e8 commit d503863

File tree

3 files changed

+45
-24
lines changed

3 files changed

+45
-24
lines changed

src/FluentAssertions.AspNetCore.Mvc/CreatedResultAssertions.cs

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -50,11 +50,14 @@ public TValue ValueAs<TValue>()
5050
var value = CreatedResultSubject.Value;
5151

5252
if (value == null)
53-
Execute.Assertion.FailWith(FailureMessages.CommonNullWasSuppliedFailMessage, "CreatedResult.Value", typeof(TValue).Name);
53+
Execute.Assertion
54+
.WithDefaultIdentifier("CreatedResult.Value")
55+
.FailWith(FailureMessages.CommonNullWasSuppliedFailMessage, typeof(TValue));
5456

5557
Execute.Assertion
5658
.ForCondition(value is TValue)
57-
.FailWith(FailureMessages.CommonTypeFailMessage, "CreatedResult.Value", typeof(TValue).Name, value.GetType().Name);
59+
.WithDefaultIdentifier("CreatedResult.Value")
60+
.FailWith(FailureMessages.CommonTypeFailMessage, typeof(TValue), value.GetType());
5861

5962
return (TValue)value;
6063
}
@@ -66,15 +69,17 @@ public TValue ValueAs<TValue>()
6669
/// The Uri.
6770
/// </param>
6871
/// <returns>The typed value.</returns>
69-
public CreatedResultAssertions WithUri(Uri uri)
72+
public CreatedResultAssertions WithUri(Uri uri, string reason = "", params object[] reasonArgs)
7073
{
7174
var expectedUri = !uri.IsAbsoluteUri
7275
? uri.GetComponents(UriComponents.SerializationInfoString, UriFormat.UriEscaped)
7376
: uri.AbsoluteUri;
7477

7578
Execute.Assertion
79+
.BecauseOf(reason, reasonArgs)
7680
.ForCondition(expectedUri == Location)
77-
.FailWith(FailureMessages.CommonFailMessage, "CreatedResult.Uri", expectedUri, Location);
81+
.WithDefaultIdentifier("CreatedResult.Uri")
82+
.FailWith(FailureMessages.CommonFailMessage, expectedUri, Location);
7883

7984
return this;
8085
}
@@ -86,11 +91,13 @@ public CreatedResultAssertions WithUri(Uri uri)
8691
/// The Uri as string.
8792
/// </param>
8893
/// <returns>The typed value.</returns>
89-
public CreatedResultAssertions WithUri(string uri)
94+
public CreatedResultAssertions WithUri(string uri, string reason = "", params object[] reasonArgs)
9095
{
9196
Execute.Assertion
97+
.BecauseOf(reason, reasonArgs)
9298
.ForCondition(uri == Location)
93-
.FailWith(FailureMessages.CommonFailMessage, "CreatedResult.Uri", uri, Location);
99+
.WithDefaultIdentifier("CreatedResult.Uri")
100+
.FailWith(FailureMessages.CommonFailMessage, uri, Location);
94101

95102
return this;
96103
}

tests/FluentAssertions.AspNetCore.Mvc.Tests/CreatedResultAssertions_Tests.cs

Lines changed: 27 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ namespace FluentAssertions.AspNetCore.Mvc.Tests
77
{
88
public class CreatedResultAssertions_Tests
99
{
10+
public const string Reason = FailureMessageHelper.Reason;
11+
public readonly static object[] ReasonArgs = FailureMessageHelper.ReasonArgs;
1012
private const string TestValue = "testValue";
1113

1214
private const string TestUriAsString = "http://localhost:5000";
@@ -19,78 +21,85 @@ public class CreatedResultAssertions_Tests
1921
public void Value_GivenExpectedValue_ShouldPass()
2022
{
2123
var result = new TestController().Created(TestUri, TestValue);
22-
result.Should().BeCreatedResult().Value.Should().Be(TestValue);
23-
}
2424

25-
[Fact]
26-
public void Value_GivenUnexpectedValue_ShouldFail()
27-
{
28-
var result = new TestController().Created(TestUri, TestValue);
29-
Action a = () => result.Should().BeCreatedResult().Value.Should().Be("xyx");
30-
a.Should().Throw<Exception>();
25+
result.Should().BeCreatedResult().Value.Should().BeSameAs(TestValue);
3126
}
3227

3328
[Fact]
3429
public void ValueAs_GivenExpectedValue_ShouldPass()
3530
{
3631
var result = new TestController().Created(TestUri, TestValue);
32+
3733
result.Should().BeCreatedResult().ValueAs<string>().Should().Be(TestValue);
3834
}
3935

4036
[Fact]
4137
public void ValueAs_GivenUnexpectedValue_ShouldFail()
4238
{
4339
var result = new TestController().Created(TestUri, TestValue);
44-
Action a = () => result.Should().BeCreatedResult().ValueAs<string>().Should().Be("xyx");
40+
41+
Action a = () => result.Should().BeCreatedResult().ValueAs<string>().Should().Be("xyx", Reason, ReasonArgs);
42+
4543
a.Should().Throw<Exception>();
4644
}
4745

4846
[Fact]
4947
public void ValueAs_GivenWrongType_ShouldFail()
5048
{
5149
var result = new TestController().Created(TestUri, TestValue);
52-
Action a = () => result.Should().BeCreatedResult().ValueAs<int>().Should().Be(2);
53-
a.Should().Throw<Exception>();
50+
var failureMessage = FailureMessageHelper.ExpectedContextTypeXButFoundY("CreatedResult.Value", typeof(int).FullName, typeof(string).FullName);
51+
52+
Action a = () => result.Should().BeCreatedResult().ValueAs<int>().Should().Be(2, Reason, ReasonArgs);
53+
54+
a.Should().Throw<Exception>().WithMessage(failureMessage);
5455
}
5556

5657
[Fact]
5758
public void ValueAs_Null_ShouldFail()
5859
{
5960
ActionResult result = new CreatedResult(TestUri, null);
60-
var failureMessage = FailureMessageHelper.Format(FailureMessages.CommonNullWasSuppliedFailMessage, "CreatedResult.Value", typeof(object).Name);
61+
var failureMessage = FailureMessageHelper.ExpectedContextTypeXButFoundNull("CreatedResult.Value", typeof(object).FullName);
62+
6163
Action a = () => result.Should().BeCreatedResult().ValueAs<object>();
64+
6265
a.Should().Throw<Exception>().WithMessage(failureMessage);
6366
}
6467

6568
[Fact]
6669
public void WithUri_GivenExpectedUri_ShouldPass()
6770
{
6871
var result = new TestController().Created(TestUri, TestValue);
69-
Action a = () => result.Should().BeCreatedResult().WithUri(TestUri);
72+
73+
result.Should().BeCreatedResult().WithUri(TestUri);
7074
}
7175

7276
[Fact]
7377
public void WithUri_GivenWrongUri_ShouldFail()
7478
{
7579
var result = new TestController().Created(TestWrongUri, TestValue);
76-
Action a = () => result.Should().BeCreatedResult().WithUri(TestUri);
77-
var failureMessage = FailureMessageHelper.Format(FailureMessages.CommonFailMessage, "CreatedResult.Uri", TestUri.ToString(), TestWrongUri.ToString());
80+
var failureMessage = FailureMessageHelper.ExpectedContextToBeXButY("CreatedResult.Uri", TestUri, TestWrongUri);
81+
82+
Action a = () => result.Should().BeCreatedResult().WithUri(TestUri, Reason, ReasonArgs);
83+
7884
a.Should().Throw<Exception>().WithMessage(failureMessage);
7985
}
8086

8187
[Fact]
8288
public void WithUri_GivenExpectedUriAsString_ShouldPass()
8389
{
8490
var result = new TestController().Created(TestUriAsString, TestValue);
85-
Action a = () => result.Should().BeCreatedResult().WithUri(TestUriAsString);
91+
92+
result.Should().BeCreatedResult().WithUri(TestUriAsString);
8693
}
8794

8895
[Fact]
8996
public void WithUri_GivenWrongUriAsString_ShouldFail()
9097
{
9198
var result = new TestController().Created(TestWrongUriAsString, TestValue);
92-
Action a = () => result.Should().BeCreatedResult().WithUri(TestUriAsString);
93-
var failureMessage = FailureMessageHelper.Format(FailureMessages.CommonFailMessage, "CreatedResult.Uri", TestUriAsString, TestWrongUriAsString);
99+
var failureMessage = FailureMessageHelper.ExpectedContextToBeXButY("CreatedResult.Uri", TestUriAsString, TestWrongUriAsString);
100+
101+
Action a = () => result.Should().BeCreatedResult().WithUri(TestUriAsString, Reason, ReasonArgs);
102+
94103
a.Should().Throw<Exception>().WithMessage(failureMessage);
95104
}
96105
}

tests/FluentAssertions.AspNetCore.Mvc.Tests/Helpers/FailureMessageHelper.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,11 @@ public static string Format(string message, params string[] args)
1616
return String.Format(message, formattedArg);
1717
}
1818

19+
public static string ExpectedContextToBeXButY(string context, Uri expected, Uri actual)
20+
{
21+
return ExpectedContextToBeXButY(context, expected?.ToString(), actual?.ToString());
22+
}
23+
1924
public static string ExpectedContextToBeXButY(string context, string expected, string actual)
2025
{
2126
return ExpectedContextToBeXButY(context, (object)$"\"{expected}\"", (object)$"\"{actual}\"");

0 commit comments

Comments
 (0)