Пример #1
0
        public void IsCategoryAlreadyPresent_ShouldThrowArgumentExceptionAndCorrectMessage_WhenCategoryAlreadyInDb()
        {
            var options = TestUtils.GetOptions(nameof(IsCategoryAlreadyPresent_ShouldThrowArgumentExceptionAndCorrectMessage_WhenCategoryAlreadyInDb));

            using (var arrangeContext = new MovInfoContext(options))
            {
                var mockBusinessValidator = new Mock <IBusinessLogicValidator>();
                var service = new CategoryServices(arrangeContext, mockBusinessValidator.Object);

                var addedCategory = service.AddCategoryAsync(
                    TestSamples.exampleCategory.Title,
                    TestSamples.allowedRoles);

                arrangeContext.SaveChanges();
            }

            using (var assertContext = new MovInfoContext(options))
            {
                var mockWrapUserManager = new Mock <IWrapUserManager>();
                var mockHttpContext     = new Mock <IHttpContextAccessor>();

                var sut = new BusinessLogicValidator(mockHttpContext.Object, mockWrapUserManager.Object);

                var ex = Assert.ThrowsException <ArgumentException>(() => sut.IsCategoryAlreadyPresent(assertContext, TestSamples.exampleCategory.Title));
                Assert.AreEqual(ex.Message, BusinessLogicValidatorMessages.CategoryAlreadyPresent);
            }
        }
Пример #2
0
        public void EditCategory_Correctly()
        {
            var options = TestUtils.GetOptions(nameof(EditCategory_Correctly));

            using (var arrangeContext = new MovInfoContext(options))
            {
                var mockBusinessValidator = new Mock <IBusinessLogicValidator>();
                var sut = new CategoryServices(arrangeContext, mockBusinessValidator.Object);

                var addedCategory = sut.AddCategoryAsync(
                    TestSamples.exampleCategory.Title,
                    TestSamples.allowedRoles);

                var editedCategory = sut.EditCategoryAsync(
                    TestSamples.exampleCategory.Id,
                    TestSamples.exampleCategory.Title,
                    new List <long> {
                    1, 2
                },
                    TestSamples.allowedRoles);

                arrangeContext.SaveChanges();
            }

            using (var assertContext = new MovInfoContext(options))
            {
                Assert.AreEqual(assertContext.Categories.First().Id, TestSamples.exampleCategory.Id);
                Assert.AreEqual(assertContext.Categories.First().Title, TestSamples.exampleCategory.Title);
                Assert.AreEqual(assertContext.Categories.Include(x => x.MovieCategories).First().MovieCategories.Count, 2);
            }
        }
Пример #3
0
        public void DoesAllActorsExist_ShouldThrowArgumentExceptionAndCorrectMessage_WhenNoSuchActorsInDb()
        {
            var options = TestUtils.GetOptions(nameof(DoesCategoryExist_ShouldThrowArgumentExceptionAndCorrectMessage_WhenNoSuchCategoryInDb));


            using (var arrangeContext = new MovInfoContext(options))
            {
                var mockBusinessValidator = new Mock <IBusinessLogicValidator>();
                var service = new ActorServices(arrangeContext, mockBusinessValidator.Object);

                var addedActor = service.AddActorAsync(
                    TestSamples.exampleActor.FirstName,
                    TestSamples.exampleActor.LastName,
                    TestSamples.exampleActor.Bio,
                    TestSamples.exampleActor.ProfileImageName,
                    TestSamples.allowedRoles);

                arrangeContext.SaveChanges();
            }


            using (var assertContext = new MovInfoContext(options))
            {
                var mockWrapUserManager = new Mock <IWrapUserManager>();
                var mockHttpContext     = new Mock <IHttpContextAccessor>();
                var actorsIds           = new long[] { 1, 2 };

                var sut = new BusinessLogicValidator(mockHttpContext.Object, mockWrapUserManager.Object);

                var ex = Assert.ThrowsException <ArgumentException>(() => sut.DoAllActorsExist(assertContext, actorsIds));
                Assert.AreEqual(ex.Message, BusinessLogicValidatorMessages.OneOrMoreActorsMissing);
            }
        }
