示例#1
0
        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);
        }