public void Can_Create_Album() { var movieRepo = new AlbumRepository(null); var underTest = new AlbumController(movieRepo); var result = underTest.Create(); Assert.IsType <ViewResult>(result); }
public async Task Create_NotFoundArtist_RedirectsToArtistIndex() { Mock <BackendProvider> mockBackend = new Mock <BackendProvider>(autoMapper); mockBackend.Setup(m => m.ArtistGetByIDAsync(It.IsAny <int>())).ReturnsAsync((Artist)null); AlbumController controller = new AlbumController(mockBackend.Object, autoMapper); RedirectToRouteResult result = (await controller.Create(1)) as RedirectToRouteResult; mockBackend.Verify(m => m.ArtistGetByIDAsync(It.Is <int>(a => a == 1)), Times.Once()); Assert.IsNotNull(result); Assert.AreEqual("Index", result.RouteValues["action"]); Assert.AreEqual("Artist", result.RouteValues["controller"]); }
public async Task Create_SuccessfulSave_RedirectsToArtistDetails() { Mock <BackendProvider> mockBackend = new Mock <BackendProvider>(autoMapper); mockBackend.Setup(m => m.AlbumAddAsync(It.IsAny <Album>())).ReturnsAsync(true); AlbumController controller = new AlbumController(mockBackend.Object, autoMapper); RedirectToRouteResult result = (await controller.Create(new AlbumViewModel { ArtistID = 1, AlbumID = 1 })) as RedirectToRouteResult; mockBackend.Verify(m => m.AlbumAddAsync(It.Is <Album>(a => a.ArtistID == 1 && a.AlbumID == 1)), Times.Once()); Assert.IsNotNull(result); Assert.AreEqual("Details", result.RouteValues["action"]); Assert.AreEqual("Artist", result.RouteValues["controller"]); Assert.AreEqual(1, result.RouteValues["artistID"]); }
public async Task Create_FoundArtist_ReturnsView() { Mock <BackendProvider> mockBackend = new Mock <BackendProvider>(autoMapper); mockBackend.Setup(m => m.ArtistGetByIDAsync(It.IsAny <int>())).ReturnsAsync(new Artist { ArtistID = 1 }); AlbumController controller = new AlbumController(mockBackend.Object, autoMapper); ViewResult result = (await controller.Create(1)) as ViewResult; AlbumViewModel viewModel = result?.Model as AlbumViewModel; mockBackend.Verify(m => m.ArtistGetByIDAsync(It.Is <int>(a => a == 1)), Times.Once()); Assert.IsNotNull(result); Assert.IsNotNull(viewModel); Assert.AreEqual(1, viewModel.ArtistID); }
public async Task Create_UnsuccessfulSave_ReturnsView() { Mock <BackendProvider> mockBackend = new Mock <BackendProvider>(autoMapper); mockBackend.Setup(m => m.AlbumAddAsync(It.IsAny <Album>())).ReturnsAsync(false); AlbumController controller = new AlbumController(mockBackend.Object, autoMapper); ViewResult result = (await controller.Create(new AlbumViewModel { ArtistID = 1, AlbumID = 1 })) as ViewResult; AlbumViewModel viewModel = result?.Model as AlbumViewModel; mockBackend.Verify(m => m.AlbumAddAsync(It.Is <Album>(a => a.ArtistID == 1 && a.AlbumID == 1)), Times.Once()); Assert.IsNotNull(result); Assert.IsNotNull(viewModel); Assert.AreEqual(1, viewModel.ArtistID); Assert.AreEqual(1, viewModel.AlbumID); }
public void TestCreatePost_GivenFilledNewNiewModel_Should_CreateAndSaveNewAlbum() { TestContext testContext = new TestContextBuilder().Build(); var albumController = new AlbumController(testContext.AlbumRepository, testContext.PhotoRepository, null); var newAlbumViewModel = new NewAlbumViewModel { Id = 1, Title = $"Title1", Description = "Description1", From = DateTime.Now, To = DateTime.Now, Place = "Place1", City = "City1", Country = "Country1", Photos = new HttpFile[0] }; var result = albumController.Create(newAlbumViewModel) as RedirectToRouteResult; Assert.NotNull(result); Assert.AreEqual(result.RouteValues["action"], "Index"); Assert.IsTrue(testContext.Context.Albums.Count() == 1); }
public void TestCreateGet_Should_ReturnNewViewModelWithDefaultPeriod() { var testContext = new TestContextBuilder().Build(); var albumController = new AlbumController(testContext.AlbumRepository, testContext.PhotoRepository, null); DateTime beforeCreate = DateTime.Now; var result = albumController.Create() as ViewResult; DateTime afterCreate = DateTime.Now; Assert.NotNull(result); Assert.IsEmpty(result.ViewName); var model = result.Model as NewAlbumViewModel; Assert.NotNull(model); Assert.IsTrue(model.From.HasValue && model.To.HasValue && model.From.Value == model.To.Value && model.From.Value.IsBetween(beforeCreate, afterCreate) && model.To.Value.IsBetween(beforeCreate, afterCreate)); }
public void Album_Create() { ISixteenBarsDb mockDb = new MockSixteenBarsDb(); AlbumController ctrl = new AlbumController(mockDb); Album newAlbum = new Album() { Id = 5, Title = "Doggystyle", ReleaseDate = new DateTime(1993, 11, 23), Artist = new Artist() { Id = 11, Name = "Snoop Doggy Dogg" } }; ctrl.Create(newAlbum); Assert.AreEqual(newAlbum.Title, mockDb.Albums.Find(5).Title, "Doggystyle not added."); Assert.AreEqual(newAlbum.ReleaseDate, mockDb.Albums.Find(5).ReleaseDate, "Doggystyle release date not 11/23/93."); Assert.AreEqual(newAlbum.Artist.Name, mockDb.Albums.Find(5).Artist.Name, "Snoop Doggy Dogg not added as artist for Doggystyle."); newAlbum = new Album() { Id = 6, Title = ".~`!@#$%^&*()_+-={}|:\"<>?[]\\;',./", ReleaseDate = new DateTime(1993, 11, 23), Artist = new Artist() { Id = 12, Name = ".~`!@#$%^&*()_+-={}|:\"<>?[]\\;',./" } }; ctrl.Create(newAlbum); Assert.AreEqual(newAlbum.Title, mockDb.Albums.Find(6).Title, ".~`!@#$%^&*()_+-={}|:\"<>?[]\\;',./ not added."); Assert.AreEqual(newAlbum.ReleaseDate, mockDb.Albums.Find(6).ReleaseDate, ".~`!@#$%^&*()_+-={}|:\"<>?[]\\;',./ release date not 11/23/93."); Assert.AreEqual(newAlbum.Artist.Name, mockDb.Albums.Find(6).Artist.Name, ".~`!@#$%^&*()_+-={}|:\"<>?[]\\;',./ not added as artist for .~`!@#$%^&*()_+-={}|:\"<>?[]\\;',./."); newAlbum = new Album() { Id = 7, Title = "The Blueprint", ReleaseDate = new DateTime(2001, 9, 11), Artist = new Artist() { Id = 1 } }; ctrl.Create(newAlbum); Assert.AreEqual(newAlbum.Title, mockDb.Albums.Find(7).Title, "The Blueprint not added."); Assert.AreEqual(newAlbum.ReleaseDate, mockDb.Albums.Find(7).ReleaseDate, "The Blueprint release date not 9/11/01."); Assert.AreEqual("Jay-Z", mockDb.Albums.Find(7).Artist.Name, "Jay-Z not added as artist for The Blueprint."); newAlbum = new Album() { Id = 8, Title = "Because the Internet", ReleaseDate = new DateTime(2013, 12, 3), Artist = new Artist() { Id = 3 } }; ctrl.Create(newAlbum); Assert.IsNull(mockDb.Albums.Find(8), "Because the Internet was created twice"); newAlbum = new Album() { Id = 9, Title = "Because the Internet", ReleaseDate = new DateTime(2013, 12, 3), Artist = new Artist() { Id = 12, Name = "Childish Gambino" } }; ctrl.Create(newAlbum); Assert.IsNull(mockDb.Albums.Find(9), "Because the Internet was created twice"); Assert.IsNull(mockDb.Artists.Find(12), "Childish Gambino was created twice"); newAlbum = new Album() { Id = 9, Title = "The Blueprint", ReleaseDate = new DateTime(2015, 5, 4), Artist = new Artist() { Id = 12, Name = "Jay-Z Imposter" } }; ctrl.Create(newAlbum); Assert.AreEqual(newAlbum.Title, mockDb.Albums.Find(9).Title, "The Blueprint from different artist not added."); Assert.AreEqual(newAlbum.ReleaseDate, mockDb.Albums.Find(9).ReleaseDate, "The Blueprint from different artist release date not 5/4/15."); Assert.AreEqual("Jay-Z Imposter", mockDb.Albums.Find(9).Artist.Name, "The Jay-Z Imposter not added as artist for The other Blueprint album."); }