Пример #4
0
        public void GetActorMoviesCorrectly_ShouldReturnListOfMovies()
        {
            var options = TestUtils.GetOptions(nameof(GetActorMoviesCorrectly_ShouldReturnListOfMovies));

            using (var arrangeContext = new MovInfoContext(options))
            {
                arrangeContext.Actors.Add(TestSamples.exampleActor);
                arrangeContext.Movies.Add(TestSamples.exampleMovie);

                TestSamples.exampleActor.MoviesActors.Add(TestSamples.exampleMoviesActors);

                arrangeContext.SaveChanges();
            }

            using (var assertContext = new MovInfoContext(options))
            {
                var mockBusinessValidator = new Mock <IBusinessLogicValidator>();

                var sut = new ActorServices(assertContext, mockBusinessValidator.Object);

                var result = sut.GetActorMoviesAsync(1).Result;

                Assert.IsInstanceOfType(result[0], typeof(Movie));
                Assert.AreEqual(result.First().Id, 1);
            }
        }
Пример #5
0
        public void DeleteActorCorrectly()
        {
            var options = TestUtils.GetOptions(nameof(DeleteActorCorrectly));

            using (var arrangeContext = new MovInfoContext(options))
            {
                var mockBusinessValidator = new Mock <IBusinessLogicValidator>();
                var sut = new ActorServices(arrangeContext, mockBusinessValidator.Object);

                var addedActor = sut.AddActorAsync(
                    TestSamples.exampleActor.FirstName,
                    TestSamples.exampleActor.LastName,
                    TestSamples.exampleActor.Bio,
                    TestSamples.exampleActor.ProfileImageName,
                    TestSamples.allowedRoles);

                var deletedActor = sut.DeleteActorAsync(
                    TestSamples.exampleActor.Id, TestSamples.allowedRoles);

                arrangeContext.SaveChanges();
            }

            using (var assertContext = new MovInfoContext(options))
            {
                Assert.AreEqual(assertContext.Actors.Count(), 0);
            }
        }
Пример #6
0
        public void CorrectlyReturnDeleted_Actor()
        {
            var options = TestUtils.GetOptions(nameof(CorrectlyReturnDeleted_Actor));

            using (var arrangeContext = new MovInfoContext(options))
            {
                var mockBusinessValidator = new Mock <IBusinessLogicValidator>();
                var sut = new ActorServices(arrangeContext, mockBusinessValidator.Object);

                var addedActor = sut.AddActorAsync(
                    TestSamples.exampleActor.FirstName,
                    TestSamples.exampleActor.LastName,
                    TestSamples.exampleActor.Bio,
                    TestSamples.exampleActor.ProfileImageName,
                    TestSamples.allowedRoles);

                arrangeContext.SaveChanges();
            }

            using (var assertContext = new MovInfoContext(options))
            {
                var mockBusinessValidator = new Mock <IBusinessLogicValidator>();
                var sut = new ActorServices(assertContext, mockBusinessValidator.Object);

                var deletedActor = sut.DeleteActorAsync(
                    TestSamples.exampleActor.Id, TestSamples.allowedRoles).Result;

                Assert.IsInstanceOfType(deletedActor, typeof(Actor));
                Assert.AreEqual(deletedActor.Id, TestSamples.exampleActor.Id);
                Assert.AreEqual(deletedActor.FirstName, TestSamples.exampleActor.FirstName);
                Assert.AreEqual(deletedActor.LastName, TestSamples.exampleActor.LastName);
                Assert.AreEqual(deletedActor.Bio, TestSamples.exampleActor.Bio);
                Assert.AreEqual(deletedActor.ProfileImageName, TestSamples.exampleActor.ProfileImageName);
            }
        }
