/// <summary> /// Method to add a news item to favourite DB /// </summary> /// <param name="favNews"></param> /// <returns></returns> public FavouriteNews AddFavorite(FavouriteNews favNews) { try { if (!ctx.FavouriteNews.Any(n => n.Title.Equals(favNews.Title) && n.Description.Equals(favNews.Description) && n.ImageURL.Equals(favNews.ImageURL))) { FavouriteNews news = new FavouriteNews(); news.Title = favNews.Title; news.ImageURL = favNews.ImageURL; news.Description = favNews.Description; ctx.FavouriteNews.Add(news); ctx.SaveChanges(); return(news); } else { //already exists in the favourites DB return(null); } } catch { throw new ArgumentNullException("FavouriteNews"); } }
public void TestPostFavoriteNews() { var favController = new FavouriteNewsController(_repo); FavouriteNews testNews = new FavouriteNews(); int topId = 0; testNews.Id = topId + 1; testNews.Title = "Test Title"; testNews.Description = "Test description"; testNews.ImageURL = " Test URL"; IActionResult result = favController.Post(testNews); var okResult = result as StatusCodeResult; Assert.Equal(200, okResult.StatusCode); }
public void TestDeleteFavoriteNews() { var favController = new FavouriteNewsController(_repo); FavouriteNews testNews = new FavouriteNews(); int topId = 0; testNews.Id = topId + 1; testNews.Title = "Test Title"; testNews.Description = "Test description"; testNews.ImageURL = " Test URL"; IActionResult result = favController.Post(testNews); var okResult = result as StatusCodeResult; if (okResult.StatusCode == 200) { topId = _context.FavouriteNews.Select(f => f.Id).FirstOrDefault(); result = favController.Delete(topId); Assert.Equal(200, okResult.StatusCode); } }
public void TestPostFavoriteNews_Negative() { var favController = new FavouriteNewsController(_repo); FavouriteNews testNews = new FavouriteNews(); int topId = 0; testNews.Id = topId + 1; testNews.Title = "Test Title"; testNews.Description = "Test description"; testNews.ImageURL = " Test URL"; IActionResult result = favController.Post(testNews); var okResult = result as StatusCodeResult; if (okResult.StatusCode == 200) { //save once more result = favController.Post(testNews); okResult = result as StatusCodeResult; Assert.Equal(409, okResult.StatusCode); //already exists } }
public IActionResult Post([FromBody] FavouriteNews news) { try { var result = _iRepo.AddFavorite(news); if (result != null) { //success return(new StatusCodeResult((int)HttpStatusCode.OK)); } else { //Title already exists return(new StatusCodeResult((int)HttpStatusCode.Conflict)); } } catch { //Bad request return(new StatusCodeResult((int)HttpStatusCode.BadRequest)); } }
/// <summary> /// Method to get all favourites /// </summary> /// <returns></returns> public IEnumerable <FavouriteNews> GetFavorites() { try { var favNews = new List <FavouriteNews>(); var news = ctx.FavouriteNews.ToList(); foreach (var item in news) { FavouriteNews fNews = new FavouriteNews(); fNews.Id = item.Id; fNews.Title = item.Title; fNews.ImageURL = item.ImageURL; fNews.Description = item.Description; favNews.Add(fNews); } return(favNews); } catch { throw new ArgumentNullException("FavouriteNews"); } }