Skip to content

Commit f25fc82

Browse files
committed
New FailureMessageHelper class added to assist verifying test failure messages.
1 parent ae70fe9 commit f25fc82

File tree

4 files changed

+71
-8
lines changed

4 files changed

+71
-8
lines changed
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
using NUnit.Framework;
2+
using FluentAssertions;
3+
using System;
4+
using System.Collections.Generic;
5+
using System.Linq;
6+
using System.Text;
7+
8+
using FluentAssertions.Mvc3.Tests.Helpers;
9+
10+
namespace FluentAssertions.Mvc3.Tests
11+
{
12+
[TestFixture]
13+
class FailureMessageHelper_Tests
14+
{
15+
[Test]
16+
public void FailureMessageHelper_WithOneArg_Formats()
17+
{
18+
// Arrange
19+
var message = "Test failure message {0}.";
20+
var value = "reason";
21+
22+
var expected = "Test failure message \"reason\".";
23+
24+
// Act
25+
var result = FailureMessageHelper.Format(message, value);
26+
27+
// Assert
28+
result.Should().Be(expected);
29+
}
30+
31+
[Test]
32+
public void FailureMessageHelper_WithMultipleArgs_Formats()
33+
{
34+
// Arrange
35+
var message = "Test failure message {0}, {1}, {2}.";
36+
var reason1 = "reason one";
37+
var reason2 = "reason two";
38+
var reason3 = "reason three";
39+
40+
var expected = "Test failure message \"reason one\", \"reason two\", \"reason three\".";
41+
42+
// Act
43+
var result = FailureMessageHelper.Format(message, reason1, reason2, reason3);
44+
45+
// Assert
46+
result.Should().Be(expected);
47+
}
48+
}
49+
}

tests/FluentAssertions.Mvc3.Tests/FluentAssertions.Mvc3.Tests.csproj

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@
4949
</ItemGroup>
5050
<ItemGroup>
5151
<Compile Include="ContentResultAssertions_Tests.cs" />
52+
<Compile Include="FailureMessageHelper_Tests.cs" />
53+
<Compile Include="Helpers\FailureMessageHelper.cs" />
5254
<Compile Include="Properties\AssemblyInfo.cs" />
5355
<Compile Include="Fakes\FakeController.cs" />
5456
<Compile Include="ActionResultAssertions_Tests.cs" />
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Linq;
4+
using System.Text;
5+
6+
namespace FluentAssertions.Mvc3.Tests.Helpers
7+
{
8+
static class FailureMessageHelper
9+
{
10+
public static string Format(string message, params string[] args)
11+
{
12+
var formattedArg = args.Select(x => String.Format("\"{0}\"", x)).ToArray();
13+
14+
return String.Format(message, formattedArg);
15+
}
16+
}
17+
}

tests/FluentAssertions.Mvc3.Tests/ViewResultAssertions_Tests.cs

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
using NUnit.Framework;
66
using System.Web.Mvc;
77
using FluentAssertions.Mvc3;
8+
using FluentAssertions.Mvc3.Tests.Helpers;
89
using FluentAssertions.Mvc3.Tests.Fakes;
910

1011
namespace FluentAssertions.Mvc3.Tests
@@ -233,10 +234,7 @@ public void ModelAs_GivenWrongType_ShouldFail()
233234
public void ModelAs_Null_ShouldFail()
234235
{
235236
ActionResult result = new ViewResult();
236-
237-
// TODO: Improve the comparision of failure messages.
238-
string value = String.Format("\"{0}\"", typeof(Object).Name);
239-
string failureMessage = String.Format(FailureMessages.ViewResultBase_NullModel, value);
237+
string failureMessage = FailureMessageHelper.Format(FailureMessages.ViewResultBase_NullModel, typeof(Object).Name);
240238

241239
Action a = () => result.Should().BeView().ModelAs<Object>();
242240

@@ -259,10 +257,7 @@ public void WithDefaultViewName_GivenExpectedValue_ShouldPass()
259257
public void WithDefaultViewName_GivenUnexpectedValue_ShouldFail()
260258
{
261259
string viewName = "index";
262-
263-
// TODO: Improve the comparision of failure messages.
264-
string value = String.Format("\"{0}\"", viewName);
265-
string failureMessage = String.Format(FailureMessages.ViewResultBase_WithDefaultViewName, value);
260+
string failureMessage = FailureMessageHelper.Format(FailureMessages.ViewResultBase_WithDefaultViewName, viewName);
266261

267262
ActionResult result = new ViewResult
268263
{

0 commit comments

Comments
 (0)