Пример #7
0
        public void GetCategoryMoviesCorrectly()
        {
            var options = TestUtils.GetOptions(nameof(GetCategoryMoviesCorrectly));

            using (var arrangeContext = new MovInfoContext(options))
            {
                arrangeContext.Categories.Add(TestSamples.exampleCategory);
                arrangeContext.Movies.Add(TestSamples.exampleMovie);

                TestSamples.exampleCategory.MovieCategories.Add(TestSamples.exampleMoviesCategories);

                arrangeContext.SaveChanges();
            }

            using (var assertContext = new MovInfoContext(options))
            {
                var mockBusinessValidator = new Mock <IBusinessLogicValidator>();

                var sut = new CategoryServices(assertContext, mockBusinessValidator.Object);

                var result = sut.GetCategoryMoviesAsync(1).Result;

                Assert.IsInstanceOfType(result.First(), typeof(Movie));
                Assert.AreEqual(result.First().Id, 1);
            }
        }
Пример #8
0
        public void ShowActorInfoCorrectly()
        {
            var options = TestUtils.GetOptions(nameof(ShowActorInfoCorrectly));

            using (var arrangeContext = new MovInfoContext(options))
            {
                arrangeContext.Actors.Add(TestSamples.exampleActor);
                arrangeContext.Movies.Add(TestSamples.exampleMovie);

                TestSamples.exampleActor.MoviesActors.Add(TestSamples.exampleMoviesActors);

                arrangeContext.SaveChanges();
            }

            using (var assertContext = new MovInfoContext(options))
            {
                var mockBusinessValidator = new Mock <IBusinessLogicValidator>();

                var sut = new ActorServices(assertContext, mockBusinessValidator.Object);

                var result = sut.ShowActorInfoAsync(1);

                Assert.AreEqual(assertContext.Actors.FirstOrDefault().FirstName, TestSamples.exampleActor.FirstName);
                Assert.AreEqual(assertContext.Actors.FirstOrDefault().LastName, TestSamples.exampleActor.LastName);
                Assert.AreEqual(assertContext.Actors.FirstOrDefault().Bio, TestSamples.exampleActor.Bio);
            }
        }
Пример #9
0
        public void CorrectlyReturnDeleted_Category()
        {
            var options = TestUtils.GetOptions(nameof(CorrectlyReturnDeleted_Category));

            using (var arrangeContext = new MovInfoContext(options))
            {
                var mockBusinessValidator = new Mock <IBusinessLogicValidator>();
                var sut = new CategoryServices(arrangeContext, mockBusinessValidator.Object);

                var addedCategory = sut.AddCategoryAsync(TestSamples.exampleCategory.Title, TestSamples.allowedRoles);

                arrangeContext.SaveChanges();
            }

            using (var assertContext = new MovInfoContext(options))
            {
                var mockBusinessValidator = new Mock <IBusinessLogicValidator>();
                var sut = new CategoryServices(assertContext, mockBusinessValidator.Object);

                var deletedCategory = sut.DeleteCategoryAsync(
                    TestSamples.exampleCategory.Id, TestSamples.allowedRoles).Result;

                Assert.IsInstanceOfType(deletedCategory, typeof(Category));
                Assert.AreEqual(deletedCategory.Id, TestSamples.exampleCategory.Id);
                Assert.AreEqual(deletedCategory.Title, TestSamples.exampleCategory.Title);
            }
        }
Пример #10
0
        public void DoesMovieExist_ShouldThrowArgumentExceptionAndCorrectMessage_WhenNoSuchMovieInDb()
        {
            var options = TestUtils.GetOptions(nameof(DoesMovieExist_ShouldThrowArgumentExceptionAndCorrectMessage_WhenNoSuchMovieInDb));

            using (var assertContext = new MovInfoContext(options))
            {
                var mockWrapUserManager = new Mock <IWrapUserManager>();
                var mockHttpContext     = new Mock <IHttpContextAccessor>();

                var sut = new BusinessLogicValidator(mockHttpContext.Object, mockWrapUserManager.Object);

                var ex = Assert.ThrowsException <ArgumentException>(() => sut.DoesMovieExist(assertContext, TestSamples.exampleMovie.Id));
                Assert.AreEqual(ex.Message, BusinessLogicValidatorMessages.NoSuchMovie);
            }
        }
