public void CallDataReviewsRepository_AllProperty() { //Arrange var expectedReview = new Review() { BarId = 2 }; var reviewsList = new List <Review> { new Review() { BarId = 1 }, expectedReview, new Review() { BarId = 3 }, }.AsQueryable(); var mockedReviewsRepo = new Mock <IEntityFrameworkRepository <Review> >(); mockedReviewsRepo.Setup(x => x.All).Returns(reviewsList); var mockedData = new Mock <IShishaTimeData>(); mockedData.Setup(x => x.Reviews).Returns(mockedReviewsRepo.Object); var service = new ReviewsService(mockedData.Object); //Act service.GetBarReviews(2); //Assert mockedReviewsRepo.Verify(x => x.All, Times.Once()); }
public async Task DeleteAsync_ShouldReturnTrueIfReviewSucceded() { //Arrange var options = InMemory.GetOptions("DeleteAsync_ShouldReturnTrueIfSucceded"); using (var context = new BOContext(options)) { var review = new Review { Description = "Great", Beer = new Beer() { Name = "Carlsberg" }, User = new User() { Name = "SuperMan" }, }; context.Reviews.Add(review); await context.SaveChangesAsync(); } using (var context = new BOContext(options)) { //Act var sut = new ReviewsService(context); var result = await sut.DeleteAsync(1); //Assert Assert.AreEqual(result, true); } }
public void CreateReviewShould_ReturnFalseIfCantCreateVoucher() { var options = new DbContextOptionsBuilder <CarRentalDbContext>() .UseInMemoryDatabase(databaseName: "CarRental_Database_CreateReview_NoVoucher") .Options; var dbContext = new CarRentalDbContext(options); var user = new ApplicationUser() { Id = Guid.NewGuid().ToString(), Email = "*****@*****.**", FirstName = "Admin", LastName = "LastAdmin" }; var vouchersServiceMock = new Mock <IVouchersService>(); vouchersServiceMock.Setup(x => x.CreateForUser(user.Email)). ReturnsAsync(false); var ordersServiceMock = new Mock <IOrdersService>(); ordersServiceMock.Setup(x => x.DeleteReviewFromOrder(It.IsAny <int>())). ReturnsAsync(true); var reviewsService = new ReviewsService(dbContext, vouchersServiceMock.Object, this.mapper, ordersServiceMock.Object); var random = new Random(); var reviewRating = random.Next(1, 5); var reviewComment = Guid.NewGuid().ToString(); var result = reviewsService.CreateReview(Guid.NewGuid().ToString(), reviewRating, reviewComment).GetAwaiter().GetResult(); Assert.False(result); }
public async Task <IActionResult> DeleteReviewForTape([FromRoute] int friendId, [FromRoute] int tapeId) { var review = await ReviewsService.GetSingle(friendId, tapeId); ReviewsService.Delete(review); return(NoContent()); }
public async Task GetAllAsync_ShouldReturnIEnumerableReviewDTOAsync() { //Arrange var options = InMemory.GetOptions("GetAllAsync_ShouldReturnIEnumerableReviewDTOAsync"); using (var context = new BOContext(options)) { var review = new Review { Description = "Great", Beer = new Beer() { Name = "Carlsberg" }, User = new User() { Name = "SuperMan" } }; context.Reviews.Add(review); await context.SaveChangesAsync(); } using (var context = new BOContext(options)) { //Act var sut = new ReviewsService(context); var result = await sut.GetAllAsync(); //Assert Assert.IsInstanceOfType(result, typeof(IEnumerable <ReviewDTO>)); } }
public async void UpdateReviewOp() { DbContextOptions <LoveThemBackAPIDbContext> options = new DbContextOptionsBuilder <LoveThemBackAPIDbContext>().UseInMemoryDatabase("UpdateReview") .Options; using (LoveThemBackAPIDbContext context = new LoveThemBackAPIDbContext(options)) { Review Review = new Review(); Review.PetID = 1; Review.UserID = 2; Review.Impression = "Snooky"; var ServicesCreate = new ReviewsService(context); await ServicesCreate.AddReview(Review); Review newReview = new Review(); newReview.PetID = 1; newReview.UserID = 2; newReview.Impression = "Updates"; ServicesCreate.UpdateReview(2, 1, newReview); var getReview = ServicesCreate.GetById(1); string impression; foreach (var item in getReview.Value) { impression = item.Impression; Assert.Equal("Updates", impression); } } }
public async Task AddReviewAsyncWorksCorrectly() { var webtoons = new List <Webtoon>(); webtoons.Add(new Webtoon { Id = "test", TitleNumber = "123" }); var mockWebtoonsRepo = new Mock <IWebtoonsRepository>(); mockWebtoonsRepo.Setup(x => x.GetWebtoonByTitleNumber("123")).Returns(webtoons.First()); var reviews = new List <Review>(); var mockReviewsRepo = new Mock <IReviewsRepository>(); mockReviewsRepo.Setup(x => x.All()).Returns(reviews.AsQueryable()); mockReviewsRepo.Setup(x => x.AddAsync(It.IsAny <Review>())).Callback((Review review) => reviews.Add(review)); var service = new ReviewsService(mockReviewsRepo.Object, mockWebtoonsRepo.Object); await service.AddReviewAsync(new Web.ViewModels.Reviews.LeaveReviewInputModel() { UserId = "gosho", UserReview = "This should work", WebtoonTitleNumber = "123" }); Assert.Single(reviews); Assert.Equal("gosho", reviews.First().ReviewAuthorId); Assert.Equal("This should work", reviews.First().ReviewInfo); }
public async Task EditReviewShouldWorkCorrectly(string description, ReadingProgress progress, bool thisEdition) { var options = new DbContextOptionsBuilder <AlexandriaDbContext>() .UseInMemoryDatabase(Guid.NewGuid().ToString()) .Options; var db = new AlexandriaDbContext(options); await db.AddAsync( new Review { Description = "description1", AuthorId = "author1", BookId = 1, ReadingProgress = ReadingProgress.Unknown, ThisEdition = false, }); await db.SaveChangesAsync(); var reviewsService = new ReviewsService(db); await reviewsService.EditReviewAsync(1, description, progress, thisEdition); var result = await db.Reviews.FirstOrDefaultAsync(); Assert.NotNull(result.ModifiedOn); Assert.Equal(description, result.Description); Assert.Equal(progress, result.ReadingProgress); Assert.Equal(thisEdition, result.ThisEdition); }
public async Task GetAllReviewsByAuthorIdShouldReturnAllReviews() { var options = new DbContextOptionsBuilder <AlexandriaDbContext>() .UseInMemoryDatabase(Guid.NewGuid().ToString()) .Options; var db = new AlexandriaDbContext(options); await db.AddRangeAsync( new Review { Description = "description1", AuthorId = "author1", }, new Review { Description = "description1", AuthorId = "author1", }, new Review { Description = "description1", AuthorId = "author1", }); await db.SaveChangesAsync(); var reviewsService = new ReviewsService(db); var result = await reviewsService.GetAllReviewsByAuthorIdAsync <ReviewTestModel>("author1"); Assert.Equal(3, result.Count()); }
public async Task GetAuthorIdByIdShouldReturnNullIfDeleted() { var options = new DbContextOptionsBuilder <AlexandriaDbContext>() .UseInMemoryDatabase(Guid.NewGuid().ToString()) .Options; var db = new AlexandriaDbContext(options); await db.AddRangeAsync( new Review { Description = "description1", AuthorId = "author1", BookId = 1, IsDeleted = true, }, new Review { Description = "description2", AuthorId = "author1", BookId = 1, ParentId = 1, }); await db.SaveChangesAsync(); var reviewsService = new ReviewsService(db); var result = await reviewsService.GetAuthorIdByIdAsync(1); Assert.Null(result); }
public async Task DoesReviewIdExistShouldReturnFalseIfNotFound() { var options = new DbContextOptionsBuilder <AlexandriaDbContext>() .UseInMemoryDatabase(Guid.NewGuid().ToString()) .Options; var db = new AlexandriaDbContext(options); await db.AddRangeAsync( new Review { Description = "description1", AuthorId = "author1", BookId = 1, }, new Review { Description = "description2", AuthorId = "author1", BookId = 1, ParentId = 1, }); await db.SaveChangesAsync(); var reviewsService = new ReviewsService(db); var result = await reviewsService.DoesReviewIdExistAsync(5); Assert.False(result); }
public async Task AreReviewsAboutSameBookShouldReturnFalseIfDeleted() { var options = new DbContextOptionsBuilder <AlexandriaDbContext>() .UseInMemoryDatabase(Guid.NewGuid().ToString()) .Options; var db = new AlexandriaDbContext(options); await db.AddRangeAsync( new Review { Description = "description1", AuthorId = "author1", BookId = 1, ReadingProgress = ReadingProgress.Finished, IsDeleted = true, }, new Review { Description = "description2", AuthorId = "author2", BookId = 1, ReadingProgress = ReadingProgress.Finished, }); await db.SaveChangesAsync(); var reviewsService = new ReviewsService(db); var result = await reviewsService.AreReviewsAboutSameBookAsync(1, 1); Assert.False(result); }
public async Task GetChildrenReviewsToReviewsAsyncShouldNotReturnReviewsWithOtherBookId() { var options = new DbContextOptionsBuilder <AlexandriaDbContext>() .UseInMemoryDatabase(Guid.NewGuid().ToString()) .Options; var db = new AlexandriaDbContext(options); await db.AddRangeAsync( new Review { Description = "description1", AuthorId = "author1", BookId = 1, }, new Review { Description = "description2", AuthorId = "author1", BookId = 1, }, new Review { Description = "description3", AuthorId = "author1", BookId = 1, ParentId = 1, }, new Review { Description = "description4", AuthorId = "author1", BookId = 2, ParentId = 2, }, new Review { Description = "description4", AuthorId = "author1", BookId = 1, ParentId = 3, }, new Review { Description = "description4", AuthorId = "author1", BookId = 1, ParentId = 4, }); await db.SaveChangesAsync(); var reviewsService = new ReviewsService(db); var ids = new List <int> { 1, 2 }; var result = await reviewsService.GetChildrenReviewsToReviewsAsync <ReviewTestModel>(ids, 1); Assert.Equal(2, result.Count()); }
public void ReturnsCorrectResult_WhenThereIsOneReviewWithPassedId() { //Arrange var expectedReview = new Review() { BarId = 2 }; var reviewsList = new List <Review> { new Review() { BarId = 1 }, expectedReview, new Review() { BarId = 3 }, }.AsQueryable(); var mockedReviewsRepo = new Mock <IEntityFrameworkRepository <Review> >(); mockedReviewsRepo.Setup(x => x.All).Returns(reviewsList); var mockedData = new Mock <IShishaTimeData>(); mockedData.Setup(x => x.Reviews).Returns(mockedReviewsRepo.Object); var service = new ReviewsService(mockedData.Object); //Act var result = service.GetBarReviews(2); //Assert Assert.IsTrue(result.Count() == 1); Assert.AreEqual(expectedReview, result.FirstOrDefault()); }
public void CallBar_ReviewCollection() { //Arrange var mockedReviewsCollection = new Mock <ICollection <Review> >(); mockedReviewsCollection.Setup(x => x.Add(It.IsAny <Review>())).Verifiable(); var mockedBar = new Mock <ShishaBar>(); mockedBar.Setup(x => x.Reviews).Returns(mockedReviewsCollection.Object); var mockedBarsRepo = new Mock <IEntityFrameworkRepository <ShishaBar> >(); mockedBarsRepo.Setup(x => x.GetById(It.IsAny <int>())).Returns(mockedBar.Object); var mockedData = new Mock <IShishaTimeData>(); mockedData.Setup(x => x.Bars).Returns(mockedBarsRepo.Object); mockedData.Setup(x => x.SaveChanges()).Verifiable(); var mockedReview = new Mock <Review>(); var service = new ReviewsService(mockedData.Object); //Act service.AddReview(1, mockedReview.Object); //Assert mockedBar.Verify(x => x.Reviews, Times.Once()); }
public async Task DeleteReviewShouldSetIsDeletedAndDeletedOn() { var options = new DbContextOptionsBuilder <AlexandriaDbContext>() .UseInMemoryDatabase(Guid.NewGuid().ToString()) .Options; var db = new AlexandriaDbContext(options); await db.AddRangeAsync( new Review { Description = "description1", AuthorId = "author1", BookId = 1, ReadingProgress = ReadingProgress.Finished, }, new Review { Description = "description2", AuthorId = "author2", BookId = 1, ReadingProgress = ReadingProgress.Finished, }); await db.SaveChangesAsync(); var reviewsService = new ReviewsService(db); await reviewsService.DeleteReviewByIdAsync(1); var result = await db.Reviews.FirstOrDefaultAsync(); Assert.NotNull(result.DeletedOn); Assert.True(result.IsDeleted); }
public async void GetAllReview() { DbContextOptions <LoveThemBackAPIDbContext> options = new DbContextOptionsBuilder <LoveThemBackAPIDbContext>().UseInMemoryDatabase("AllReview") .Options; using (LoveThemBackAPIDbContext context = new LoveThemBackAPIDbContext(options)) { var Review = new Review(); Review.PetID = 1; Review.UserID = 2; Review.Impression = "Snooky"; var Review2 = new Review(); Review2.PetID = 2; Review2.UserID = 2; Review2.Impression = "Snooky"; var ServicesCreate = new ReviewsService(context); await ServicesCreate.AddReview(Review); await ServicesCreate.AddReview(Review2); //READ// var getReview = ServicesCreate.GetAll(); Assert.Equal(2, getReview.Value.Count()); } }
public async Task GetReviewByIdShouldReturnCorrectReview() { var options = new DbContextOptionsBuilder <AlexandriaDbContext>() .UseInMemoryDatabase(Guid.NewGuid().ToString()) .Options; var db = new AlexandriaDbContext(options); await db.AddRangeAsync( new Review { Description = "description1", AuthorId = "author1", BookId = 1, }, new Review { Description = "description2", AuthorId = "author1", BookId = 1, ParentId = 1, }); await db.SaveChangesAsync(); var reviewsService = new ReviewsService(db); var result = await reviewsService.GetReviewByIdAsync <ReviewTestModel>(2); Assert.Equal("description2", result.Description); Assert.NotNull(result.ParentId); }
public async Task CheckGettingReviewAsync() { ApplicationDbContext db = GetDb(); var repository = new EfDeletableEntityRepository <Review>(db); var service = new ReviewsService(repository); var review = new Review() { Id = Guid.NewGuid().ToString(), ClientId = "1", AppointmentId = "1", Content = "test content", Points = 5, ProcedureId = "1", }; await repository.AddAsync(review); await repository.SaveChangesAsync(); var reviewResult = await service.GetReviewAsync <TestReviewModel>("1"); Assert.Equal(review.Content, reviewResult.Content); }
public async Task ThrowReviewNotFoundException_WhenReviewIDIsIncorrect(int reviewId, bool flag) { // Arrange var movieRepoStub = new Mock <IRepository <Movie> >(); var reviewRepoMock = new Mock <IRepository <Review> >(); var reviewRatingsStub = new Mock <IRepository <ReviewRatings> >(); var reviewMock = new Review() { ID = 1, IsDeleted = flag, Text = "Text", }; var allReviews = new List <Review>() { reviewMock }.AsQueryable().BuildMock().Object; reviewRepoMock.Setup(m => m.All()).Returns(allReviews); var reviewServices = new ReviewsService(reviewRepoMock.Object, movieRepoStub.Object, reviewRatingsStub.Object); // Act and Assert await Assert.ThrowsExceptionAsync <ReviewNotFoundException>(async() => await reviewServices.RateReviewAsync(reviewId, 9D, "randomUserId")); }
public void AddReviewAsyncThrowsArgumentExceptionWhenUserReviewExists() { var webtoons = new List <Webtoon>(); webtoons.Add(new Webtoon { Id = "test", TitleNumber = "123" }); var mockWebtoonsRepo = new Mock <IWebtoonsRepository>(); mockWebtoonsRepo.Setup(x => x.GetWebtoonByTitleNumber("123")).Returns(webtoons.First()); var reviews = new List <Review>(); var mockReviewsRepo = new Mock <IReviewsRepository>(); mockReviewsRepo.Setup(x => x.All()).Returns(reviews.AsQueryable()); reviews.Add(new Review() { ReviewAuthorId = "gosho", WebtoonId = "test" }); var service = new ReviewsService(mockReviewsRepo.Object, mockWebtoonsRepo.Object); Assert.ThrowsAsync <ArgumentException>(() => service.AddReviewAsync(new Web.ViewModels.Reviews.LeaveReviewInputModel() { UserId = "gosho", WebtoonTitleNumber = "123" })); }
public ActionResult DeleteItem(string Id) { string ControllerName = this.ControllerContext.RouteData.Values["controller"].ToString(); Reviews model = new Reviews() { Id = Int32.Parse(MyModels.Decode(Id, API.Models.Settings.SecretId + ControllerName).ToString()) }; try { if (model.Id > 0) { model.CreatedBy = int.Parse(HttpContext.Request.Headers["Id"]); model.ModifiedBy = int.Parse(HttpContext.Request.Headers["Id"]); ReviewsService.DeleteItem(model); TempData["MessageSuccess"] = "Xóa thành công"; return(Json(new MsgSuccess())); } else { TempData["MessageError"] = "Xóa Không thành công"; return(Json(new MsgError())); } } catch { TempData["MessageSuccess"] = "Xóa không thành công"; return(Json(new MsgError())); } }
public IActionResult Index([FromQuery] SearchReviews dto) { int TotalItems = 0; string ControllerName = this.ControllerContext.RouteData.Values["controller"].ToString(); ReviewsModel data = new ReviewsModel() { SearchData = dto }; data.ListItems = ReviewsService.GetListPagination(data.SearchData, API.Models.Settings.SecretId + ControllerName); if (data.ListItems != null && data.ListItems.Count() > 0) { TotalItems = data.ListItems[0].TotalRows; } data.Pagination = new Areas.Admin.Models.Partial.PartialPagination() { CurrentPage = data.SearchData.CurrentPage, ItemsPerPage = data.SearchData.ItemsPerPage, TotalItems = TotalItems, QueryString = Request.QueryString.ToString() }; return(View(data)); }
public ActionResult UpdateFeatured([FromQuery] string Ids, Boolean Featured) { string ControllerName = this.ControllerContext.RouteData.Values["controller"].ToString() + "_" + HttpContext.Request.Headers["UserName"]; Reviews item = new Reviews() { Id = Int32.Parse(MyModels.Decode(Ids, API.Models.Settings.SecretId + ControllerName).ToString()), Featured = Featured }; try { if (item.Id > 0) { item.CreatedBy = int.Parse(HttpContext.Request.Headers["Id"]); item.ModifiedBy = int.Parse(HttpContext.Request.Headers["Id"]); dynamic UpdateFeatured = ReviewsService.UpdateFeatured(item); TempData["MessageSuccess"] = "Cập nhật Featured thành công"; return(Json(new MsgSuccess())); } else { TempData["MessageError"] = "Cập nhật Featured Không thành công"; return(Json(new MsgError())); } } catch { TempData["MessageSuccess"] = "Cập nhật Featured không thành công"; return(Json(new MsgError())); } }
public async Task UpdateAsync_ShouldReturnNullIfReviewNonExistantAsync() { //Arrange var options = InMemory.GetOptions("UpdateAsync_ShouldReturnNullIfReviewNonExistantAsync"); using (var context = new BOContext(options)) { } using (var context = new BOContext(options)) { var reviewDTO = new ReviewDTO { Description = "Great", Beer = new BeerDTO() { Name = "Carlsberg" }, User = new UserDTO() { Name = "SuperMan" } }; //Act var sut = new ReviewsService(context); var result = await sut.UpdateAsync(1, reviewDTO); //Assert Assert.AreEqual(result, null); } }
public IActionResult SaveItem(string Id = null, int CatId = 0, int IdCoQuan = 1) { ReviewsModel data = new ReviewsModel(); string ControllerName = this.ControllerContext.RouteData.Values["controller"].ToString(); int IdDC = Int32.Parse(MyModels.Decode(Id, API.Models.Settings.SecretId + ControllerName).ToString()); data.SearchData = new SearchReviews() { CurrentPage = 0, ItemsPerPage = 10, Keyword = "" }; if (IdDC == 0) { data.Item = new Reviews() { ReviewDate = DateTime.Now, ReviewDateShow = DateTime.Now.ToString("dd/MM/yyyy"), DisplayOder = 1, Status = true }; } else { data.Item = ReviewsService.GetItem(IdDC, API.Models.Settings.SecretId + ControllerName); } data.ListStart = ReviewsService.GetListStart(); return(View(data)); }
public void DeleteReviewShould_SuccesfullyDeleteReviewFromOrder() { var options = new DbContextOptionsBuilder <CarRentalDbContext>() .UseInMemoryDatabase(databaseName: "CarRental_Database_DeleteReview") .Options; var dbContext = new CarRentalDbContext(options); var user = new ApplicationUser() { Id = Guid.NewGuid().ToString(), Email = "*****@*****.**", FirstName = "Admin", LastName = "LastAdmin" }; var vouchersServiceMock = new Mock <IVouchersService>(); vouchersServiceMock.Setup(x => x.CreateForUser(user.Email)). ReturnsAsync(true); var order = new Order { Id = Guid.NewGuid().ToString(), ApplicationUserId = user.Id, CarId = 1, PickUpLocationId = 1, ReturnLocationId = 1, Price = 1, }; dbContext.Orders.Add(order); var random = new Random(); var reviewRating = random.Next(1, 5); var reviewComment = Guid.NewGuid().ToString(); order.Review = new Review { Comment = reviewComment, Rating = reviewRating, Id = 1, CarId = 1 }; dbContext.SaveChanges(); var ordersServiceMock = new Mock <IOrdersService>(); ordersServiceMock.Setup(x => x.DeleteReviewFromOrder(order.Review.Id)). ReturnsAsync(true); var reviewsService = new ReviewsService(dbContext, vouchersServiceMock.Object, this.mapper, ordersServiceMock.Object); Assert.True(order.Review != null); reviewsService.DeleteReview(order.Review.Id); var result = dbContext.Orders.FirstOrDefault(x => x.Id == order.Id).Review == null; Assert.True(result); }
public ActionResult SaveItem(Reviews model) { string ControllerName = this.ControllerContext.RouteData.Values["controller"].ToString(); int IdDC = Int32.Parse(MyModels.Decode(model.Ids, API.Models.Settings.SecretId + ControllerName).ToString()); ReviewsModel data = new ReviewsModel() { Item = model }; if (ModelState.IsValid) { if (model.Id == IdDC) { model.CreatedBy = int.Parse(HttpContext.Request.Headers["Id"]); model.ModifiedBy = int.Parse(HttpContext.Request.Headers["Id"]); ReviewsService.SaveItem(model); if (model.Id > 0) { TempData["MessageSuccess"] = "Cập nhật thành công"; } else { TempData["MessageSuccess"] = "Thêm mới thành công"; } return(RedirectToAction("Index", new { })); } } else { data.ListStart = ReviewsService.GetListStart(); } return(View(data)); }
public async Task ThrowArgumentException_WhenParametersAreIncorrect(int reviewId) { // Arrange var movieRepoStub = new Mock <IRepository <Movie> >(); var reviewRepoMock = new Mock <IRepository <Review> >(); var reviewRatingsStub = new Mock <IRepository <ReviewRatings> >(); var reviewMock = new Review() { ID = 1, IsDeleted = false, Text = "Mnogo qk Unit Test!" }; var allReviews = new List <Review>() { reviewMock }.AsQueryable().BuildMock().Object; reviewRepoMock.Setup(m => m.All()).Returns(allReviews); var reviewServices = new ReviewsService(reviewRepoMock.Object, movieRepoStub.Object, reviewRatingsStub.Object); // Act and Assert await Assert.ThrowsExceptionAsync <ArgumentException>(async() => await reviewServices.DeleteReviewAsync(reviewId)); }
public void IsUserCreator_ReturnsCorrectResult() { // Arrange var context = this.ServiceProvider.GetRequiredService <WmipDbContext>(); var review1 = new Review { Id = 1, Title = "r1", UserId = "1" }; var review2 = new Review { Id = 2, Title = "r2", UserId = "2" }; var review3 = new Review { Id = 3, Title = "r3", UserId = "2" }; context.Reviews.AddRange(review1, review2, review3); context.SaveChanges(); var reviewsService = new ReviewsService(context); // Act var notCreator = reviewsService.IsUserCreator("1", 2); var creator = reviewsService.IsUserCreator("1", 1); //Assert Assert.False(notCreator); Assert.True(creator); }