using Microsoft.Extensions.Logging.Abstractions; using Piwigo.Client.Contract; namespace Piwigo.Client.Tests; [TestFixture] public class AlbumApiTests : ApiTestsBase { private AlbumApi _albumApi = null!; protected override void OnSetUp() { base.OnSetUp(); _albumApi = new AlbumApi(Context, new NullLogger()); } [Test] public async Task Add_should_create_album_and_return_id() { await LoginAsync(); var serverResponse = new PiwigoResponse { Result = new AlbumAdded { Id = 1, Info = "Album added" } }; SetJsonResult(serverResponse); var response = await _albumApi.AddAsync("UnittestMain2", null, "comment", true, CategoryStatus.Public, true, CategoryPosition.Last); response.Should().BeGreaterOrEqualTo(1); } [Test] public async Task GetAll_should_return_all_existing_albums() { await LoginAsync(); var serverResponse = new PiwigoResponse { Result = new AlbumList { Albums = new List { new() { Id = 1, Name = "UnitTestMain" }, new() { Id = 3, Name = "UnitTestSub2", IdUpperCat = 1 }, new() { Id = 2, Name = "UnitTestSub1", IdUpperCat = 1 } } } }; SetJsonResult(serverResponse); var response = await _albumApi.GetAllAsync(); response.Should().HaveCount(3); response.Should().SatisfyRespectively(c => { c.Id.Should().Be(1); c.Name.Should().Be("UnitTestMain"); }, c => { c.Id.Should().Be(3); c.Name.Should().Be("UnitTestSub2"); c.IdUpperCat.Should().Be(1); }, c => { c.Id.Should().Be(2); c.Name.Should().Be("UnitTestSub1"); c.IdUpperCat.Should().Be(1); }); } }