Пример #11
0
        public void AddActor_Should_Succeed()
        {
            var options = TestUtils.GetOptions(nameof(AddActor_Should_Succeed));

            using (var arrangeContext = new MovInfoContext(options))
            {
                arrangeContext.Actors.Add(TestSamples.exampleActor);
                arrangeContext.Movies.Add(TestSamples.exampleMovie);

                TestSamples.exampleActor.MoviesActors.Add(TestSamples.exampleMoviesActors);

                arrangeContext.SaveChanges();
            }

            using (var assertContext = new MovInfoContext(options))
            {
                var mockBusinessValidator = new Mock <IBusinessLogicValidator>();
                var sut = new ActorServices(assertContext, mockBusinessValidator.Object);
                Assert.AreEqual(assertContext.Actors.Count(), 1);
            }
        }
Пример #12
0
        public void DeleteCategoryCorrectly()
        {
            var options = TestUtils.GetOptions(nameof(DeleteCategoryCorrectly));

            using (var arrangeContext = new MovInfoContext(options))
            {
                var mockBusinessValidator = new Mock <IBusinessLogicValidator>();
                var sut = new CategoryServices(arrangeContext, mockBusinessValidator.Object);

                var addedCategory = sut.AddCategoryAsync(TestSamples.exampleCategory.Title, TestSamples.allowedRoles);

                var deletedCategory = sut.DeleteCategoryAsync(TestSamples.exampleCategory.Id, TestSamples.allowedRoles).Result;

                arrangeContext.SaveChanges();
            }

            using (var assertContext = new MovInfoContext(options))
            {
                Assert.AreEqual(assertContext.Categories.Count(), 0);
            }
        }
Пример #13
0
        public void FindActorsAsync_Should_ReturnCorrectActors()
        {
            var options = TestUtils.GetOptions(nameof(FindActorsAsync_Should_ReturnCorrectActors));

            using (var arrangeContext = new MovInfoContext(options))
            {
                arrangeContext.Actors.Add(TestSamples.exampleActor);
                arrangeContext.Actors.Add(TestSamples.exampleActor2);

                arrangeContext.SaveChanges();
            }

            using (var assertContext = new MovInfoContext(options))
            {
                var mockBusinessValidator = new Mock <IBusinessLogicValidator>();
                var sut = new ActorServices(assertContext, mockBusinessValidator.Object);

                var result = sut.FindActorsAsync("ExampleFirstName", "2");
                Assert.AreEqual(result.Result.First().FirstName, "ExampleFirstName");
                Assert.AreEqual(result.Result.Count, 1);
            }
        }
Пример #14
0
        public void IsMovieAlreadyPresent_ShouldThrowArgumentExceptionAndCorrectMessage_WhenMovieAlreadyInDb()
        {
            var options = TestUtils.GetOptions(nameof(IsMovieAlreadyPresent_ShouldThrowArgumentExceptionAndCorrectMessage_WhenMovieAlreadyInDb));

            using (var arrangeContext = new MovInfoContext(options))
            {
                var mockBusinessValidator = new Mock <IBusinessLogicValidator>();
                var service = new MovieServices(arrangeContext, mockBusinessValidator.Object);

                var addedMovie = service.AddMovieAsync(
                    TestSamples.exampleMovie.Name,
                    TestSamples.exampleMovie.DateCreated,
                    new List <long> {
                    1, 2, 3
                },
                    new List <long> {
                    1, 2, 3
                },
                    TestSamples.exampleMovie.Trailer,
                    TestSamples.exampleMovie.Bio,
                    TestSamples.exampleMovie.MainImageName,
                    TestSamples.allowedRoles);

                arrangeContext.SaveChanges();
            }

            using (var assertContext = new MovInfoContext(options))
            {
                var mockWrapUserManager = new Mock <IWrapUserManager>();
                var mockHttpContext     = new Mock <IHttpContextAccessor>();

                var sut = new BusinessLogicValidator(mockHttpContext.Object, mockWrapUserManager.Object);

                var ex = Assert.ThrowsException <ArgumentException>(() => sut.IsMovieAlreadyPresent(assertContext, TestSamples.exampleMovie.Name, TestSamples.exampleMovie.DateCreated.Year));
                Assert.AreEqual(ex.Message, BusinessLogicValidatorMessages.MovieAlreadyPresent);
            }
        }
