public static void Run([TimerTrigger("%CRON_EXPRESSION%")] TimerInfo myTimer, ILogger log) { //--------------------------------------------- // HTMLを取得する //--------------------------------------------- var repository = new HtmlRepository(__httpClient); var uri = new Uri(Environment.GetEnvironmentVariable("MATTERMOST_WEBHOOK_URL")); //--------------------------------------------- // HTMLを取得する //--------------------------------------------- var parser = new TechCrunchPopularHtmlParserCreateService(repository).Create(); //--------------------------------------------- // 投稿するテキストを作成する //--------------------------------------------- IMattermostText text = new PopularTechnologyText(parser); //--------------------------------------------- // 投稿する //--------------------------------------------- var service = new MattermostWebhookService(uri, text); var result = service.Post(); log.LogInformation($"HTTP Status: {(int)result.StatusCode} {result.ReasonPhrase}"); }
public void Test_Post_POSTするときのMediaTypeがjsonであること() { var uri = new Uri("https://tomoprogsample.com"); IMattermostText textBuilder = new DummyTestBuilder(); var service = new MattermostWebhookService(uri, textBuilder, _client); var response = service.Post(); Assert.AreEqual(@"application/json", response.RequestMessage.Content.Headers.ContentType.MediaType); }
public void Test_Post_指定したURLにPOSTしていること() { var uri = new Uri("https://tomoprogsample.com"); IMattermostText textBuilder = new DummyTestBuilder(); var service = new MattermostWebhookService(uri, textBuilder, _client); var response = service.Post(); Assert.AreEqual(HttpMethod.Post, response.RequestMessage.Method); Assert.AreEqual(uri, response.RequestMessage.RequestUri); }
public void Test_Post_送信する内容の改行はCRLFからLFに変換されること() { var uri = new Uri("https://tomoprogsample.com"); IMattermostText textBuilder = new DummyNewLineTextBuillder(); var service = new MattermostWebhookService(uri, textBuilder, _client); var response = service.Post(); var content = response.RequestMessage.Content.ReadAsStringAsync().Result; Assert.AreEqual("{\"text\":\"dummy\ndummy2\"}", content); }
public void Test_Post_text属性には指定したクラスのBuildメソッドの内容が入ること() { var uri = new Uri("https://tomoprogsample.com"); IMattermostText textBuilder = new DummyTestBuilder(); var service = new MattermostWebhookService(uri, textBuilder, _client); var response = service.Post(); var content = response.RequestMessage.Content.ReadAsStringAsync().Result; var expected = string.Format(@"{{""text"":""{0}""}}", textBuilder.Build()); Assert.AreEqual(expected, content); }