Skip to content

Commit c44131d

Browse files
committed
Made all tests pass
Had to use Moq framework to simplify the creation of the TempDataCollection. Was nearly impossible to test without that.
1 parent 17669d4 commit c44131d

File tree

3 files changed

+20
-6
lines changed

3 files changed

+20
-6
lines changed

src/FluentAssertions.AspNetCore.Mvc/PartialViewResultAssertions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ public PartialViewResultAssertions WithTempData(string key, object expectedValue
111111
/// <returns>The typed model.</returns>
112112
public TModel ModelAs<TModel>()
113113
{
114-
var model = PartialViewResultSubject.ViewData.Model;
114+
var model = PartialViewResultSubject.ViewData?.Model;
115115

116116
if (model == null)
117117
Execute.Assertion.FailWith(FailureMessages.ViewResultBase_NullModel, typeof(TModel).Name);

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

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,12 @@ namespace FluentAssertions.Mvc.Tests
1010
{
1111
public class TestController : Controller
1212
{
13+
private Mock<ITempDataDictionary> _mockTempDataDictionary;
14+
1315
public TestController()
1416
{
15-
TempData = new Mock<ITempDataDictionary>().Object;
17+
_mockTempDataDictionary = new Mock<ITempDataDictionary>();
18+
TempData = _mockTempDataDictionary.Object;
1619
}
1720

1821
public PartialViewResult PartialViewSimpleModel()
@@ -27,14 +30,22 @@ public ViewResult ViewSimpleModel()
2730

2831
public ViewResult ViewWithOneTempData()
2932
{
30-
TempData.Add("key1", "value1");
33+
var mock = new Mock<ITempDataDictionary>();
34+
mock.Setup(t => t.ContainsKey("key1")).Returns(true);
35+
mock.Setup(t => t["key1"]).Returns("value1");
36+
TempData = mock.Object;
3137
return View();
3238
}
3339

3440
public ViewResult ViewWithTwoTempData()
3541
{
36-
TempData.Add("key1", "value1");
37-
TempData.Add("key2", "value2");
42+
var mock = new Mock<ITempDataDictionary>();
43+
mock.Setup(t => t.ContainsKey("key1")).Returns(true);
44+
mock.Setup(t => t.ContainsKey("key2")).Returns(true);
45+
mock.Setup(t => t["key1"]).Returns("value1");
46+
mock.Setup(t => t["key2"]).Returns("value2");
47+
48+
TempData = mock.Object;
3849
return View();
3950
}
4051

tests/FluentAssertions.Mvc.Tests.Shared/PartialViewResultAssertions_Tests.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,10 @@ public void ModelAs_Null_ShouldFail()
104104
ActionResult result = new PartialViewResult();
105105
string failureMessage = FailureMessageHelper.Format(FailureMessages.ViewResultBase_NullModel, typeof(Object).Name);
106106

107-
Action a = () => result.Should().BePartialViewResult().ModelAs<Object>();
107+
Action a = () =>
108+
{
109+
result.Should().BePartialViewResult().ModelAs<Object>();
110+
};
108111

109112
a.ShouldThrow<Exception>()
110113
.WithMessage(failureMessage);

0 commit comments

Comments
 (0)