예제 #1
0
        public async Task ExpandUrlStrAsync_InvalidUrlTest()
        {
            var handler = new HttpMessageHandlerMock();
            using (var http = new HttpClient(handler))
            {
                var shortUrl = new ShortUrl(http);

                handler.Enqueue(x =>
                {
                    // リクエストは送信されないはず
                    Assert.True(false);
                    return this.CreateRedirectResponse("http://example.com/hoge2");
                });

                // 不正なURL
                Assert.Equal("..hogehoge..", await shortUrl.ExpandUrlStrAsync("..hogehoge.."));

                Assert.Equal(1, handler.QueueCount);
            }
        }
예제 #2
0
        public async Task ExpandUrlStrAsync_SchemeLessUrlTest()
        {
            var handler = new HttpMessageHandlerMock();
            using (var http = new HttpClient(handler))
            {
                var shortUrl = new ShortUrl(http);

                // http://t.co/hoge1 -> http://example.com/hoge2
                handler.Enqueue(x =>
                {
                    Assert.Equal(HttpMethod.Head, x.Method);
                    Assert.Equal(new Uri("http://t.co/hoge1"), x.RequestUri);

                    return this.CreateRedirectResponse("http://example.com/hoge2");
                });

                // スキームが省略されたURL
                Assert.Equal("http://example.com/hoge2",
                    await shortUrl.ExpandUrlStrAsync("t.co/hoge1"));

                Assert.Equal(0, handler.QueueCount);
            }
        }