public void Can_Create_Album()
        {
            var movieRepo = new AlbumRepository(null);
            var underTest = new AlbumController(movieRepo);

            var result = underTest.Create();

            Assert.IsType <ViewResult>(result);
        }
Beispiel #2
0
        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"]);
        }
Beispiel #3
0
        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"]);
        }
Beispiel #4
0
        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);
        }
Beispiel #5
0
        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.");
        }