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); } }
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); } }
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); } }
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); } }
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); } }
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); } }
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); } }
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); } }
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); } }
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); } }
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); } }
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); } }
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); } }
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); } }
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); } }
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); } }
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); } }