Skip to content

Commit

Permalink
Added tests for client
Browse files Browse the repository at this point in the history
  • Loading branch information
pingu2k4 committed Aug 7, 2024
1 parent 65059e9 commit c257305
Showing 1 changed file with 82 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
using System.Net;
using PinguApps.Appwrite.Shared.Tests;
using RichardSzalay.MockHttp;

namespace PinguApps.Appwrite.Client.Tests.Clients.Account;
public partial class AccountClientTests
{
[Fact]
public async Task AddAuthenticator_ShouldReturnSuccess_WhenApiCallSucceeds()
{
// Arrange
_mockHttp.Expect(HttpMethod.Post, $"{Constants.Endpoint}/account/mfa/authenticators/totp")
.ExpectedHeaders(true)
.Respond(Constants.AppJson, Constants.MfaTypeResponse);

_appwriteClient.SetSession(Constants.Session);

// Act
var result = await _appwriteClient.Account.AddAuthenticator();

// Assert
Assert.True(result.Success);
}

[Fact]
public async Task AddAuthenticator_ShouldHitDifferentEndpoint_WhenNewTypeIsUsed()
{
// Arrange
var type = "newAuth";
var requestUri = $"{Constants.Endpoint}/account/mfa/authenticators/{type}";
var request = _mockHttp.Expect(HttpMethod.Post, requestUri)
.ExpectedHeaders(true)
.Respond(Constants.AppJson, Constants.MfaTypeResponse);

_appwriteClient.SetSession(Constants.Session);

// Act
var result = await _appwriteClient.Account.AddAuthenticator(type);

// Assert
_mockHttp.VerifyNoOutstandingExpectation();
var matches = _mockHttp.GetMatchCount(request);
Assert.Equal(1, matches);
}

[Fact]
public async Task AddAuthenticator_ShouldHandleException_WhenApiCallFails()
{
// Arrange
_mockHttp.Expect(HttpMethod.Post, $"{Constants.Endpoint}/account/mfa/authenticators/totp")
.ExpectedHeaders(true)
.Respond(HttpStatusCode.BadRequest, Constants.AppJson, Constants.AppwriteError);

_appwriteClient.SetSession(Constants.Session);

// Act
var result = await _appwriteClient.Account.AddAuthenticator();

// Assert
Assert.True(result.IsError);
Assert.True(result.IsAppwriteError);
}

[Fact]
public async Task AddAuthenticator_ShouldReturnErrorResponse_WhenExceptionOccurs()
{
// Arrange
_mockHttp.Expect(HttpMethod.Post, $"{Constants.Endpoint}/account/mfa/authenticators/totp")
.ExpectedHeaders(true)
.Throw(new HttpRequestException("An error occurred"));

_appwriteClient.SetSession(Constants.Session);

// Act
var result = await _appwriteClient.Account.AddAuthenticator();

// Assert
Assert.False(result.Success);
Assert.True(result.IsInternalError);
Assert.Equal("An error occurred", result.Result.AsT2.Message);
}
}

0 comments on commit c257305

Please sign in to comment.