public void List_NewsRecords_Should_Return_Correct_List() { //Arrange NewsRepository repo = new NewsRepository(new NewsContext()); var countBeforeAdding = repo.GetAll().Count(); var news = new NewsRecord() { Title = "HardShit", Content = "Hard Shit in the mix", PublishDate = new DateTime(2015, 08, 30, 14, 04, 30) }; var news2 = new NewsRecord() { Title = "SmokeShit", Content = "Smoke Shit in the mix", PublishDate = new DateTime(2015, 08, 30, 14, 04, 30) }; var listNews = new List<NewsRecord>(); listNews.Add(news); listNews.Add(news2); var newsBeforeAdd = repo.GetAll() .Select(n => n.Title) .ToList(); var fakeNewsTitles = listNews .Select(n => n.Title) .ToList(); fakeNewsTitles.AddRange(newsBeforeAdd); fakeNewsTitles.Sort(); var fakeNewsTitlesOrd = fakeNewsTitles; //Act repo.Add(news); repo.Add(news2); repo.SaveChanges(); var allNews = repo.GetAll() .OrderBy(n => n.Title) .Select(n => n.Title) .ToList(); //Assert Assert.AreEqual(2 + countBeforeAdding, repo.GetAll().Count()); CollectionAssert.AreEqual(fakeNewsTitlesOrd, allNews); }
public void Add_NewsRecord_Should_Add_NewsRecord_to_DB() { //Arrange NewsRepository repo = new NewsRepository(new NewsContext()); var news = new NewsRecord() { Title = "HardShit", Content = "Hard Shit in the mix", PublishDate = new DateTime(2015, 08, 30, 14, 04, 30) }; //Act repo.Add(news); repo.SaveChanges(); //Assert var newsFromDb = repo.FindById(news.Id); Assert.IsNotNull(newsFromDb, "NewsRecord is not added to database"); Assert.IsTrue(newsFromDb.Id != 0, "NewsRecord must have id !=0"); Assert.AreEqual(news.Title, newsFromDb.Title, "Title is not corect"); Assert.AreEqual(news.Content, newsFromDb.Content, "Content is not corect"); Assert.AreEqual(news.PublishDate, newsFromDb.PublishDate, "Date is not corect"); }
public IHttpActionResult PostNews([FromBody]NewsRecordBindingModel model) { if (model == null) { return this.BadRequest("News cannot be null!"); } if (!ModelState.IsValid) { return this.BadRequest(ModelState); } var newsRecord = new NewsRecord { Title = model.Title, Content = model.Content, PublishDate = DateTime.Now }; repo.Add(newsRecord); repo.SaveChanges(); return CreatedAtRoute("DefaultApi", new { id = newsRecord.Id }, newsRecord); // return this.Ok(newsRecord); }
public void Delete_Existing_Data_Should_Delete_The_Data() { NewsRepository repo = new NewsRepository(new NewsContext()); var news = new NewsRecord() { Title = "UnModifiedShit", Content = "See me updated", PublishDate = new DateTime(2015, 08, 30, 14, 04, 30) }; repo.Add(news); repo.SaveChanges(); var countBeforeDeletion = repo.GetAll().Count(); var newsFromDB = repo.GetAll().FirstOrDefault(n => n.Title == "UnModifiedShit"); repo.Delete(newsFromDB); repo.SaveChanges(); Assert.AreEqual(countBeforeDeletion - 1, repo.GetAll().Count()); }
public void Modify_Existing_Data_With_Incorrect_Data_Should_Throw_Exception() { NewsRepository repo = new NewsRepository(new NewsContext()); var news = new NewsRecord() { Title = "UnModifiedShit", Content = "See me updated", PublishDate = new DateTime(2015, 08, 30, 14, 04, 30) }; repo.Add(news); repo.SaveChanges(); var newsFromDB = repo.GetAll().FirstOrDefault(n => n.Title == "UnModifiedShit"); newsFromDB.Title = ""; repo.Update(news); repo.SaveChanges(); }
public void Modify_Existing_Data_Should_Update_The_Data() { NewsRepository repo = new NewsRepository(new NewsContext()); var news = new NewsRecord() { Title = "UnModifiedShit", Content = "See me updated", PublishDate = new DateTime(2015, 08, 30, 14, 04, 30) }; repo.Add(news); repo.SaveChanges(); var newsFromDB = repo.GetAll().FirstOrDefault(n => n.Title == "UnModifiedShit"); newsFromDB.Title = "ModifiedShit"; repo.Update(news); repo.SaveChanges(); var changedNews = repo.GetAll().FirstOrDefault(n => n.Title == "ModifiedShit"); Assert.AreEqual("ModifiedShit", changedNews.Title); }
public void Add_Empty_Sting_Title_News_Record_Should_Throw_Exception() { // Arrange -> prapare the objects NewsRepository repo = new NewsRepository(new NewsContext()); var invalidNewsRecord = new NewsRecord() { Title = "", Content = "Oh big Shit" }; // Act -> perform some logic repo.Add(invalidNewsRecord); repo.SaveChanges(); // Assert -> expect an exception }