상속: OpenTween.Thumbnail.Services.SimpleThumbnailService
예제 #1
0
        public async Task GetThumbnailInfoAsync_RequestTest()
        {
            var handler = new HttpMessageHandlerMock();

            handler.Enqueue(x =>
            {
                Assert.Equal(HttpMethod.Get, x.Method);
                Assert.Equal("https://api.tumblr.com/v2/blog/hoge.tumblr.com/posts",
                             x.RequestUri.GetLeftPart(UriPartial.Path));

                var query = HttpUtility.ParseQueryString(x.RequestUri.Query);

                Assert.Equal(ApplicationSettings.TumblrConsumerKey, query["api_key"]);
                Assert.Equal("1234567", query["id"]);

                return(new HttpResponseMessage(HttpStatusCode.OK)
                {
                    Content = new StringContent(@"{
  ""meta"": { ""status"": 200, ""msg"": ""OK"" },
  ""response"": { ""blog"": { }, ""posts"": { } }
}"),
                });
            });

            using (var http = new HttpClient(handler))
            {
                var service = new Tumblr(http);

                var url   = "http://hoge.tumblr.com/post/1234567/tetetete";
                var thumb = await service.GetThumbnailInfoAsync(url, null, CancellationToken.None)
                            .ConfigureAwait(false);
            }

            Assert.Equal(0, handler.QueueCount);
        }
예제 #2
0
        public async Task GetThumbnailInfoAsync_RequestTest()
        {
            var handler = new HttpMessageHandlerMock();

            handler.Enqueue(x =>
            {
                Assert.Equal(HttpMethod.Get, x.Method);
                Assert.Equal("https://api.tumblr.com/v2/blog/hoge.tumblr.com/posts",
                    x.RequestUri.GetLeftPart(UriPartial.Path));

                var query = HttpUtility.ParseQueryString(x.RequestUri.Query);

                Assert.Equal(ApplicationSettings.TumblrConsumerKey, query["api_key"]);
                Assert.Equal("1234567", query["id"]);

                return new HttpResponseMessage(HttpStatusCode.OK)
                {
                    Content = new StringContent(@"{
  ""meta"": { ""status"": 200, ""msg"": ""OK"" },
  ""response"": { ""blog"": { }, ""posts"": { } }
}"),
                };
            });

            using (var http = new HttpClient(handler))
            {
                var service = new Tumblr(http);

                var url = "http://hoge.tumblr.com/post/1234567/tetetete";
                var thumb = await service.GetThumbnailInfoAsync(url, null, CancellationToken.None)
                    .ConfigureAwait(false);
            }

            Assert.Equal(0, handler.QueueCount);
        }
예제 #3
0
        public void ParsePostJson_Test()
        {
            var json      = @"{
  ""meta"": { ""status"": 200, ""msg"": ""OK"" },
  ""response"": {
    ""blog"": { },
    ""posts"": [
      {
        ""id"": 1234567,
        ""post_url"": ""http://example.com/post/1234567"",
        ""type"": ""photo"",
        ""photos"": [
          {
            ""caption"": """",
            ""alt_sizes"": [
              {
                ""width"": 1280,
                ""height"": 722,
                ""url"": ""http://example.com/photo/1280/1234567/1/tumblr_hogehoge""
              }
            ]
          }
        ]
      }
    ]
  }
}";
            var jsonBytes = Encoding.UTF8.GetBytes(json);
            var thumbs    = Tumblr.ParsePhotoPostJson(jsonBytes);

            var expected = new[]
            {
                new ThumbnailInfo
                {
                    ImageUrl     = "http://example.com/post/1234567",
                    ThumbnailUrl = "http://example.com/photo/1280/1234567/1/tumblr_hogehoge",
                    TooltipText  = null,
                },
            };

            Assert.Equal(expected, thumbs);
        }