public void Raven_session_is_not_opened_before_on_action_executing() { var store = new TestableStore(); var controller = new TestableController(store); Assert.Null(controller.Session); }
private static Controller GetController(IModelBinder binder, IValueProvider valueProvider) { var metadataProvider = TestModelMetadataProvider.CreateDefaultProvider(); var httpContext = new DefaultHttpContext(); var viewData = new ViewDataDictionary(metadataProvider, new ModelStateDictionary()); var tempData = new TempDataDictionary(httpContext, Mock.Of <ITempDataProvider>()); var valiatorProviders = new[] { new DataAnnotationsModelValidatorProvider( new ValidationAttributeAdapterProvider(), new TestOptionsManager <MvcDataAnnotationsLocalizationOptions>(), stringLocalizerFactory: null), }; valueProvider = valueProvider ?? new SimpleValueProvider(); var controllerContext = new ControllerContext() { HttpContext = httpContext, ValueProviderFactories = new[] { new SimpleValueProviderFactory(valueProvider), }, }; var controller = new TestableController() { ControllerContext = controllerContext, MetadataProvider = metadataProvider, ObjectValidator = new DefaultObjectValidator(metadataProvider, valiatorProviders), TempData = tempData, ViewData = viewData, }; return(controller); }
public void TestMethod1() { var db = new Mock <IDataBase>(); db .Setup(z => z.GetDepartments()) .Returns(new List <Department> { new Department { Name = "a" }, new Department { Name = "b" }, new Department { Name = "ab" } }); var index = new TestableController(db.Object); var list = ((index.Index("a") as ViewResult).Model as IEnumerable <Department>).ToArray(); Assert.AreEqual(2, list.Length); Assert.AreEqual("a", list[0].Name); Assert.AreEqual("ab", list[1].Name); }
public void If_no_exception_occurred_then_changes_are_saved() { var testDocument = new Foo { Id = "foos/123", Title = "foo" }; var store = new TestableStore(); var controller = new TestableController(store); StartActionExecuting(controller); using (var session = controller.Session) { session.Store(testDocument); session.SaveChanges(); var doc = session.Load<Foo>(testDocument.Id); doc.Title = "bar"; FinishActionExecuted(controller); } using (var session = store.OpenSession()) { var doc = session.Load<Foo>(testDocument.Id); Assert.Equal("bar", doc.Title); } }
public void Redirect_WithParameter_NullOrEmptyUrl_Throws(string url) { // Arrange var controller = new TestableController(); // Act & Assert ExceptionAssert.ThrowsArgumentNullOrEmpty( () => controller.Redirect(url: url), "url"); }
public void ByController() { var controller = new TestableController(); var maskedResult = controller.Mask(Category_Controller.GetCategories()); foreach (var category in maskedResult) { Assert.Null(category.Children); } }
public void Controller_Json_WithParameterValue_SetsResultData() { // Arrange var controller = new TestableController(); var data = new object(); // Act var actualJsonResult = controller.Json(data); // Assert Assert.IsType <JsonResult>(actualJsonResult); Assert.Same(data, actualJsonResult.Value); }
public void Controller_Json_WithParameterValue_SetsRespectiveProperty() { // Arrange var controller = new TestableController(); var data = new object(); var serializerSettings = new JsonSerializerSettings(); // Act var actualJsonResult = controller.Json(data, serializerSettings); // Assert Assert.IsType <JsonResult>(actualJsonResult); Assert.Same(data, actualJsonResult.Value); }
public void RedirectPermanent_WithParameterUrl_SetsRedirectResultPermanentAndSameUrl() { // Arrange var controller = new TestableController(); var url = "/test/url"; // Act var result = controller.RedirectPermanent(url); // Assert Assert.IsType<RedirectResult>(result); Assert.True(result.Permanent); Assert.Same(url, result.Url); }
public void TestMethod1() { var db = new TestDataBase(); var index = new TestableController(db); var viewResult = index.Index("a"); Assert.IsInstanceOfType(viewResult, typeof(ViewResult)); var view = viewResult as ViewResult; Assert.IsInstanceOfType(view.Model, typeof(IEnumerable <Department>)); var model = view.Model as IEnumerable <Department>; var list = model.ToArray(); Assert.AreEqual(2, list.Length); Assert.AreEqual("a", list[0].Name); Assert.AreEqual("ab", list[1].Name); }
public void Controller_View_WithoutParameter_SetsResultNullViewNameAndNullViewDataModelAndSameTempData() { // Arrange var controller = new TestableController() { ViewData = new ViewDataDictionary(new EmptyModelMetadataProvider()), TempData = new TempDataDictionary(new DefaultHttpContext(), Mock.Of <ITempDataProvider>()), }; // Act var actualViewResult = controller.View(); // Assert Assert.IsType <ViewResult>(actualViewResult); Assert.Null(actualViewResult.ViewName); Assert.Same(controller.ViewData, actualViewResult.ViewData); Assert.Same(controller.TempData, actualViewResult.TempData); Assert.Null(actualViewResult.ViewData.Model); }
public void Controller_View_WithoutParameter_SetsResultNullViewNameAndNullViewDataModelAndSameTempData() { // Arrange var controller = new TestableController() { ViewData = new ViewDataDictionary(new EmptyModelMetadataProvider()), TempData = new TempDataDictionary(new DefaultHttpContext(), Mock.Of<ITempDataProvider>()), }; // Act var actualViewResult = controller.View(); // Assert Assert.IsType<ViewResult>(actualViewResult); Assert.Null(actualViewResult.ViewName); Assert.Same(controller.ViewData, actualViewResult.ViewData); Assert.Same(controller.TempData, actualViewResult.TempData); Assert.Null(actualViewResult.ViewData.Model); }
public void SettingViewData_AlsoUpdatesViewBag() { // Arrange var metadataProvider = TestModelMetadataProvider.CreateDefaultProvider(); var controller = new TestableController(); var originalViewData = controller.ViewData = new ViewDataDictionary<object>(metadataProvider); var replacementViewData = new ViewDataDictionary<object>(metadataProvider); // Act controller.ViewBag.Hello = "goodbye"; controller.ViewData = replacementViewData; controller.ViewBag.Another = "property"; // Assert Assert.NotSame(originalViewData, controller.ViewData); Assert.Same(replacementViewData, controller.ViewData); Assert.Null(controller.ViewBag.Hello); Assert.Equal("property", controller.ViewBag.Another); Assert.Equal("property", controller.ViewData["Another"]); }
public void Controller_PartialView_WithParameterViewNameAndViewModel_SetsResultViewNameAndViewDataModelAndSameTempData() { // Arrange var controller = new TestableController() { ViewData = new ViewDataDictionary(new EmptyModelMetadataProvider()), TempData = new TempDataDictionary(new DefaultHttpContext(), Mock.Of <ITempDataProvider>()), }; var model = new object(); // Act var actualViewResult = controller.PartialView("CustomViewName", model); // Assert Assert.IsType <PartialViewResult>(actualViewResult); Assert.Equal("CustomViewName", actualViewResult.ViewName); Assert.Same(controller.ViewData, actualViewResult.ViewData); Assert.Same(controller.TempData, actualViewResult.TempData); Assert.Same(model, actualViewResult.ViewData.Model); }
public void SettingViewData_AlsoUpdatesViewBag() { // Arrange var metadataProvider = TestModelMetadataProvider.CreateDefaultProvider(); var controller = new TestableController(); var originalViewData = controller.ViewData = new ViewDataDictionary <object>(metadataProvider); var replacementViewData = new ViewDataDictionary <object>(metadataProvider); // Act controller.ViewBag.Hello = "goodbye"; controller.ViewData = replacementViewData; controller.ViewBag.Another = "property"; // Assert Assert.NotSame(originalViewData, controller.ViewData); Assert.Same(replacementViewData, controller.ViewData); Assert.Null(controller.ViewBag.Hello); Assert.Equal("property", controller.ViewBag.Another); Assert.Equal("property", controller.ViewData["Another"]); }
public void ByAction() { var controller = new TestableController(); var actionContext = new ActionContext( new DefaultHttpContext(), new RouteData(), new ControllerActionDescriptor() { ActionName = nameof(TestableController.TestByAction), ControllerName = nameof(TestableController), ControllerTypeInfo = typeof(TestableController).GetTypeInfo() }); controller.ControllerContext = new ControllerContext(actionContext); foreach (var category in controller.TestByAction()) { Assert.Null(category.Children); } }
public void Controller_PartialView_WithNullModelParameter_OverwritesViewDataModel() { // Arrange var controller = new TestableController() { ViewData = new ViewDataDictionary(new EmptyModelMetadataProvider()), TempData = new TempDataDictionary(new DefaultHttpContext(), Mock.Of <ITempDataProvider>()), }; controller.ViewData.Model = new object(); // Act var actualViewResult = controller.PartialView(model: null); // Assert Assert.IsType <PartialViewResult>(actualViewResult); Assert.Null(actualViewResult.ViewName); Assert.Same(controller.ViewData, actualViewResult.ViewData); Assert.Same(controller.TempData, actualViewResult.TempData); Assert.Null(actualViewResult.ViewData.Model); }
public void Taxonomy_UrlParams_Mapper_Test() { string urlPattern = "-in-tags/tag/tag1"; var urlParams = urlPattern.Split('/'); var controller = new TestableController(); controller.ControllerContext = new ControllerContext(); var tagTaxon = new FlatTaxon(); var taxonomyUrlParamsMapper = new TaxonomyUrlParamsMapper( controller, new TaxonUrlMapper(new MockedTaxonUrlEvaluatorAdapter(url => url.Contains(urlPattern) ? tagTaxon : null))); taxonomyUrlParamsMapper.ResolveUrlParams(urlParams, controller.ControllerContext.RequestContext); Assert.IsTrue(controller.ControllerContext.RequestContext.RouteData.Values["action"] == "ListByTaxon"); Assert.IsTrue(controller.ControllerContext.RequestContext.RouteData.Values["taxon"] == tagTaxon); }
public void Taxonomy_UrlParams_Mapper_Test_With_PageIndex_With_Incorrect_Route_Data() { string urlPattern = "-in-tags/tag/tag1/3"; string requestRouteData = "-in-tags/tag/tag1/asdasd"; var urlParams = requestRouteData.Split('/'); var controller = new TestableController(); controller.ControllerContext = new ControllerContext(); var tagTaxon = new FlatTaxon(); var taxonomyUrlParamsMapper = new TaxonomyUrlParamsMapper( controller, new TaxonUrlMapper(new MockedTaxonUrlEvaluatorAdapter(url => url.Contains(urlPattern) ? tagTaxon : null))); taxonomyUrlParamsMapper.ResolveUrlParams(urlParams, controller.ControllerContext.RequestContext); Assert.IsFalse(controller.ControllerContext.RequestContext.RouteData.Values["action"] == "ListByTaxon"); }
public void ViewDataModelSetter_DoesNotThrow(object model, Type expectedType) { // Arrange var activator = new ViewDataDictionaryControllerPropertyActivator(new EmptyModelMetadataProvider()); var actionContext = new ActionContext( new DefaultHttpContext(), new RouteData(), new ControllerActionDescriptor()); var controllerContext = new ControllerContext(actionContext); var controller = new TestableController(); activator.Activate(controllerContext, controller); // Guard Assert.NotNull(controller.ViewData); // Act (does not throw) controller.ViewData.Model = model; // Assert Assert.NotNull(controller.ViewData.ModelMetadata); Assert.Equal(expectedType, controller.ViewData.ModelMetadata.ModelType); }
public void Controller_Json_IDisposableObject_RegistersForDispose() { // Arrange var mockHttpContext = new Mock <HttpContext>(); mockHttpContext.Setup(x => x.Response.RegisterForDispose(It.IsAny <IDisposable>())); var controller = new TestableController(); controller.ControllerContext.HttpContext = mockHttpContext.Object; var input = new DisposableObject(); // Act var result = controller.Json(input); // Assert Assert.IsType <JsonResult>(result); Assert.Same(input, result.Value); mockHttpContext.Verify( x => x.Response.RegisterForDispose(It.IsAny <IDisposable>()), Times.Once()); }
public void File_WithPathAndFileDownloadName() { // Arrange var controller = new TestableController(); var path = Path.GetFullPath("somepath"); // Act var result = controller.File(path, "application/pdf", "someDownloadName"); // Assert Assert.NotNull(result); Assert.Equal(path, result.FileName); Assert.Equal("application/pdf", result.ContentType.ToString()); Assert.Equal("someDownloadName", result.FileDownloadName); }
public void File_WithStreamAndFileDownloadName() { // Arrange var mockHttpContext = new Mock<DefaultHttpContext>(); mockHttpContext.Setup(x => x.Response.OnResponseCompleted(It.IsAny<Action<object>>(), It.IsAny<object>())); var controller = new TestableController() { ActionContext = new ActionContext(mockHttpContext.Object, new RouteData(), new ActionDescriptor()) }; var fileStream = Stream.Null; // Act var result = controller.File(fileStream, "application/pdf", "someDownloadName"); // Assert Assert.NotNull(result); Assert.Same(fileStream, result.FileStream); Assert.Equal("application/pdf", result.ContentType.ToString()); Assert.Equal("someDownloadName", result.FileDownloadName); mockHttpContext.Verify( x => x.Response.OnResponseCompleted(It.IsAny<Action<object>>(), It.IsAny<object>()), Times.Once()); }
public void HttpNotFound_SetsStatusCode() { // Arrange var controller = new TestableController(); // Act var result = controller.HttpNotFound(); // Assert Assert.IsType<HttpNotFoundResult>(result); Assert.Equal(StatusCodes.Status404NotFound, result.StatusCode); }
private static Controller GetController(IModelBinder binder, IValueProvider valueProvider) { var metadataProvider = TestModelMetadataProvider.CreateDefaultProvider(); var httpContext = new DefaultHttpContext(); var viewData = new ViewDataDictionary(metadataProvider, new ModelStateDictionary()); var tempData = new TempDataDictionary(httpContext, Mock.Of<ITempDataProvider>()); var valiatorProviders = new[] { new DataAnnotationsModelValidatorProvider( new ValidationAttributeAdapterProvider(), new TestOptionsManager<MvcDataAnnotationsLocalizationOptions>(), stringLocalizerFactory: null), }; valueProvider = valueProvider ?? new SimpleValueProvider(); var controllerContext = new ControllerContext() { HttpContext = httpContext, ValueProviderFactories = new[] { new SimpleValueProviderFactory(valueProvider), }, }; var controller = new TestableController() { ControllerContext = controllerContext, MetadataProvider = metadataProvider, ObjectValidator = new DefaultObjectValidator(metadataProvider, valiatorProviders), TempData = tempData, ViewData = viewData, }; return controller; }
public void Taxonomy_UrlParams_Mapper_Test_With_PageIndex() { string urlPattern = "-in-tags/tag/tag1/3"; var urlParams = urlPattern.Split('/'); var controller = new TestableController(); controller.ControllerContext = new ControllerContext(); var tagTaxon = new FlatTaxon(); var taxonomyUrlParamsMapper = new TaxonomyUrlParamsMapper( controller, new TaxonUrlMapper(new MockedTaxonUrlEvaluatorAdapter(url => url.Contains(urlPattern) ? tagTaxon : null))); taxonomyUrlParamsMapper.ResolveUrlParams(urlParams, controller.ControllerContext.RequestContext); Assert.IsTrue(controller.ControllerContext.RequestContext.RouteData.Values["action"] == "ListByTaxon"); Assert.IsTrue(controller.ControllerContext.RequestContext.RouteData.Values["taxon"] == tagTaxon); Assert.IsTrue(((int)controller.ControllerContext.RequestContext.RouteData.Values["page"]) == 3); }
public void CreatedAtRoute_WithParameterRouteName_SetsResultSameRouteName() { // Arrange var controller = new TestableController(); var routeName = "SampleRoute"; // Act var result = controller.CreatedAtRoute(routeName, null); // Assert Assert.IsType<CreatedAtRouteResult>(result); Assert.Same(routeName, result.RouteName); }
public void CreatedAtAction_WithActionControllerRouteValues_SetsSameValues() { // Arrange var controller = new TestableController(); var expected = new Dictionary<string, object> { { "test", "case" }, { "sample", "route" }, }; // Act var result = controller.CreatedAtAction( "SampleAction", "SampleController", new RouteValueDictionary(expected), null); // Assert Assert.IsType<CreatedAtActionResult>(result); Assert.Equal(StatusCodes.Status201Created, result.StatusCode); Assert.Equal("SampleAction", result.ActionName); Assert.Equal("SampleController", result.ControllerName); Assert.Equal(expected, result.RouteValues); }
public void HttpNotFound_SetsStatusCodeAndResponseContent() { // Arrange var controller = new TestableController(); // Act var result = controller.HttpNotFound("Test Content"); // Assert Assert.IsType<HttpNotFoundObjectResult>(result); Assert.Equal(StatusCodes.Status404NotFound, result.StatusCode); Assert.Equal("Test Content", result.Value); }
public void BadRequest_SetsStatusCodeAndValue_ModelState() { // Arrange var controller = new TestableController(); // Act var result = controller.HttpBadRequest(new ModelStateDictionary()); // Assert Assert.IsType<BadRequestObjectResult>(result); Assert.Equal(StatusCodes.Status400BadRequest, result.StatusCode); var errors = Assert.IsType<SerializableError>(result.Value); Assert.Equal(0, errors.Count); }
public void BadRequest_IDisposableObject_RegistersForDispose() { // Arrange var mockHttpContext = new Mock<DefaultHttpContext>(); mockHttpContext.Setup(x => x.Response.OnResponseCompleted(It.IsAny<Action<object>>(), It.IsAny<object>())); var controller = new TestableController() { ActionContext = new ActionContext(mockHttpContext.Object, new RouteData(), new ActionDescriptor()) }; var input = new DisposableObject(); // Act var result = controller.HttpBadRequest(input); // Assert Assert.IsType<BadRequestObjectResult>(result); Assert.Equal(StatusCodes.Status400BadRequest, result.StatusCode); Assert.Same(input, result.Value); mockHttpContext.Verify( x => x.Response.OnResponseCompleted(It.IsAny<Action<object>>(), It.IsAny<object>()), Times.Once()); }
public void Created_IDisposableObject_RegistersForDispose() { // Arrange var mockHttpContext = new Mock<DefaultHttpContext>(); mockHttpContext.Setup(x => x.Response.OnResponseCompleted(It.IsAny<Action<object>>(), It.IsAny<object>())); var uri = new Uri("/test/url", UriKind.Relative); var controller = new TestableController() { ActionContext = new ActionContext(mockHttpContext.Object, new RouteData(), new ActionDescriptor()) }; var input = new DisposableObject(); // Act var result = controller.Created(uri, input); // Assert Assert.IsType<CreatedResult>(result); Assert.Equal(StatusCodes.Status201Created, result.StatusCode); Assert.Equal(uri.OriginalString, result.Location); Assert.Same(input, result.Value); mockHttpContext.Verify( x => x.Response.OnResponseCompleted(It.IsAny<Action<object>>(), It.IsAny<object>()), Times.Once()); }
public void File_WithContentsAndFileDownloadName() { // Arrange var controller = new TestableController(); var fileContents = new byte[0]; // Act var result = controller.File(fileContents, "application/pdf", "someDownloadName"); // Assert Assert.NotNull(result); Assert.Same(fileContents, result.FileContents); Assert.Equal("application/pdf", result.ContentType.ToString()); Assert.Equal("someDownloadName", result.FileDownloadName); }
public void Controller_Json_WithParameterValue_SetsResultData() { // Arrange var controller = new TestableController(); var data = new object(); // Act var actualJsonResult = controller.Json(data); // Assert Assert.IsType<JsonResult>(actualJsonResult); Assert.Same(data, actualJsonResult.Value); }
public void CreatedAtRoute_WithParameterRouteNameAndValues_SetsResultSameProperties() { // Arrange var controller = new TestableController(); var routeName = "SampleRoute"; var expected = new Dictionary<string, object> { { "test", "case" }, { "sample", "route" }, }; // Act var result = controller.CreatedAtRoute(routeName, new RouteValueDictionary(expected), null); // Assert Assert.IsType<CreatedAtRouteResult>(result); Assert.Equal(StatusCodes.Status201Created, result.StatusCode); Assert.Same(routeName, result.RouteName); Assert.Equal(expected, result.RouteValues); }
public void Controller_Json_WithParameterValue_SetsRespectiveProperty() { // Arrange var controller = new TestableController(); var data = new object(); var serializerSettings = new JsonSerializerSettings(); // Act var actualJsonResult = controller.Json(data, serializerSettings); // Assert Assert.IsType<JsonResult>(actualJsonResult); Assert.Same(data, actualJsonResult.Value); }
public void Controller_Content_WithParameterContentString_SetsResultContent() { // Arrange var controller = new TestableController(); // Act var actualContentResult = controller.Content("TestContent"); // Assert Assert.IsType<ContentResult>(actualContentResult); Assert.Equal("TestContent", actualContentResult.Content); Assert.Null(actualContentResult.ContentType); }
public void CreatedAtAction_WithParameterActionName_SetsResultActionName() { // Arrange var controller = new TestableController(); // Act var result = controller.CreatedAtAction("SampleAction", null); // Assert Assert.IsType<CreatedAtActionResult>(result); Assert.Equal(StatusCodes.Status201Created, result.StatusCode); Assert.Equal("SampleAction", result.ActionName); }
public void Controller_Content_WithParameterContentStringAndContentType_SetsResultContentAndContentType() { // Arrange var controller = new TestableController(); // Act var actualContentResult = controller.Content("TestContent", "text/plain"); // Assert Assert.IsType<ContentResult>(actualContentResult); Assert.Equal("TestContent", actualContentResult.Content); Assert.Null(actualContentResult.ContentType.Encoding); Assert.Equal("text/plain", actualContentResult.ContentType.ToString()); }
public void Controller_View_WithParameterViewNameAndViewModel_SetsResultViewNameAndViewDataModelAndSameTempData() { // Arrange var controller = new TestableController() { ViewData = new ViewDataDictionary(new EmptyModelMetadataProvider()), TempData = new TempDataDictionary(new DefaultHttpContext(), Mock.Of<ITempDataProvider>()), }; var model = new object(); // Act var actualViewResult = controller.View("CustomViewName", model); // Assert Assert.IsType<ViewResult>(actualViewResult); Assert.Equal("CustomViewName", actualViewResult.ViewName); Assert.Same(controller.ViewData, actualViewResult.ViewData); Assert.Same(controller.TempData, actualViewResult.TempData); Assert.Same(model, actualViewResult.ViewData.Model); }
public void BadRequest_SetsStatusCode() { // Arrange var controller = new TestableController(); // Act var result = controller.HttpBadRequest(); // Assert Assert.IsType<BadRequestResult>(result); Assert.Equal(StatusCodes.Status400BadRequest, result.StatusCode); }
public void CreatedAtAction_WithActionControllerAndNullRouteValue_SetsSameValue( string controllerName) { // Arrange var controller = new TestableController(); // Act var result = controller.CreatedAtAction("SampleAction", controllerName, null, null); // Assert Assert.IsType<CreatedAtActionResult>(result); Assert.Equal(StatusCodes.Status201Created, result.StatusCode); Assert.Equal("SampleAction", result.ActionName); Assert.Equal(controllerName, result.ControllerName); }
public void BadRequest_SetsStatusCodeAndValue_Object() { // Arrange var controller = new TestableController(); var obj = new object(); // Act var result = controller.HttpBadRequest(obj); // Assert Assert.IsType<BadRequestObjectResult>(result); Assert.Equal(StatusCodes.Status400BadRequest, result.StatusCode); Assert.Equal(obj, result.Value); }