public async void GetAll_Success() { // Arrange var dbContext = _fixture.Context; var mapper = MapperMock.Get(); var user = NewDatas.NewUser(); var product = NewDatas.NewProduct(); var rating = NewDatas.NewRating(); rating.User = user; rating.Product = product; dbContext.Products.Add(product); await dbContext.SaveChangesAsync(); dbContext.Users.Add(user); await dbContext.SaveChangesAsync(); dbContext.Ratings.Add(rating); await dbContext.SaveChangesAsync(); var ratingsService = new RatingService(dbContext); var ratingsController = new RatingsController(ratingsService, mapper); // Act var result = await ratingsController.GetRatings(); // Assert var ratingResult = Assert.IsType <OkObjectResult>(result.Result); Assert.NotEmpty(ratingResult.Value as IEnumerable <Rating>); }
public void ReturnRating_WhenValidUser_CallsUpdateRating() { var updatedRating = new Rating { Id = 1, UserId = 1, Description = "Test", Code = "Test" }; var result = new Rating { Id = updatedRating.Id }; var userHelper = A.Fake <IUserHelper>(); A.CallTo(() => userHelper.MatchingUsers(A <HttpContext> .Ignored, updatedRating.UserId)).Returns(true); var ratingRepository = A.Fake <IRatingRepository>(); A.CallTo(() => ratingRepository.RatingExists(updatedRating.Id)).Returns(true); A.CallTo(() => ratingRepository.GetRating(updatedRating.Id)).Returns(result); var validator = new RatingValidator(); var controller = new RatingsController(ratingRepository, null, userHelper, validator); var response = controller.UpdateRating(updatedRating); A.CallTo(() => ratingRepository.Update(updatedRating)).MustHaveHappened(); Assert.AreEqual(result.Id, response.Value.Id); }
public void ReturnRating_OnCallToAddRating() { var newRating = new Rating { Description = "Test", Code = "Test" }; var result = new Rating { UserId = newRating.UserId }; var userHelper = A.Fake <IUserHelper>(); var ratingRepository = A.Fake <IRatingRepository>(); A.CallTo(() => ratingRepository.GetRating(A <int> .Ignored)).Returns(result); var validator = new RatingValidator(); var controller = new RatingsController(ratingRepository, null, userHelper, validator); var response = controller.AddRating(newRating); A.CallTo(() => ratingRepository.Add(newRating)).MustHaveHappened(); Assert.AreEqual(result.UserId, response.Value.UserId); }
public void ReturnRating_WhenValidUser_CallsDeleteRating() { var id = 1; var result = new Rating { Id = id, UserId = 1 }; var ratingRepository = A.Fake <IRatingRepository>(); A.CallTo(() => ratingRepository.RatingExists(id)).Returns(true); A.CallTo(() => ratingRepository.GetRating(id)).Returns(result); var userHelper = A.Fake <IUserHelper>(); A.CallTo(() => userHelper.MatchingUsers(A <HttpContext> .Ignored, result.UserId)).Returns(true); var controller = new RatingsController(ratingRepository, null, userHelper, null); var response = controller.DeleteRating(id); A.CallTo(() => ratingRepository.Delete(id)).MustHaveHappened(); Assert.AreEqual(result.Id, response.Value.Id); }
public void ReturnBadRequest_WhenRatingDoesNotExist_OnCallToUpdateRating() { var updatedRating = new Rating { Id = 1, UserId = 1, Description = "Test", Code = "Test" }; var userHelper = A.Fake <IUserHelper>(); A.CallTo(() => userHelper.MatchingUsers(A <HttpContext> .Ignored, updatedRating.UserId)).Returns(true); var ratingRepository = A.Fake <IRatingRepository>(); A.CallTo(() => ratingRepository.RatingExists(updatedRating.Id)).Returns(false); var validator = new RatingValidator(); var controller = new RatingsController(ratingRepository, null, userHelper, validator); var response = controller.UpdateRating(updatedRating); Assert.AreEqual((int)HttpStatusCode.BadRequest, ((BadRequestObjectResult)response.Result).StatusCode); Assert.AreEqual($"Rating with Id {updatedRating.Id} does not exist.", ((BadRequestObjectResult)response.Result).Value); }
public async void TestCreate_InvalidRating_ShouldFail() { // Arrange RatingsController controller = new RatingsController(_context); InitializeRating(); rating.GameId = 99; try { // Act var result = await controller.Create(rating.GameId, Convert.ToInt16(rating.Rate)); // Assert Assert.IsType <ViewResult>(result); ViewResult viewResult = (ViewResult)result; Assert.NotNull(viewResult.ViewData.ModelState); Assert.NotEmpty(viewResult.ViewData.ModelState.Keys); foreach (string item in viewResult.ViewData.ModelState.Keys) { Assert.Equal("", item); } } catch (Exception ex) { Assert.Equal("System.NullReferenceException", ex.GetType().ToString()); } }
public async void TestEdit_InvalidRating_ShouldFail(string value) { // Arrange RatingsController controller = new RatingsController(_context); int userId = int.Parse(value); // Act Rating replayRating = await _context.Rating .FirstOrDefaultAsync(a => a.UserId == userId); replayRating.GameId = 0; try { var result = await controller.Edit(replayRating.GameId, Convert.ToInt16(rating.Rate)); // Assert Assert.IsType <ViewResult>(result); ViewResult viewResult = (ViewResult)result; Assert.NotNull(viewResult.ViewData.ModelState); Assert.NotEmpty(viewResult.ViewData.ModelState.Keys); foreach (string item in viewResult.ViewData.ModelState.Keys) { Assert.Equal("", item); } } catch (Exception ex) { Assert.Equal("System.NullReferenceException", ex.GetType().ToString()); } }
public void ReturnUnauthorized_WhenInvalidUser_CallsDeleteRating() { var id = 1; var result = new Rating { Id = id, UserId = 1 }; var ratingRepository = A.Fake <IRatingRepository>(); A.CallTo(() => ratingRepository.RatingExists(id)).Returns(true); A.CallTo(() => ratingRepository.GetRating(id)).Returns(result); var userHelper = A.Fake <IUserHelper>(); A.CallTo(() => userHelper.MatchingUsers(A <HttpContext> .Ignored, result.UserId)).Returns(false); var controller = new RatingsController(ratingRepository, null, userHelper, null); var response = controller.DeleteRating(id); Assert.AreEqual((int)HttpStatusCode.Unauthorized, ((UnauthorizedResult)response.Result).StatusCode); }
public async Task Create_ShouldReturnOK() { using (var context = InMemomryDbContext.Create()) { var movieRepository = new MovieRepository(context); var userRepository = new UserRepository(context); var ratingRepository = new MovieRatingRepository(context); using (var controller = new RatingsController(movieRepository, userRepository, ratingRepository)) { var model = new CreateMovieRatingModel { UserName = "******", Rating = 3.5 }; var movieId = (await movieRepository.FirstAsyc()).Id; var actionResult = await controller.CreateAsync(movieId, model) as OkObjectResult; var rating = actionResult.Value as CreateMovieRatingResult; Assert.NotNull(actionResult); Assert.Equal(movieId, rating.MovieId); Assert.Equal(model.Rating, rating.Rating); } } }
private static RatingsController MockControllerCtor() { var mockRepository = new Mock <IBeersRepository>(); mockRepository.Setup(x => x.GetBeer(42)) .Returns(Task.FromResult( new List <BeerModel> { new BeerModel { Id = 42, Name = "TestBeer1", Description = "Descrption1" } })); var mockJson = new Mock <IJsonUtility>(); mockJson.Setup(x => x.Read("database.json", "Data")) .Returns("[{\"Id\":1,\"UserRatings\":{\"Username\":\"Testuser2\",\"Rating\":4,\"Comments\":\"TestCommebts\"},\"BeerId\":42}]"); //mockJson.Setup(x => x.Write("database.json", "Data", "[{\"Id\":1,\"UserRatings\":{\"Username\":\"Testuser2\",\"Rating\":4,\"Comments\":\"TestCommebts\"},\"BeerId\":42}]")) // .Returns(null); // Arrange RatingsController controller = new RatingsController(mockRepository.Object, mockJson.Object); return(controller); }
public async Task Post_Success(int rateValue, string comment) { // Arrange var dbContext = _fixture.Context; var mapper = MapperMock.Get(); var user = NewDatas.NewUser(); var product = NewDatas.NewProduct(); var rating = NewDatas.NewRating(); rating.User = user; rating.Product = product; dbContext.Products.Add(product); await dbContext.SaveChangesAsync(); dbContext.Users.Add(user); await dbContext.SaveChangesAsync(); dbContext.Ratings.Add(rating); await dbContext.SaveChangesAsync(); var ratingsService = new RatingService(dbContext); var ratingsController = new RatingsController(ratingsService, mapper); // Act var result = await ratingsController.PostRating(user.Id, product.productId, rateValue, comment); // Assert var ratingResult = Assert.IsType <CreatedAtActionResult>(result.Result); Assert.NotNull(ratingResult.Value as Rating); }
public void Edit_ErrorsWhenIdNotProvided() { var controller = new RatingsController(); var response = controller.Details(null); response.Should().BeOfType <HttpStatusCodeResult>().Which.StatusCode.Should().Be((int)HttpStatusCode.BadRequest); }
public void TestLocalsControllerCreateView() { var controller = new RatingsController(); ActionResult result = controller.Create() as ViewResult; //Assert.AreEqual("Create", result.ViewName); Assert.IsInstanceOfType(result, typeof(ViewResult)); }
public void TestRatingsControllerCreateName() { var controller = new RatingsController(); ActionResult result = controller.Create() as ViewResultBase; string r = (result as ViewResult).ViewName; Assert.AreEqual("Create", r); }
public void ReturnGetRating_WhenRatingExists_OnCallToGetRating() { var id = 1; var ratingRepository = A.Fake <IRatingRepository>(); A.CallTo(() => ratingRepository.RatingExists(id)).Returns(true); var controller = new RatingsController(ratingRepository, null, null, null); var response = controller.GetRating(id); A.CallTo(() => ratingRepository.GetRating(id)).MustHaveHappened(); }
public async Task Create_ShouldReturnBadRequest() { var controller = new RatingsController(Mock.Of <IMovieRepository>(), Mock.Of <IUserRepository>(), Mock.Of <IMovieRatingRepository>()); controller.ModelState.AddModelError("Rating", "The Rating field must ben between 0 and 5."); var result = await controller.CreateAsync(1, new CreateMovieRatingModel()) as BadRequestObjectResult; Assert.NotNull(result); }
public void TestMethodGet() { var context = new TestBankDBContext(); context.Ratings.Add(GetSingleItem()); var controller = new RatingsController(context); var result = controller.GetRating(1) as OkNegotiatedContentResult <Rating>; Assert.IsNotNull(result); Assert.AreEqual(1, result.Content.Id); }
public void ReturnGetUserRatings_WhenUserExists_OnCallToGetUserRatings() { var userId = 1; var ratingRepository = A.Fake <IRatingRepository>(); var userRepository = A.Fake <IUserRepository>(); A.CallTo(() => userRepository.UserExists(userId)).Returns(true); var controller = new RatingsController(ratingRepository, userRepository, null, null); var response = controller.GetUserRatings(userId); A.CallTo(() => ratingRepository.GetUserRatings(userId)).MustHaveHappened(); }
public void ReturnBadRequest_WhenRatingDoesNotExist_OnCallToGetRating() { var id = 1; var ratingRepository = A.Fake <IRatingRepository>(); A.CallTo(() => ratingRepository.RatingExists(id)).Returns(false); var controller = new RatingsController(ratingRepository, null, null, null); var response = controller.GetRating(id); Assert.AreEqual((int)HttpStatusCode.BadRequest, ((BadRequestObjectResult)response.Result).StatusCode); Assert.AreEqual($"Rating with Id {id} does not exist.", ((BadRequestObjectResult)response.Result).Value); }
public void TestMethodGetSave() { var controller = new RatingsController(new TestBankDBContext()); var item = GetSingleItem(); var result = controller.PostRating(item) as CreatedAtRouteNegotiatedContentResult <Rating>; Assert.IsNotNull(result); Assert.AreEqual(result.RouteName, "DefaultApi"); Assert.AreEqual(result.RouteValues["id"], result.Content.Id); Assert.AreEqual(result.Content.Description, item.Description); }
public void ReturnBadRequest_WhenUserDoesNotExist_OnCallToGetUserRatings() { var userId = 1; var ratingRepository = A.Fake <IRatingRepository>(); var userRepository = A.Fake <IUserRepository>(); A.CallTo(() => userRepository.UserExists(userId)).Returns(false); var controller = new RatingsController(ratingRepository, userRepository, null, null); var response = controller.GetUserRatings(userId); Assert.AreEqual((int)HttpStatusCode.BadRequest, ((BadRequestObjectResult)response.Result).StatusCode); Assert.AreEqual($"User with Id {userId} does not exist.", ((BadRequestObjectResult)response.Result).Value); }
public void Index_AnItemList_WithAListOfAllRatings() { // Arrange var user1 = new User() { User_ID = 1, User_Name = "One" }; var userData = new List <User> { user1 }; var game1 = new Game() { Game_ID = 1, Game_Name = "One" }; var gameData = new List <Game> { new Game() { Game_ID = 1, Game_Name = "One" }, new Game() { Game_ID = 2, Game_Name = "Two" }, }; var ratingData = new List <Rating> { new Rating() { User_Rating_ID = 1, User_ID = 1, User_Rating = 1, Game_ID = 1, User = user1, Game = game1 }, new Rating() { User_Rating_ID = 2, User_ID = 1, User_Rating = 1, Game_ID = 2 } }; var mockdb = new Mock <PlayerMatcherEntitiesExtended>(); mockdb.Setup(db => db.Users).Returns(Mock.CreateMockSet(userData).Object); mockdb.Setup(db => db.Games).Returns(Mock.CreateMockSet(gameData).Object); mockdb.Setup(db => db.Ratings).Returns(Mock.CreateMockSet(ratingData).Object); var controller = new RatingsController(mockdb.Object); // Act var view = controller.Index() as ViewResult; var ratings = (List <Rating>)view.Model; // Assert CollectionAssert.AllItemsAreInstancesOfType(ratings, typeof(Rating)); Assert.AreEqual(2, ratings.Count()); }
public void AddNotExistingRating_ReturnNoContent() { var options = new DbContextOptionsBuilder <DataContext>() .UseInMemoryDatabase(databaseName: "AddRatingsDataBase") .Options; var context = new DataContext(options); RatingsController ratingsController = new RatingsController(context); string jwt = UserManagementMicroservice.JWT.CreateJWT(2, 1); var result = ratingsController.PostRating(new RequestRating() { MovieId = 1, Score = 4 }, jwt); Assert.IsType <NoContentResult>(result); }
public void Details_ErrorsWhenIdNotFound() { var data = new List <Rating>(); var mockSet = Mock.CreateMockSet(data); mockSet.Setup(m => m.Find(It.IsAny <object[]>())) .Returns <object[]>(ids => data.FirstOrDefault(d => d.User_Rating_ID == (int)ids[0])); var mockdb = new Mock <PlayerMatcherEntitiesExtended>(); mockdb.Setup(db => db.Ratings).Returns(mockSet.Object); var controller = new RatingsController(mockdb.Object); var response = controller.Details(1) as HttpStatusCodeResult; response.Should().BeOfType <HttpNotFoundResult>().Which.StatusCode.Should().Be((int)HttpStatusCode.NotFound); }
public void GetRating_ReturnNotFoundIfRatingIsNone() { //Arrange Mock <IRepository <Movie> > mockIRepository = new Mock <IRepository <Movie> >(); Mock <IRatingRepository> mockRatingRepository = new Mock <IRatingRepository>(); mockRatingRepository.Setup(r => r.GetRating(It.IsAny <int>(), It.IsAny <int>())) .Returns((int userId, int movieId) => ratings.Where(x => x.movieId == movieId && x.userId == userId).SingleOrDefault()); var controller = new RatingsController(mockRatingRepository.Object, mockIRepository.Object); //Act var result = controller.GetRating(23, 1).Result; //Assert Assert.IsInstanceOf <NotFoundResult>(result); }
public void GetRating_GetRatingByUserIdAndMovieId() { //Arrange Mock <IRepository <Movie> > mockIRepository = new Mock <IRepository <Movie> >(); Mock <IRatingRepository> mockRatingRepository = new Mock <IRatingRepository>(); mockRatingRepository.Setup(r => r.GetRating(It.IsAny <int>(), It.IsAny <int>())) .Returns((int userId, int movieId) => ratings.Where(x => x.movieId == movieId && x.userId == userId).SingleOrDefault()); var controller = new RatingsController(mockRatingRepository.Object, mockIRepository.Object); //Act Rating rating = (Rating)controller.GetRating(1, 1).Value; //Assert Assert.AreEqual(ratings[0], rating); }
public async void TestDelete_InvalidRating_ShouldFail(string value) { // Arrange RatingsController controller = new RatingsController(_context); int gameId = int.Parse(value); try { // Act var result = await controller.DeleteConfirmed(gameId); } // Assert catch (Exception ex) { Assert.Equal("System.ArgumentException", ex.GetType().ToString()); } }
public async Task Update_ShouldReturnBadRequest() { using (var context = InMemomryDbContext.Create()) { var movieRepository = new MovieRepository(context); var userRepository = new UserRepository(context); var ratingRepository = new MovieRatingRepository(context); using (var controller = new RatingsController(movieRepository, userRepository, ratingRepository)) { controller.ModelState.AddModelError("Rating", "The Rating field must be between 0 and 5."); var result = await controller.UpdateAsync(1, 1, new UpdateMovieRatingModel()) as BadRequestObjectResult; Assert.NotNull(result); } } }
public void GetRatings_ReturnNotFoundWhenMovieHasNoRatings() { //Arrange Mock <IRepository <Movie> > mockIRepository = new Mock <IRepository <Movie> >(); Mock <IRatingRepository> mockRatingRepository = new Mock <IRatingRepository>(); mockRatingRepository.Setup(r => r.GetRatings(It.IsAny <int>(), It.IsAny <int>(), It.IsAny <int>())) .Returns((int id, int page, int pageSize) => ratings.Where(x => x.movieId == id)); var controller = new RatingsController(mockRatingRepository.Object, mockIRepository.Object); //Act var result = controller.GetRatings(5, 1, 1).Result; //Assert Assert.IsInstanceOf <NotFoundResult>(result); }
public void GetRatings_GetRatingsByMovieId() { //Arrange Mock <IRepository <Movie> > mockIRepository = new Mock <IRepository <Movie> >(); Mock <IRatingRepository> mockRatingRepository = new Mock <IRatingRepository>(); mockRatingRepository.Setup(r => r.GetRatings(It.IsAny <int>(), It.IsAny <int>(), It.IsAny <int>())) .Returns((int id, int page, int pageSize) => ratings.Where(x => x.movieId == id)); var controller = new RatingsController(mockRatingRepository.Object, mockIRepository.Object); //Act List <Rating> allRatings = (List <Rating>)controller.GetRatings(1, 1, 1).Value; //Assert Assert.AreEqual(3, allRatings.Count()); Assert.AreEqual(ratings.Where(rat => rat.movieId == 1), allRatings); }