Skip to content

Commit d91431c

Browse files
committed
Added route data assertion failure messages to resource file, and fixed broken route data tests.
1 parent f25fc82 commit d91431c

File tree

4 files changed

+105
-19
lines changed

4 files changed

+105
-19
lines changed

src/FluentAssertions.Mvc3/FailureMessages.Designer.cs

Lines changed: 37 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/FluentAssertions.Mvc3/FailureMessages.resx

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,18 @@
117117
<resheader name="writer">
118118
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
119119
</resheader>
120+
<data name="RouteData_DataTokens_ContainsKey" xml:space="preserve">
121+
<value>RouteData.DataTokens does not contain key {0}.</value>
122+
</data>
123+
<data name="RouteData_DataTokens_HaveValue" xml:space="preserve">
124+
<value>Expected RouteData.DataTokens[{0}] to have value {1}, but found {2}.</value>
125+
</data>
126+
<data name="RouteData_Values_ContainsKey" xml:space="preserve">
127+
<value>RouteData.Values does not contain key {0}.</value>
128+
</data>
129+
<data name="RouteData_Values_HaveValue" xml:space="preserve">
130+
<value>Expected RouteData.Values[{0}] to have value {1}, but found {2}.</value>
131+
</data>
120132
<data name="ViewResultBase_NullModel" xml:space="preserve">
121133
<value>Expected Model to be of type {0}, but no Model was supplied.</value>
122134
</data>

src/FluentAssertions.Mvc3/RouteDataAssertions.cs

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -56,10 +56,14 @@ public RouteDataAssertions HaveDataToken(string key, object expectedValue, strin
5656
Execute.Verification
5757
.ForCondition(subjectTyped.DataTokens.ContainsKey(key))
5858
.BecauseOf(reason, reasonArgs)
59-
.FailWith("RouteData.DataTokens does not contain key '{0}'", key);
59+
.FailWith(FailureMessages.RouteData_DataTokens_ContainsKey, key);
6060

6161
var actualValue = subjectTyped.DataTokens[key];
62-
actualValue.Should().Be(expectedValue);
62+
63+
Execute.Verification
64+
.ForCondition(expectedValue.Equals(actualValue))
65+
.BecauseOf(reason, reasonArgs)
66+
.FailWith(FailureMessages.RouteData_DataTokens_HaveValue, key, expectedValue, actualValue);
6367

6468
return this;
6569
}
@@ -77,10 +81,14 @@ public RouteDataAssertions HaveValue(string key, object expectedValue, string re
7781
Execute.Verification
7882
.ForCondition(subjectTyped.Values.ContainsKey(key))
7983
.BecauseOf(reason, reasonArgs)
80-
.FailWith("RouteData.Values does not contain key '{0}'", key);
84+
.FailWith(FailureMessages.RouteData_Values_ContainsKey, key);
8185

8286
var actualValue = subjectTyped.Values[key];
83-
actualValue.Should().Be(expectedValue);
87+
88+
Execute.Verification
89+
.ForCondition(expectedValue.Equals(actualValue))
90+
.BecauseOf(reason, reasonArgs)
91+
.FailWith(FailureMessages.RouteData_Values_HaveValue, key, expectedValue, actualValue);
8492

8593
return this;
8694
}

tests/FluentAssertions.Mvc3.Tests/RouteDataAssertions_Tests.cs

Lines changed: 44 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
using System.Web.Routing;
44
using NUnit.Framework;
55

