DocSpace-client/thirdparty/onedrive-sdk-csharp-master/tests/Test.OneDriveSdk/Requests/ThumbnailRequestTests.cs
2020-07-10 18:37:02 +03:00

142 lines
6.0 KiB
C#

// ------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the MIT License. See License in the project root for license information.
// ------------------------------------------------------------------------------
namespace Test.OneDrive.Sdk.Requests
{
using System;
using System.Collections.Generic;
using System.IO;
using System.Net.Http;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.OneDrive.Sdk;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Moq;
[TestClass]
public class ThumbnailRequestTests : RequestTestBase
{
[TestMethod]
public void ThumbnailContentRequest_BuildRequest()
{
var expectedRequestUri = new Uri("https://api.onedrive.com/v1.0/drive/items/id/thumbnails/0/id/content");
var thumbnailContentRequestBuilder = this.oneDriveClient.Drive.Items["id"].Thumbnails["0"]["id"].Content as ThumbnailContentRequestBuilder;
Assert.IsNotNull(thumbnailContentRequestBuilder, "Unexpected request builder.");
Assert.AreEqual(expectedRequestUri, new Uri(thumbnailContentRequestBuilder.RequestUrl), "Unexpected request URL.");
var thumbnailContentRequest = thumbnailContentRequestBuilder.Request() as ThumbnailContentRequest;
Assert.IsNotNull(thumbnailContentRequest, "Unexpected request.");
Assert.AreEqual(expectedRequestUri, new Uri(thumbnailContentRequest.RequestUrl), "Unexpected request URL.");
}
[TestMethod]
public async Task ThumbnailContentRequest_GetAsync()
{
using (var httpResponseMessage = new HttpResponseMessage())
using (var stringContent = new StringContent("body"))
{
httpResponseMessage.Content = stringContent;
var requestUrl = "https://api.onedrive.com/v1.0/drive/items/id/thumbnails/0/id/content";
this.httpProvider.Setup(
provider => provider.SendAsync(
It.Is<HttpRequestMessage>(
request => request.RequestUri.ToString().StartsWith(requestUrl)),
HttpCompletionOption.ResponseContentRead,
CancellationToken.None))
.Returns(Task.FromResult(httpResponseMessage));
using (var response = await this.oneDriveClient.Drive.Items["id"].Thumbnails["0"]["id"].Content.Request().GetAsync())
{
Assert.IsNotNull(response, "Response stream not returned.");
using (var streamReader = new StreamReader(response))
{
var responseString = await streamReader.ReadToEndAsync();
Assert.AreEqual("body", responseString, "Unexpected response returned.");
}
}
}
}
[TestMethod]
public async Task ThumbnailContentRequest_PutAsync()
{
using (var requestStream = new MemoryStream())
using (var httpResponseMessage = new HttpResponseMessage())
using (var responseStream = new MemoryStream())
using (var streamContent = new StreamContent(responseStream))
{
httpResponseMessage.Content = streamContent;
var requestUrl = "https://api.onedrive.com/v1.0/drive/items/id/thumbnails/0/id/content";
this.httpProvider.Setup(
provider => provider.SendAsync(
It.Is<HttpRequestMessage>(
request => request.RequestUri.ToString().StartsWith(requestUrl)),
HttpCompletionOption.ResponseContentRead,
CancellationToken.None))
.Returns(Task.FromResult(httpResponseMessage));
var expectedThumbnail = new Thumbnail { Url = "https://localhost" };
this.serializer.Setup(
serializer => serializer.DeserializeObject<Thumbnail>(It.IsAny<string>()))
.Returns(expectedThumbnail);
var responseThumbnail = await this.oneDriveClient.Drive.Items["id"].Thumbnails["0"]["id"].Content.Request().PutAsync<Thumbnail>(requestStream);
Assert.IsNotNull(responseThumbnail, "Thumbnail not returned.");
Assert.AreEqual(expectedThumbnail, responseThumbnail, "Unexpected thumbnail returned.");
}
}
[TestMethod]
public void ThumbnailSetExtensions_AdditionalDataNull()
{
var thumbnailSet = new ThumbnailSet();
var thumbnail = thumbnailSet["custom"];
Assert.IsNull(thumbnail, "Unexpected thumbnail returned.");
}
[TestMethod]
public void ThumbnailSetExtensions_CustomThumbnail()
{
var expectedThumbnail = new Thumbnail { Url = "https://localhost" };
var thumbnailSet = new ThumbnailSet
{
AdditionalData = new Dictionary<string, object>
{
{ "custom", expectedThumbnail }
}
};
var thumbnail = thumbnailSet["custom"];
Assert.IsNotNull(thumbnail, "Custom thumbnail not returned.");
Assert.AreEqual(expectedThumbnail.Url, thumbnail.Url, "Unexpected thumbnail returned.");
}
[TestMethod]
public void ThumbnailSetExtensions_CustomThumbnailNotFound()
{
var expectedThumbnail = new Thumbnail { Url = "https://localhost" };
var thumbnailSet = new ThumbnailSet
{
AdditionalData = new Dictionary<string, object>
{
{ "custom", expectedThumbnail }
}
};
var thumbnail = thumbnailSet["custom2"];
Assert.IsNull(thumbnail, "Unexpected thumbnail returned.");
}
}
}