Skip to content

Commit 6eeb03c

Browse files
committed
Made ShouldGiveHttpStatus return HttpStatusCodeResult.
Partial implementation of #46.
1 parent 0ea4632 commit 6eeb03c

File tree

3 files changed

+38
-4
lines changed

3 files changed

+38
-4
lines changed

TestStack.FluentMVCTesting.Tests/ControllerResultTestTests/ShouldGiveHttpStatusTests.cs

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using System.Net;
2+
using System.Web.Mvc;
23
using NUnit.Framework;
34
using TestStack.FluentMVCTesting.Tests.TestControllers;
45

@@ -26,5 +27,35 @@ public void Check_for_invalid_http_status()
2627
);
2728
Assert.That(exception.Message, Is.EqualTo(string.Format("Expected HTTP status code to be '{0}', but instead received a '{1}'.", ControllerResultTestController.Code + 1, ControllerResultTestController.Code)));
2829
}
30+
31+
[Test]
32+
public void Return_the_http_status_result()
33+
{
34+
HttpStatusCodeResult expected = _controller.StatusCode();
35+
HttpStatusCodeResult actual = _controller.WithCallTo(c => c.StatusCode())
36+
.ShouldGiveHttpStatus();
37+
Assert.AreEqual(expected.StatusCode, actual.StatusCode);
38+
Assert.AreEqual(expected.StatusDescription, actual.StatusDescription);
39+
}
40+
41+
[Test]
42+
public void Reeturn_the_http_status_result_when_the_assertion_against_integer_is_true()
43+
{
44+
HttpStatusCodeResult expected = _controller.StatusCode();
45+
HttpStatusCodeResult actual = _controller.WithCallTo(c => c.StatusCode())
46+
.ShouldGiveHttpStatus(ControllerResultTestController.Code);
47+
Assert.AreEqual(expected.StatusCode, actual.StatusCode);
48+
Assert.AreEqual(expected.StatusDescription, actual.StatusDescription);
49+
}
50+
51+
[Test]
52+
public void Reeturn_the_http_status_result_when_the_assertion_against_status_code_enum_is_true()
53+
{
54+
HttpStatusCodeResult expected = _controller.StatusCode();
55+
HttpStatusCodeResult actual = _controller.WithCallTo(c => c.StatusCode())
56+
.ShouldGiveHttpStatus((HttpStatusCode) ControllerResultTestController.Code);
57+
Assert.AreEqual(expected.StatusCode, actual.StatusCode);
58+
Assert.AreEqual(expected.StatusDescription, actual.StatusDescription);
59+
}
2960
}
3061
}

TestStack.FluentMVCTesting.Tests/TestControllers/ControllerResultTestController.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -217,7 +217,7 @@ public ActionResult NotFound()
217217
{
218218
return HttpNotFound();
219219
}
220-
public ActionResult StatusCode()
220+
public HttpStatusCodeResult StatusCode()
221221
{
222222
return new HttpStatusCodeResult(Code);
223223
}

TestStack.FluentMvcTesting/ControllerResultTest/ShouldGiveHttpStatus.cs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,24 +5,27 @@ namespace TestStack.FluentMVCTesting
55
{
66
public partial class ControllerResultTest<T>
77
{
8-
public void ShouldGiveHttpStatus()
8+
public HttpStatusCodeResult ShouldGiveHttpStatus()
99
{
1010
ValidateActionReturnType<HttpStatusCodeResult>();
11+
return (HttpStatusCodeResult) ActionResult;
1112
}
1213

13-
public void ShouldGiveHttpStatus(int status)
14+
public HttpStatusCodeResult ShouldGiveHttpStatus(int status)
1415
{
1516
ValidateActionReturnType<HttpStatusCodeResult>();
1617

1718
var statusCodeResult = (HttpStatusCodeResult)ActionResult;
1819

1920
if (statusCodeResult.StatusCode != status)
2021
throw new ActionResultAssertionException(string.Format("Expected HTTP status code to be '{0}', but instead received a '{1}'.", status, statusCodeResult.StatusCode));
22+
return (HttpStatusCodeResult) ActionResult;
2123
}
2224

23-
public void ShouldGiveHttpStatus(HttpStatusCode status)
25+
public HttpStatusCodeResult ShouldGiveHttpStatus(HttpStatusCode status)
2426
{
2527
ShouldGiveHttpStatus((int)status);
28+
return (HttpStatusCodeResult)ActionResult;
2629
}
2730
}
2831
}

0 commit comments

Comments
 (0)