Пример #15
0
        public void AddActor_Should_AddCorrect_Actor()
        {
            var options = TestUtils.GetOptions(nameof(AddActor_Should_AddCorrect_Actor));

            using (var arrangeContext = new MovInfoContext(options))
            {
                arrangeContext.Actors.Add(TestSamples.exampleActor);
                arrangeContext.Movies.Add(TestSamples.exampleMovie);

                TestSamples.exampleActor.MoviesActors.Add(TestSamples.exampleMoviesActors);

                arrangeContext.SaveChanges();
            }

            using (var assertContext = new MovInfoContext(options))
            {
                Assert.IsInstanceOfType(assertContext.Actors.FirstOrDefault(), typeof(Actor));
                Assert.AreEqual(assertContext.Actors.FirstOrDefault().FirstName, TestSamples.exampleActor.FirstName);
                Assert.AreEqual(assertContext.Actors.FirstOrDefault().LastName, TestSamples.exampleActor.LastName);
                Assert.AreEqual(assertContext.Actors.FirstOrDefault().Bio, TestSamples.exampleActor.Bio);
                Assert.AreEqual(assertContext.Actors.FirstOrDefault().ProfileImageName, TestSamples.exampleActor.ProfileImageName);
                Assert.AreEqual(assertContext.MoviesActors.FirstOrDefault().MovieId, 1);
            }
        }
Пример #16
0
        public void EditActor_Should_CorrectlyEdit_Actor()
        {
            var options = TestUtils.GetOptions(nameof(EditActor_Should_CorrectlyEdit_Actor));

            using (var arrangeContext = new MovInfoContext(options))
            {
                var mockBusinessValidator = new Mock <IBusinessLogicValidator>();
                var sut = new ActorServices(arrangeContext, mockBusinessValidator.Object);

                var addedActor = sut.AddActorAsync(
                    TestSamples.exampleActor.FirstName,
                    TestSamples.exampleActor.LastName,
                    TestSamples.exampleActor.Bio,
                    TestSamples.exampleActor.ProfileImageName,
                    TestSamples.allowedRoles);

                var editedActor = sut.EditActorAsync(
                    TestSamples.exampleActor.Id,
                    TestSamples.exampleActor.FirstName,
                    TestSamples.exampleActor.LastName,
                    TestSamples.exampleActor.Bio,
                    TestSamples.exampleActor.ProfileImageName,
                    TestSamples.allowedRoles);

                arrangeContext.SaveChanges();
            }

            using (var assertContext = new MovInfoContext(options))
            {
                Assert.AreEqual(assertContext.Actors.First().Id, TestSamples.exampleActor.Id);
                Assert.AreEqual(assertContext.Actors.First().FirstName, TestSamples.exampleActor2.FirstName);
                Assert.AreEqual(assertContext.Actors.First().LastName, TestSamples.exampleActor2.LastName);
                Assert.AreEqual(assertContext.Actors.First().Bio, TestSamples.exampleActor2.Bio);
                Assert.AreEqual(assertContext.Actors.First().ProfileImageName, TestSamples.exampleActor2.ProfileImageName);
            }
        }
Пример #17
0
        public void FindCategoriesAsync_Should_ReturnCorrectCategories()
        {
            var options = TestUtils.GetOptions(nameof(FindCategoriesAsync_Should_ReturnCorrectCategories));

            using (var arrangeContext = new MovInfoContext(options))
            {
                arrangeContext.Categories.Add(TestSamples.exampleCategory);
                arrangeContext.Categories.Add(TestSamples.exampleCategory2);

                arrangeContext.SaveChanges();
            }

            using (var assertContext = new MovInfoContext(options))
            {
                var mockBusinessValidator = new Mock <IBusinessLogicValidator>();
                var sut = new CategoryServices(assertContext, mockBusinessValidator.Object);

                var result = sut.FindCategoriesAsync("ExampleTitle", "2");

                Assert.IsInstanceOfType(result.Result.First(), typeof(Category));
                Assert.AreEqual(result.Result.First().Title, "ExampleTitle");
                Assert.AreEqual(result.Result.Count, 1);
            }
        }