public async Task <HttpResponseMessage> RateBeer(int id, [FromBody] UserRating rating) { try { if (rating == null || rating.Rating < 0 || rating.Rating > 5) { return(Request.CreateResponse(HttpStatusCode.BadRequest, "Rating is Invalid")); } //validate Id var result = await WebRequestService.GetRequest($"{api}/beers/{id}"); if (result.Item1 == HttpStatusCode.OK && !string.IsNullOrEmpty(result.Item2)) { JArray list = JArray.Parse(result.Item2); if (list.Count < 1) { return(Request.CreateResponse(HttpStatusCode.BadGateway, "Beer doesn't exists")); } PunkService.SaveRating(id, rating); return(Request.CreateResponse(HttpStatusCode.OK, "Ratings saved")); } else { return(Request.CreateResponse(HttpStatusCode.BadRequest, "Invalid Beer Id")); } } catch (Exception ex) { return(Request.CreateResponse(HttpStatusCode.InternalServerError, ex.Message)); } }
public void TestSaveRatingSuccess() { //clear db files first if (File.Exists(db)) { File.Delete(db); } //ensure rating is created PunkService.SaveRating(1, new UserRating { Comments = "Test Comment", Username = "******", Rating = 3m }); Assert.True(File.Exists(db)); }