public void BeRedirect_GivenNotRedirect_ShouldFail()
 {
     ActionResult result = new ViewResult();
     Action a = () => result.Should().BeRedirectResult();
     a.ShouldThrow<Exception>()
             .WithMessage("Expected ActionResult to be \"RedirectResult\", but found \"ViewResult\"");
 }
 public void BeEmpty_GivenNotEmpty_ShouldPass()
 {
     ActionResult result = new ViewResult();
     Action a = () => result.Should().BeEmptyResult();
     a.ShouldThrow<Exception>()
             .WithMessage("Expected ActionResult to be \"EmptyResult\", but found \"ViewResult\"");
 }
        public void WithMasterName_GivenExpectedValue_ShouldPass()
        {
            ActionResult result = new ViewResult
            {
                MasterName = "master",
            };

            result.Should().BeViewResult().WithMasterName("master");
        }
        public void WithTempData_GivenExpectedValue_ShouldPass()
        {
            ActionResult result = new ViewResult
            {
                TempData = new TempDataDictionary { { "key1", "value1" } }
            };

            result.Should().BeViewResult().WithTempData("key1", "value1");
        }
        public void WithViewName_GivenExpectedValue_ShouldPass()
        {
            ActionResult result = new ViewResult
            {
                ViewName = "index",
            };

            result.Should().BeViewResult().WithViewName("index");
        }
        public void WithViewName_GivenUnexpectedValue_ShouldFail()
        {
            var actualViewName = "index";
            var expectedViewName = "xyz";
            var failureMessage = FailureMessageHelper.Format(FailureMessages.ViewResultBase_ViewName, expectedViewName, actualViewName);
            ActionResult result = new ViewResult
            {
                ViewName = actualViewName,
            };

            Action action = () => result.Should().BeViewResult().WithViewName(expectedViewName);
            
            action.ShouldThrow<Exception>()
                    .WithMessage(failureMessage);
        }
        public void WithDefaultViewName_GivenUnexpectedValue_ShouldFail()
        {
            string viewName = "index";
            string failureMessage = FailureMessageHelper.Format(FailureMessages.ViewResultBase_WithDefaultViewName, viewName);

            ActionResult result = new ViewResult
            {
                ViewName = viewName
            };

            Action action = () => result.Should().BeViewResult().WithDefaultViewName();

            action.ShouldThrow<Exception>()
                    .WithMessage(failureMessage);
        }
        public void WithDefaultViewName_GivenExpectedValue_ShouldPass()
        {
            ActionResult result = new ViewResult
            {
                ViewName = String.Empty
            };

            result.Should().BeViewResult().WithDefaultViewName();
        }
        public void ModelAs_Null_ShouldFail()
        {
            ActionResult result = new ViewResult();
            string failureMessage = FailureMessageHelper.Format(FailureMessages.ViewResultBase_NullModel, typeof(Object).Name);

            Action a = () => result.Should().BeViewResult().ModelAs<Object>();
            
            a.ShouldThrow<Exception>()
                    .WithMessage(failureMessage);
        }
        public void ModelAs_GivenWrongType_ShouldFail()
        {
#if NETCOREAPP1_0
            var result = new TestController().ViewSimpleModel();
#else
            ActionResult result = new ViewResult
            {
                ViewData = new ViewDataDictionary("hello")
            };
#endif

            Action a = () => result.Should().BeViewResult().ModelAs<int>().Should().Be(2);
            a.ShouldThrow<Exception>();
        }
        public void ModelAs_GivenUnexpectedValue_ShouldFail()
        {
#if NETCOREAPP1_0
            var result = new TestController().ViewSimpleModel();
#else
            ActionResult result = new ViewResult
            {
                ViewData = new ViewDataDictionary("hello")
            };
#endif

            Action a = () => result.Should().BeViewResult().ModelAs<string>().Should().Be("xyx");
            a.ShouldThrow<Exception>();
        }
        public void ModelAs_GivenUnexpectedValue_ShouldFail()
        {
            ActionResult result = new ViewResult
            {
                ViewData = new ViewDataDictionary("hello")
            };

            Action a = () => result.Should().BeViewResult().ModelAs<string>().Should().Be("xyx");
            a.ShouldThrow<Exception>();
        }
        public void WithTempData_GivenTwoExpectedValues_ShouldPass()
        {
#if NETCOREAPP1_0
            var result = new TestController().ViewWithTwoTempData();
#else
            ActionResult result = new ViewResult
            {
                TempData = new TempDataDictionary
                {
                    { "key1", "value1" },
                    { "key2", "value2" },
                }
            };
#endif

            result.Should().BeViewResult()
                    .WithTempData("key1", "value1")
                    .WithTempData("key2", "value2");
        }
        public void WithViewData_GivenUnexpectedKey_ShouldFail()
        {
            var actualKey = "key1";
            var expectedKey = "xyz";

#if NETCOREAPP1_0
            var result = new TestController().ViewWithTwoViewData();
#else
            ActionResult result = new ViewResult
            {
                ViewData = new ViewDataDictionary { { actualKey, "value1" } }
            };
#endif
            var failureMessage = FailureMessageHelper.Format(FailureMessages.ViewResultBase_ViewData_ContainsKey, expectedKey, actualKey);

            Action a = () => result.Should().BeViewResult().WithViewData(expectedKey, "value1");

            a.ShouldThrow<Exception>()
                    .WithMessage(failureMessage);
        }
        public void WithViewData_GivenUnexpectedValue_ShouldFail()
        {
            var key = "key1";
            var actualValue = "value1";
            var expectedValue = "abc";
            var failureMessage = FailureMessageHelper.Format(FailureMessages.ViewResultBase_ViewData_HaveValue, key, expectedValue, actualValue);

#if NETCOREAPP1_0
            var result = new TestController().ViewWithOneViewData();
#else
            ActionResult result = new ViewResult
            {
                ViewData = new ViewDataDictionary { { key, actualValue } }
            };
#endif

            Action a = () => result.Should().BeViewResult().WithViewData(key, expectedValue);

            a.ShouldThrow<Exception>()
                    .WithMessage(failureMessage);
        }
        public void WithViewData_GivenExpectedValue_ShouldPass()
        {
#if NETCOREAPP1_0
            var result = new TestController().ViewWithOneViewData();
#else
            ActionResult result = new ViewResult
            {
                ViewData = new ViewDataDictionary { { "key1", "value1" } }
            };
#endif

            result.Should().BeViewResult().WithViewData("key1", "value1");
        }
        public void WithTempData_GivenUnexpectedKey_ShouldFail()
        {
#if NETCOREAPP1_0
            var result = new TestController().ViewWithOneTempData();
#else
            ActionResult result = new ViewResult
            {
                TempData = new TempDataDictionary { { "key1", "value1" } }
            };
#endif

            Action a = () => result.Should().BeViewResult().WithTempData("xyz", "value1");
            a.ShouldThrow<Exception>();
        }
        public void ModelAs_GivenWrongType_ShouldFail()
        {
            ActionResult result = new ViewResult
            {
                ViewData = new ViewDataDictionary("hello")
            };

            Action a = () => result.Should().BeViewResult().ModelAs<int>().Should().Be(2);
            a.ShouldThrow<Exception>();
        }
        public void WithViewData_GivenUnexpectedValue_ShouldFail()
        {
            var key = "key1";
            var actualValue = "value1";
            var expectedValue = "abc";
            var failureMessage = FailureMessageHelper.Format(FailureMessages.ViewResultBase_ViewData_HaveValue, key, expectedValue, actualValue);
            ActionResult result = new ViewResult
            {
                ViewData = new ViewDataDictionary { { key, actualValue } }
            };
            
            Action a = () => result.Should().BeViewResult().WithViewData(key, expectedValue);

            a.ShouldThrow<Exception>()
                    .WithMessage(failureMessage);
        }
        public void WithViewData_GivenTwoExpectedValues_ShouldPass()
        {
            ActionResult result = new ViewResult
            {
                ViewData = new ViewDataDictionary
                {
                    { "key1", "value1" },
                    { "key2", "value2" },
                }
            };

            result.Should().BeViewResult()
                    .WithViewData("key1", "value1")
                    .WithViewData("key2", "value2");
        }
        public void ModelAs_GivenExpectedValue_ShouldPass()
        {
#if NETCOREAPP1_0
            var result = new TestController().ViewSimpleModel();
#else
            ActionResult result = new ViewResult
            {
                ViewData = new ViewDataDictionary("hello")
            };
#endif

            result.Should().BeViewResult().ModelAs<string>().Should().Be("hello");
        }
        public void ModelAs_GivenExpectedValue_ShouldPass()
        {
            ActionResult result = new ViewResult
            {
                ViewData = new ViewDataDictionary("hello")
            };

            result.Should().BeViewResult().ModelAs<string>().Should().Be("hello");
        }
 public void BeView_GivenView_ShouldPass()
 {
     ActionResult result = new ViewResult();
     result.Should().BeViewResult();
 }
        public void WithTempData_GivenUnexpectedKey_ShouldFail()
        {
            ActionResult result = new ViewResult
            {
                TempData = new TempDataDictionary { { "key1", "value1" } }
            };

            Action a = () => result.Should().BeViewResult().WithTempData("xyz", "value1");
            a.ShouldThrow<Exception>();
        }