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); } }
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); } }