public void WithViewData_should_throw_if_view_data_type_does_not_match()
        {
            const string wrongViewDataType = "WrongType";
            var result = new ViewResult { ViewData = new ViewDataDictionary(wrongViewDataType)};

            result.WithViewData<CustomReferenceTypeViewData>();
        }
        public void WithViewData_should_throw_exception_if_view_data_is_null_and_expected_type_is_value_type()
        {
            var renderResult = new ViewResult {ViewData = new ViewDataDictionary<CustomReferenceTypeViewData>() };

            renderResult.WithViewData<CustomValueTypeViewData>();
        }
        public void WithViewData_should_return_view_data_if_view_data_type_is_implementation_of_generic_interface()
        {
            var expectedData = new List<string> { "a", "b", "c" };
            var renderResult = new ViewResult { ViewData = new ViewDataDictionary(expectedData) };

            var result = renderResult.WithViewData<IList<string>>();

            Assert.That(result, Is.EqualTo(expectedData));
        }
        public void WithViewData_should_return_view_data_if_view_data_type_matches()
        {
            var expectedData = new CustomReferenceTypeViewData {ID = 2, Name = "Foo"};
            var renderResult = new ViewResult {ViewData = new ViewDataDictionary(expectedData)};

            var result = renderResult.WithViewData<CustomReferenceTypeViewData>();

            Assert.That(result, Is.EqualTo(expectedData));
        }
        public void WithViewData_should_return_null_if_view_data_is_null_and_expected_type_is_reference_type()
        {
            var renderResult = new ViewResult {ViewData = new ViewDataDictionary<CustomReferenceTypeViewData>() };

            var result = renderResult.WithViewData<CustomReferenceTypeViewData>();

            Assert.That(result, Is.Null);
        }