public async Task CheckConnectedAsync_ReturnWelcomeMessage_WhenReturnTrue() { // Arrange m_MockArticlesService.Setup(service => service.IsConnectedAsync()).ReturnsAsync((true, null)); var welcomeMessage = "Hello!"; // Act var result = await m_Browser.Get("/", with => { with.HttpRequest(); }); // Assert m_MockArticlesService.Verify(service => service.IsConnectedAsync(), Times.Once); Assert.Equal(HttpStatusCode.OK, result.StatusCode); Assert.Equal(Converter.ToJson(welcomeMessage), result.Body.AsString()); }
public async Task CheckConnectedAsync_ReturnInvalidApiKeyMessage_WhenReturnFalse() { // Arrange var invalidKeyMessage = "Invalid ApiKey"; m_MockArticlesService.Setup(service => service.IsConnectedAsync()).ReturnsAsync((false, invalidKeyMessage)); // Act var result = await m_Browser.Get("/", with => { with.HttpRequest(); }); // Assert m_MockArticlesService.Verify(service => service.IsConnectedAsync(), Times.Once); Assert.Equal(HttpStatusCode.OK, result.StatusCode); Assert.Equal(Converter.ToJson(invalidKeyMessage), result.Body.AsString()); }
public async Task GetArticlesAsync_ReturnArticles_WhenGetArticlesSource() { // Arrange var articlesSource = ARTICLE_SOURCES.ToList(); m_MockArticlesService.Setup(service => service.GetArticlesAsync(SECTION)).ReturnsAsync(articlesSource); var expectArticles = Converter.ToJson(articlesSource.Select(articleSource => new ArticleView(articleSource)).ToList()); // Act var result = await m_Browser.Get($"/list/{SECTION}", with => { with.HttpRequest(); }); // Assert m_MockArticlesService.Verify(service => service.GetArticlesAsync(SECTION), Times.Once); Assert.Equal(HttpStatusCode.OK, result.StatusCode); Assert.Equal(expectArticles, result.Body.AsString()); }
public async Task GetArticlesGroupsByDateAsync_ReturnArticles_WhenGetArticlesSourceGroupsByDate() { // Arrange var articleGroups = ARTICLE_SOURCES.GroupBy(sourceArticle => sourceArticle.UpdatedDate.Date) .Select(group => (group.Key.ToString(DATE_FORMAT), group.Count())).ToList(); m_MockArticlesService.Setup(service => service.GetArticlesGroupsByDateAsync(SECTION, DATE_FORMAT)).ReturnsAsync(articleGroups); var expectArticleGroups = Converter.ToJson(articleGroups.Select(group => new ArticleGroupByDateView(group.Item1, group.Item2)).ToList()); // Act var result = await m_Browser.Get($"/group/{SECTION}", with => { with.HttpRequest(); }); // Assert m_MockArticlesService.Verify(service => service.GetArticlesGroupsByDateAsync(SECTION, DATE_FORMAT), Times.Once); Assert.Equal(HttpStatusCode.OK, result.StatusCode); Assert.Equal(expectArticleGroups, result.Body.AsString()); }
public async Task GetArticlesByShortUrlAsync_ReturnArticles_WhenGetArticlesSourceByShortUrl() { // Arrange var articleSource = ARTICLE_SOURCES.First(); var shortUrl = articleSource.ShortUrl; m_MockArticlesService.Setup(service => service.GetArticlesByShortUrlAsync(shortUrl, SHORT_URL_FORMAT)).ReturnsAsync(articleSource); var expectArticle = Converter.ToJson(new ArticleView(articleSource)); // Act var result = await m_Browser.Get($"/article/{shortUrl}", with => { with.HttpRequest(); }); // Assert m_MockArticlesService.Verify(service => service.GetArticlesByShortUrlAsync(shortUrl, SHORT_URL_FORMAT), Times.Once); Assert.Equal(HttpStatusCode.OK, result.StatusCode); Assert.Equal(expectArticle, result.Body.AsString()); }
public async Task GetArticlesByDateAsync_ReturnArticles_WhenGetArticlesSourceByDate() { // Arrange var updatedDate = ARTICLE_SOURCES.First().UpdatedDate; var updatedDateStr = updatedDate.ToString(DATE_FORMAT); var articlesSource = ARTICLE_SOURCES.Where(articleSource => articleSource.UpdatedDate == updatedDate).ToList(); m_MockArticlesService.Setup(service => service.GetArticlesByDateAsync(SECTION, updatedDateStr, DATE_FORMAT)).ReturnsAsync(articlesSource); var expectArticles = Converter.ToJson(articlesSource.Select(articleSource => new ArticleView(articleSource)).ToList()); // Act var result = await m_Browser.Get($"/list/{SECTION}/{updatedDateStr}", with => { with.HttpRequest(); }); // Assert m_MockArticlesService.Verify(service => service.GetArticlesByDateAsync(SECTION, updatedDateStr, DATE_FORMAT), Times.Once); Assert.Equal(HttpStatusCode.OK, result.StatusCode); Assert.Equal(expectArticles, result.Body.AsString()); }