public void TestListAll() { ClearNews(); var news = new[] { new News { Title = "Zaglavie", Content = "dadadada" }, new News { Title = "Asdjoqwe", Content = "asodojk" } }; using (var dbContext = new NewsDbContext()) { dbContext.News.AddRange(news); dbContext.SaveChanges(); } var httpResponse = this.httpClient.GetAsync("/api/news").Result; var returnedNews = httpResponse.Content.ReadAsAsync<List<News>>().Result; Assert.AreEqual(HttpStatusCode.OK, httpResponse.StatusCode); Assert.AreEqual(httpResponse.Content.Headers.ContentType.MediaType, "application/json"); Assert.AreEqual(2, returnedNews.Count); for (var i = 0; i < returnedNews.Count; i++) { Assert.AreEqual(returnedNews[i].Content, news[i].Content); Assert.AreEqual(returnedNews[i].Title, news[i].Title); Assert.AreEqual(returnedNews[i].PublishDate.ToString(), news[i].PublishDate.ToString()); Assert.AreEqual(returnedNews[i].UserId, news[i].UserId); } }
private static void ClearUsers() { using (var dbContext = new NewsDbContext()) { dbContext.Users.Delete(); dbContext.SaveChanges(); } }
public void TestDeleteNews() { ClearNews(); var news = new News { Title = "Zaglavie", Content = "tralala123" }; using (var dbContext = new NewsDbContext()) { dbContext.News.Add(news); dbContext.SaveChanges(); } var httpResponse = this.httpClient.DeleteAsync("/api/news/" + news.Id).Result; Assert.AreEqual(HttpStatusCode.OK, httpResponse.StatusCode); using (var dbContext = new NewsDbContext()) { var newsFromDb = dbContext.News.FirstOrDefault(); Assert.IsNull(newsFromDb); } }
public void TestModifyInvalidNews() { ClearNews(); var news = new News { Title = "Zaglavie", Content = "tralala123" }; using (var dbContext = new NewsDbContext()) { dbContext.News.Add(news); dbContext.SaveChanges(); } var postContent = new FormUrlEncodedContent(new[] { new KeyValuePair<string, string>("content", "No Title") }); var httpResponse = this.httpClient.PutAsync("/api/news/" + news.Id, postContent).Result; Assert.AreEqual(HttpStatusCode.BadRequest, httpResponse.StatusCode); using (var dbContext = new NewsDbContext()) { var newsFromDb = dbContext.News.FirstOrDefault(); Assert.IsNotNull(newsFromDb); Assert.AreEqual(news.Title, newsFromDb.Title); Assert.AreEqual(news.Content, newsFromDb.Content); } }
public void TestModifyValidNews() { ClearNews(); var news = new News { Title = "Zaglavie", Content = "tralala123" }; using (var dbContext = new NewsDbContext()) { dbContext.News.Add(news); dbContext.SaveChanges(); } var postContent = new FormUrlEncodedContent(new[] { new KeyValuePair<string, string>("title", "Changed Title"), new KeyValuePair<string, string>("content", "Changed Content") }); var httpResponse = this.httpClient.PutAsync("/api/news/" + news.Id, postContent).Result; Assert.AreEqual(HttpStatusCode.OK, httpResponse.StatusCode); var returnedNews = httpResponse.Content.ReadAsAsync<News>().Result; Assert.AreEqual(news.Id, returnedNews.Id); Assert.AreEqual("Changed Title", returnedNews.Title); Assert.AreEqual("Changed Content", returnedNews.Content); Assert.AreEqual(news.PublishDate.ToString(), returnedNews.PublishDate.ToString()); using (var dbContext = new NewsDbContext()) { var newsFromDb = dbContext.News.FirstOrDefault(); Assert.IsNotNull(newsFromDb); Assert.AreEqual(returnedNews.Id, newsFromDb.Id); Assert.AreEqual(returnedNews.Title, newsFromDb.Title); Assert.AreEqual(returnedNews.PublishDate.ToString(), newsFromDb.PublishDate.ToString()); Assert.AreEqual(returnedNews.Content, newsFromDb.Content); } }
static void Main(string[] args) { Database.SetInitializer(new MigrateDatabaseToLatestVersion<NewsDbContext, Configuration>()); var firstNewsContext = new NewsDbContext(); var secondNewsContext = new NewsDbContext(); var allNewsFirst = firstNewsContext.News.ToList(); var allNewsSecond = secondNewsContext.News.ToList(); // Print all news content foreach (var news in allNewsFirst) { Console.WriteLine(news.Content); } Console.WriteLine(); Console.WriteLine("Application Started !!!"); Console.WriteLine(); // Change news Content from first context instance foreach (var news in allNewsFirst) { Console.WriteLine("First User."); Console.WriteLine("Text from DB: " + news.Content); Console.WriteLine("Enter the correct text. [Press 'Enter' to save]"); string newNewsContent = Console.ReadLine(); news.Content = newNewsContent; firstNewsContext.SaveChanges(); Console.WriteLine("Changes successfully saved in the DB."); Console.WriteLine(); } // Change news Content from second context instance foreach (var news in allNewsSecond) { Console.WriteLine("Second User."); Console.WriteLine("Text from DB: " + news.Content); Console.WriteLine("Enter the correct text. [Press 'Enter' to save]"); string newNewsContent = Console.ReadLine(); news.Content = newNewsContent; try { secondNewsContext.SaveChanges(); } catch (DbUpdateConcurrencyException e) { Console.WriteLine("=========================="); Console.WriteLine("Conflict!!!"); Console.WriteLine("=========================="); var thirdNewsContext = new NewsDbContext(); var newsWithNewValue = thirdNewsContext.News.Find(news.Id); Console.WriteLine("Text from DB: " + newsWithNewValue.Content); Console.WriteLine("Enter the correct text. [Press 'Enter' to save]"); newNewsContent = Console.ReadLine(); news.Content = newNewsContent; thirdNewsContext.SaveChanges(); } Console.WriteLine("Changes successfully saved in the DB."); Console.WriteLine(); } }