コード例 #1
0
        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);
        }
コード例 #2
0
        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");
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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());
        }
コード例 #5
0
        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();
        }
コード例 #6
0
        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);
        }
コード例 #7
0
        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
        }