public void TestGetNewsReturns200OkWhenTheNewsIsInTheDatabase() { this.businessValidation.Setup(validation => validation.IsValidGetNews(this.newsStorageMock.Object, It.IsAny <string>(), It.IsAny <DateTime>(), It.IsAny <Guid>())).Returns(Task.FromResult(true)); this.newsStorageMock.Setup(storage => storage.GetNews(It.IsAny <string>(), It.IsAny <DateTime>(), It.IsAny <Guid>())).Returns(Task.FromResult(News.ToNewsBll(Id, DefaultNews, City, DefaultUser.Nickname, DateTime.Parse(Date)))); var newsController = new NewsController(this.newsStorageMock.Object, this.inputValidation.Object, this.businessValidation.Object); var request = new HttpRequestMessage(HttpMethod.Get, GOUriBuilder.BuildAbsoluteNewsUri(Scheme, Host, Port, City, Date, Id.ToString())); request.Headers.Referrer = new Uri(GOUriBuilder.BuildAbsoluteNewsUri(Scheme, Host, Port, City, Date, Id.ToString())); newsController.ConfigureForTesting(request, "ListNews", new HttpRoute(GOUriBuilder.GetNewsTemplate)); HttpResponseMessage response = newsController.Get(City, Date, Id.ToString()).Result; HttpContent content = response.Content; string jsonContent = content.ReadAsStringAsync().Result; var actualNews = JsonConvert.DeserializeObject <NewsREST>(jsonContent); Assert.AreEqual(HttpStatusCode.OK, response.StatusCode); Assert.IsTrue(new NewsCompleteEqualityComparer().Equals(DefaultNews, NewsREST.ToNews(actualNews))); Assert.IsTrue(actualNews.Links.Any(link => string.Equals("self", link.Rel))); Assert.AreEqual(new Uri(GOUriBuilder.BuildAbsoluteNewsUri(Scheme, Host, Port, City, Date, Id.ToString())), actualNews.Links.First(link => string.Equals("self", link.Rel)).Href); Assert.IsTrue(actualNews.Links.Any(link => string.Equals("author", link.Rel))); Assert.AreEqual(new Uri(GOUriBuilder.BuildAbsoluteUserUri(Scheme, Host, Port, NewsControllerTest.DefaultUser.Nickname)), actualNews.Links.First(link => string.Equals("author", link.Rel)).Href); }
private async Task <HttpResponseMessage> ExecuteGetAsync(params object[] parameters) { var city = (string)parameters[0]; var date = (string)parameters[1]; var newsId = (string)parameters[2]; await this.ValidateGetNewsOperation(city, date, newsId); NewsREST news = NewsREST.FromNewsBll(await this.repository.GetNews(city, DateTime.Parse(date), Guid.Parse(newsId)), this.Request); HttpResponseMessage response = this.Request.CreateResponse(HttpStatusCode.OK, news); return(response); }
private async Task <HttpResponseMessage> ExecuteGetAsync(params object[] parameters) { var city = (string)parameters[0]; DateTime day = DateTime.Now; await this.ValidateGetOperation(city, day); List <NewsREST> retrievedNews = (await this.repository.ListNews(city, day)).Select( news => NewsREST.FromNewsBll(news, this.Request)).Take(10).ToList(); HttpResponseMessage response = this.Request.CreateResponse(HttpStatusCode.OK, retrievedNews); return(response); }
public static NewsClient FromNewsREST(NewsREST newsREST) { return(new NewsClient { Title = newsREST.Title, Content = newsREST.Content }); }