public void GivenAMediaController_WhenIUploadAValidFile_ThenAValidUrlIsReturned() { var fileBytes = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 }; string fileName = "foo.jpg"; var fileBase = new Mock <HttpPostedFileBase>(); fileBase.Setup(f => f.ContentLength).Returns(fileBytes.Length); fileBase.Setup(s => s.InputStream).Returns(new MemoryStream(fileBytes)); fileBase.Setup(s => s.FileName).Returns(fileName); var controller = new MediaController(_mediaService.Object, null); controller.Url = new UrlHelper(new RequestContext(MockHttpContext.Object, new RouteData()), Routes); DateTime now = DateTime.Now; Media media = new Media { Year = now.Year, Month = now.Month, Day = now.Day, LinkKey = fileName }; _mediaService.Setup( m => m.WriteMedia(It.IsAny <string>(), It.IsAny <int>(), It.IsAny <string>(), It.IsAny <Stream>(), It.IsAny <int>())).Returns(media); SetControllerContext(controller); MockHttpContext.SetupProperty(h => h.User); controller.HttpContext.User = new UserViewModel { IsLoggedIn = true, Id = 1 }; JsonResult result = controller.Create(new NewMediaViewModel { Title = "title", Caption = "caption", Description = "description", Alternate = "alternate", Alignment = (int)Media.ValidAllignments.Left, Size = (int)Media.ValidSizes.Medium, File = fileBase.Object }); Assert.That(result, Is.TypeOf <JsonResult>()); var response = (MediaCreateJsonResponse)result.Data; Assert.That(response.url, Is.EqualTo(string.Format("{0}/{1}/{2}/{3}", now.Year, now.Month, now.Day, fileName))); }
public void GivenAMediaController_WhenIUploadAnInvalidFile_ThenAFalseSuccessCodeIsSet() { var controller = new MediaController(_mediaService.Object, null); JsonResult json = controller.Create(new NewMediaViewModel { Title = "title", Caption = "caption", Description = "description", Alternate = "alternate", Alignment = (int)Media.ValidAllignments.Left, Size = (int)Media.ValidSizes.Medium, File = null }); var response = (MediaCreateJsonResponse)json.Data; Assert.That(response.success, Is.False); }
public void GivenAMediaController_WhenIUploadAnInvalidFileWithNoBytes_ThenAFalseSuccessCodeIsSet() { var fileBase = new Mock <HttpPostedFileBase>(); fileBase.Setup(f => f.ContentLength).Returns(0); var controller = new MediaController(_mediaService.Object, null); JsonResult json = controller.Create(new NewMediaViewModel { Title = "title", Caption = "caption", Description = "description", Alternate = "alternate", Alignment = (int)Media.ValidAllignments.Left, Size = (int)Media.ValidSizes.Medium, File = fileBase.Object }); var response = (MediaCreateJsonResponse)json.Data; Assert.That(response.success, Is.False); }
public void GivenAMediaController_WhenIUploadAValidFileUsingHttpContext_ThenTheFileIsWrittenToTheDatabase() { //Assert.Fail("Write the test"); var fileBytes = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 }; int userId = 1001; var fileBase = new Mock <HttpPostedFileBase>(); fileBase.Setup(f => f.ContentLength).Returns(fileBytes.Length); fileBase.Setup(s => s.InputStream).Returns(new MemoryStream(fileBytes)); fileBase.Setup(s => s.ContentType).Returns("contentType"); const string fileName = "fileName"; fileBase.Setup(s => s.FileName).Returns(fileName); var controller = new MediaController(_mediaService.Object, null); SetControllerContext(controller); MockHttpContext.SetupProperty(h => h.User); controller.HttpContext.User = new UserViewModel { IsLoggedIn = true, Id = userId }; controller.Create(new NewMediaViewModel { Title = "title", Caption = "caption", Description = "description", Alternate = "alternate", Alignment = (int)Media.ValidAllignments.Left, Size = (int)Media.ValidSizes.Medium, File = fileBase.Object }); _mediaService.Verify( i => i.WriteMedia(fileName, userId, "contentType", It.IsAny <Stream>(), It.IsAny <int>()), Times.Once()); }