public void PostNewsItemWithValidDataShouldSucceed() { var news = new List<NewsItem> { new NewsItem { Title = "FirstNews", Content = "FirstNewsContent", PublishDate = DateTime.Now, UserId = "2", User = new ApplicationUser() {UserName = "******" } }, new NewsItem { Title = "SecondNews", Content = "SecondNewsContent", PublishDate = DateTime.Now.AddDays(-3), UserId = "2", User = new ApplicationUser() { UserName = "******" } }, new NewsItem { Title = "ThirdNews", Content = "ThirdNewsContent", PublishDate = DateTime.Now.AddDays(-10), UserId = "2", User = new ApplicationUser() {UserName = "******"} } }; var dataMock = new Mock<INewsData>(); dataMock.Setup(r => r.News).Returns(this.GetMockedNewsItem(news)); var controller = new NewsController(dataMock.Object); this.SetupController(controller, "NewsController"); var newNewsItem = new NewsItemOutputModel() { Title = "ThirdNews", Content = "ThirdNewsContent", PublishDate = DateTime.Now.AddDays(8) }; var result = controller.Post(newNewsItem).ExecuteAsync(new CancellationToken()).Result; Assert.AreEqual(HttpStatusCode.Created, result.StatusCode); Assert.AreEqual(newNewsItem.Title, news.Last().Title); Assert.AreEqual(newNewsItem.Content, news.Last().Content); Assert.IsNotNull(news.Last().PublishDate); }
public void PutNewsItemWithValidDataShouldSucceed() { var news = new List<NewsItem> { new NewsItem { Id = 9, Title = "FirstNews", Content = "FirstNewsContent", PublishDate = DateTime.Now, UserId = "2", User = new ApplicationUser() {UserName = "******" } }, new NewsItem { Id = 3, Title = "SecondNews", Content = "SecondNewsContent", PublishDate = DateTime.Now.AddDays(-3), UserId = "2", User = new ApplicationUser() { UserName = "******" } }, new NewsItem { Id = 2, Title = "ThirdNews", Content = "ThirdNewsContent", PublishDate = DateTime.Now.AddDays(-10), UserId = "2", User = new ApplicationUser() {UserName = "******"} } }; var dataMock = new Mock<INewsData>(); dataMock.Setup(r => r.News).Returns(this.GetMockedNewsItem(news)); var controller = new NewsController(dataMock.Object); this.SetupController(controller, "NewsController"); var existingNewsItem = news.Where(n => n.Title == "FirstNews").Select(NewsItemOutputModel.Project).First(); existingNewsItem.Title = "FirstNewsUpdatet"; var id = existingNewsItem.Id; var result = controller.Put(id, existingNewsItem).ExecuteAsync(new CancellationToken()).Result; var itemAfterUpdate = news.First(n => n.Id == id); Assert.AreEqual(HttpStatusCode.OK, result.StatusCode); Assert.AreEqual(itemAfterUpdate.Title, "FirstNewsUpdatet"); }
public void TestingGetAllmethodShouldSucceed() { var news = new List<NewsItem> { new NewsItem { Title = "FirstNews", Content = "FirstNewsContent", PublishDate = DateTime.Now, UserId = "2", User = new ApplicationUser() {UserName = "******" } }, new NewsItem { Title = "SecondNews", Content = "SecondNewsContent", PublishDate = DateTime.Now.AddDays(-3), UserId = "2", User = new ApplicationUser() { UserName = "******" } }, new NewsItem { Title = "ThirdNews", Content = "ThirdNewsContent", PublishDate = DateTime.Now.AddDays(-10), UserId = "2", User = new ApplicationUser() {UserName = "******"} } }; var dataMock = new Mock<INewsData>(); dataMock.Setup(r => r.News).Returns(this.GetMockedNewsItem(news)); var controller = new NewsController(dataMock.Object); this.SetupController(controller, "NewsController"); var result = controller.Get().ExecuteAsync(new CancellationToken()).Result; Assert.AreEqual(HttpStatusCode.OK, result.StatusCode); var content = result.Content.ReadAsStringAsync().Result; var resultNews = JsonConvert.DeserializeObject<List<NewsItemOutputModel>>(content); var exprectedNewsItems = news.Select(NewsItemOutputModel.Project); for (int i = 0; i < resultNews.Count; i++) { Assert.AreEqual(news[i].Id, resultNews[i].Id); Assert.AreEqual(news[i].Title, resultNews[i].Title); Assert.AreEqual(news[i].Content, resultNews[i].Content); Assert.AreEqual(news[i].PublishDate, resultNews[i].PublishDate); } }