Skip to content

Commit 16133ac

Browse files
committed
View result assertion failure messages moved to resource file, and fixed broken view result tests.
1 parent 915b7c5 commit 16133ac

File tree

5 files changed

+86
-16
lines changed

5 files changed

+86
-16
lines changed

src/FluentAssertions.Mvc3/FailureMessages.Designer.cs

Lines changed: 36 additions & 0 deletions
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
@@ -135,7 +135,19 @@
135135
<data name="ViewResultBase_NullModel" xml:space="preserve">
136136
<value>Expected Model to be of type {0}, but no Model was supplied.</value>
137137
</data>
138+
<data name="ViewResultBase_ViewData_ContainsKey" xml:space="preserve">
139+
<value>ViewData does not contain key of {0}.</value>
140+
</data>
141+
<data name="ViewResultBase_ViewData_HaveValue" xml:space="preserve">
142+
<value>Expected ViewData[{0}] to have value {1}, but found {2}.</value>
143+
</data>
144+
<data name="ViewResultBase_ViewName" xml:space="preserve">
145+
<value>Expected ViewName to be {0} but found {1}.</value>
146+
</data>
138147
<data name="ViewResultBase_WithDefaultViewName" xml:space="preserve">
139148
<value>Expected default view, but view {0} was rendered.</value>
140149
</data>
150+
<data name="ViewResult_MasterName" xml:space="preserve">
151+
<value>Expected MasterName to be {0} but found {1}.</value>
152+
</data>
141153
</root>

src/FluentAssertions.Mvc3/ViewResultAssertions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public ViewResultAssertions WithMasterName(string expectedMasterName, string rea
2323
Execute.Verification
2424
.ForCondition(string.Equals(expectedMasterName, actualMasterName, StringComparison.InvariantCultureIgnoreCase))
2525
.BecauseOf(reason, reasonArgs)
26-
.FailWith("Expected MasterName to be '{0}' but was '{1}'", expectedMasterName, actualMasterName);
26+
.FailWith(FailureMessages.ViewResult_MasterName, expectedMasterName, actualMasterName);
2727
return this;
2828
}
2929
}

src/FluentAssertions.Mvc3/ViewResultBaseAssertions.cs

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public ViewResultBaseAssertions<T> WithViewName(string expectedViewName, string
3131
Execute.Verification
3232
.ForCondition(string.Equals(expectedViewName, actualViewName, StringComparison.InvariantCultureIgnoreCase))
3333
.BecauseOf(reason, reasonArgs)
34-
.FailWith("Expected ViewName to be '{0}' but was '{1}'", expectedViewName, actualViewName);
34+
.FailWith(FailureMessages.ViewResultBase_ViewName, expectedViewName, actualViewName);
3535
return this;
3636
}
3737

@@ -48,9 +48,14 @@ public ViewResultBaseAssertions<T> WithViewData(string key, object expectedValue
4848
Execute.Verification
4949
.ForCondition(actualViewData.ContainsKey(key))
5050
.BecauseOf(reason, reasonArgs)
51-
.FailWith("ViewData does not contain key of '{0}'", key);
51+
.FailWith(FailureMessages.ViewResultBase_ViewData_ContainsKey, key);
5252

53-
actualViewData[key].Should().Be(expectedValue);
53+
var actualValue = actualViewData[key];
54+
55+
Execute.Verification
56+
.ForCondition(actualValue.Equals(expectedValue))
57+
.BecauseOf(reason, reasonArgs)
58+
.FailWith(FailureMessages.ViewResultBase_ViewData_HaveValue, key, expectedValue, actualValue);
5459

5560
return this;
5661
}

tests/FluentAssertions.Mvc3.Tests/ViewResultAssertions_Tests.cs

Lines changed: 29 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -29,14 +29,18 @@ public void WithMasterName_GivenExpectedValue_ShouldPass()
2929
[Test]
3030
public void WithMasterName_GivenUnexpectedValue_ShouldFail()
3131
{
32+
var actualMasterName = "master";
33+
var expectedMasterName = "xyz";
3234
ActionResult result = new ViewResult
3335
{
34-
MasterName = "master",
36+
MasterName = actualMasterName,
3537
};
38+
var failureMessage = FailureMessageHelper.Format(FailureMessages.ViewResult_MasterName, expectedMasterName, actualMasterName);
39+
40+
Action action = () => result.Should().BeView().WithMasterName(expectedMasterName);
3641

37-
Action action = () => result.Should().BeView().WithMasterName("xyz");
3842
action.ShouldThrow<Exception>()
39-
.WithMessage("");
43+
.WithMessage(failureMessage);
4044
}
4145

4246
[Test]
@@ -53,14 +57,18 @@ public void WithViewName_GivenExpectedValue_ShouldPass()
5357
[Test]
5458
public void WithViewName_GivenUnexpectedValue_ShouldFail()
5559
{
60+
var actualViewName = "index";
61+
var expectedViewName = "xyz";
62+
var failureMessage = FailureMessageHelper.Format(FailureMessages.ViewResultBase_ViewName, expectedViewName, actualViewName);
5663
ActionResult result = new ViewResult
5764
{
58-
ViewName = "index",
65+
ViewName = actualViewName,
5966
};
6067

61-
Action action = () => result.Should().BeView().WithViewName("xyz");
68+
Action action = () => result.Should().BeView().WithViewName(expectedViewName);
69+
6270
action.ShouldThrow<Exception>()
63-
.WithMessage("");
71+
.WithMessage(failureMessage);
6472
}
6573

6674
[Test]
@@ -146,27 +154,36 @@ public void WithViewData_GivenTwoExpectedValues_ShouldPass()
146154
[Test]
147155
public void WithViewData_GivenUnexpectedValue_ShouldFail()
148156
{
157+
var key = "key1";
158+
var actualValue = "value1";
159+
var expectedValue = "abc";
160+
var failureMessage = FailureMessageHelper.Format(FailureMessages.ViewResultBase_ViewData_HaveValue, key, expectedValue, actualValue);
149161
ActionResult result = new ViewResult
150162
{
151-
ViewData = new ViewDataDictionary { { "key1", "value1" } }
163+
ViewData = new ViewDataDictionary { { key, actualValue } }
152164
};
165+
166+
Action a = () => result.Should().BeView().WithViewData(key, expectedValue);
153167

154-
Action a = () => result.Should().BeView().WithViewData("key1", "xyz");
155168
a.ShouldThrow<Exception>()
156-
.WithMessage("");
169+
.WithMessage(failureMessage);
157170
}
158171

159172
[Test]
160173
public void WithViewData_GivenUnexpectedKey_ShouldFail()
161174
{
175+
var actualKey = "key1";
176+
var expectedKey = "xyz";
162177
ActionResult result = new ViewResult
163178
{
164-
ViewData = new ViewDataDictionary { { "key1", "value1" } }
179+
ViewData = new ViewDataDictionary { { actualKey, "value1" } }
165180
};
181+
var failureMessage = FailureMessageHelper.Format(FailureMessages.ViewResultBase_ViewData_ContainsKey, expectedKey, actualKey);
182+
183+
Action a = () => result.Should().BeView().WithViewData(expectedKey, "value1");
166184

167-
Action a = () => result.Should().BeView().WithViewData("xyz", "value1");
168185
a.ShouldThrow<Exception>()
169-
.WithMessage("");
186+
.WithMessage(failureMessage);
170187
}
171188

172189
[Test]

0 commit comments

Comments
 (0)