6+
using FluentAssertions.Mvc3.Tests.Helpers;
7+
68
namespace FluentAssertions.Mvc3.Tests
79
{
810
[TestFixture]
@@ -39,9 +41,13 @@ public void GetRouteDataForUrl_GivenRouteDoesntMap_ShouldReturnNull()
3941
public void HaveValue_GivenKeyDoesExist_ShouldFail()
4042
{
4143
var routeData = _routes.GetRouteDataForUrl("/accounts/check");
42-
Action a = () => routeData.Should().HaveValue("xyz", "");
44+
var expectedKey = "xyz";
45+
var failureMessage = FailureMessageHelper.Format(FailureMessages.RouteData_Values_ContainsKey, expectedKey);
46+
47+
Action a = () => routeData.Should().HaveValue(expectedKey, "");
48+
4349
a.ShouldThrow<Exception>()
44-
.WithMessage("");
50+
.WithMessage(failureMessage);
4551
}
4652

4753
[Test]
@@ -55,9 +61,13 @@ public void HaveValue_GivenExpectedController_ShouldPass()
5561
public void HaveValue_GivenUnexpectedController_ShouldFail()
5662
{
5763
var routeData = _routes.GetRouteDataForUrl("/accounts/check");
58-
Action a = () => routeData.Should().HaveValue("controller", "xyz");
64+
var controllerName = "xyz";
65+
var failureMessage = FailureMessageHelper.Format(FailureMessages.RouteData_Values_HaveValue, "controller", controllerName, "accounts");
66+
67+
Action a = () => routeData.Should().HaveValue("controller", controllerName);
68+
5969
a.ShouldThrow<Exception>()
60-
.WithMessage("");
70+
.WithMessage(failureMessage);
6171
}
6272

6373
[Test]
@@ -78,9 +88,12 @@ public void HaveValue_GivenExpectedId_ShouldPass()
7888
public void HaveValue_GivenUnexpectedId_ShouldFail()
7989
{
8090
var routeData = _routes.GetRouteDataForUrl("/accounts/check/44");
81-
Action a = () => routeData.Should().HaveValue("id", "999");
91+
var id = "999";
92+
var failureMessage = FailureMessageHelper.Format(FailureMessages.RouteData_Values_HaveValue, "id", id, "44");
93+
94+
Action a = () => routeData.Should().HaveValue("id", id);
8295
a.ShouldThrow<Exception>()
83-
.WithMessage("");
96+
.WithMessage(failureMessage);
8497
}
8598

8699
[Test]
@@ -94,9 +107,13 @@ public void HaveController_GivenExpectedValue_ShouldPass()
94107
public void HaveController_GivenUnexpectedValue_ShouldFail()
95108
{
96109
var routeData = _routes.GetRouteDataForUrl("/accounts/check/44");
97-
Action a = () => routeData.Should().HaveController("xyz");
110+
var controllerName = "xyz";
111+
var failureMessage = FailureMessageHelper.Format(FailureMessages.RouteData_Values_HaveValue, "controller", controllerName, "accounts");
112+
113+
Action a = () => routeData.Should().HaveController(controllerName);
114+
98115
a.ShouldThrow<Exception>()
99-
.WithMessage("");
116+
.WithMessage(failureMessage);
100117
}
101118

102119
[Test]
@@ -110,18 +127,26 @@ public void HaveAction_GivenExpectedValue_ShouldPass()
110127
public void HaveAction_GivenUnexpectedValue_ShouldFail()
111128
{
112129
var routeData = _routes.GetRouteDataForUrl("/accounts/check/44");
113-
Action a = () => routeData.Should().HaveAction("xyz");
130+
var actionName = "xyz";
131+
var failureMessage = FailureMessageHelper.Format(FailureMessages.RouteData_Values_HaveValue, "action", actionName, "check");
132+
133+
Action a = () => routeData.Should().HaveAction(actionName);
134+
114135
a.ShouldThrow<Exception>()
115-
.WithMessage("");
136+
.WithMessage(failureMessage);
116137
}
117138

118139
[Test]
119140
public void HaveDataToken_GivenKeyDoesExist_ShouldFail()
120141
{
121142
var routeData = _routes.GetRouteDataForUrl("/accounts/check");
122-
Action a = () => routeData.Should().HaveDataToken("xyz", "");
143+
var expectedKey = "xyz";
144+
var failureMessage = FailureMessageHelper.Format(FailureMessages.RouteData_DataTokens_ContainsKey, expectedKey);
145+
146+
Action a = () => routeData.Should().HaveDataToken(expectedKey, "");
147+
123148
a.ShouldThrow<Exception>()
124-
.WithMessage("");
149+
.WithMessage(failureMessage);
125150
}
126151

127152
[Test]
@@ -135,9 +160,14 @@ public void HaveDataToken_GivenExpectedArea_ShouldPass()
135160
public void HaveDataToken_GivenUnexpectedArea_ShouldFail()
136161
{
137162
var routeData = _routes.GetRouteDataForUrl("/accounts/check");
138-
Action a = () => routeData.Should().HaveDataToken("area", "xyz");
163+
var area = "xyz";
164+
var failureMessage = FailureMessageHelper.Format(FailureMessages.RouteData_DataTokens_HaveValue, "area", area, "area51");
165+
166+
Action a = () => routeData.Should().HaveDataToken("area", area);
167+
168+
139169
a.ShouldThrow<Exception>()
140-
.WithMessage("");
170+
.WithMessage(failureMessage);
141171
}
142172
}
143173
}

0 commit comments

Comments
 (0)