piwigodotnet/PiwigoDotnet/Piwigo.Client.Tests/ImageApiTests.cs

67 lines
1.9 KiB
C#

using System.Text;
using Microsoft.Extensions.Logging.Abstractions;
using Piwigo.Client.Contract;
namespace Piwigo.Client.Tests;
[TestFixture]
public class ImageApiTests : ApiTestsBase
{
private IImageApi _imageApi = null!;
protected override void OnSetUp()
{
base.OnSetUp();
_imageApi = new ImageApi(Context, new NullLogger<ImageApi>());
}
[Test]
public async Task ReadyForUpload_should_return_correct_value()
{
SetJsonResult(@"{stat: ""ok"",
result: {
message: null,
ready_for_upload: true
}}");
var isReady = await _imageApi.ReadyForUploadAsync();
CorrectMethodShouldGetCalled("pwg.images.checkUpload");
isReady.Should().BeTrue();
}
[Test]
public async Task AddChunk_should_post_base64_encoded_data()
{
SetOkResult();
var bytes = Encoding.UTF8.GetBytes("PiwigoTestString");
var expectedBase64 = Convert.ToBase64String(bytes);
await _imageApi.AddChunkAsync(bytes, "origSum", 0);
CorrectMethodShouldGetCalled("pwg.images.addChunk");
CorrectParamShouldGetSent("data", expectedBase64);
CorrectParamShouldGetSent("original_sum", "origSum");
CorrectParamShouldGetSent("type", "file");
CorrectParamShouldGetSent("position", "0");
}
[Test]
public async Task GetImages_should_return_expected_images()
{
await SetJsonResultFromFileAsync("ImageApi.getImages.json");
var result = await _imageApi.GetImages(7, true, new PagingInfo(0, 100, 0), ImageFilter.Empty);
CorrectMethodShouldGetCalled("pwg.categories.getImages");
CorrectParamShouldGetSent("cat_id", "7");
CorrectParamShouldGetSent("recursive", "true");
CorrectParamShouldGetSent("per_page", "100");
CorrectParamShouldGetSent("page", "0");
await Verify(result);
}
}