Skip to content

Commit

Permalink
Added shared tests
Browse files Browse the repository at this point in the history
  • Loading branch information
pingu2k4 committed Jul 8, 2024
1 parent 2e20bda commit 63ce987
Show file tree
Hide file tree
Showing 2 changed files with 118 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
using System.Net;
using PinguApps.Appwrite.Shared.Requests;
using PinguApps.Appwrite.Shared.Tests;
using RichardSzalay.MockHttp;

namespace PinguApps.Appwrite.Client.Tests.Clients.Account;
public partial class AccountClientTests
{
[Fact]
public async Task UpdatePassword_ShouldReturnSuccess_WhenApiCallSucceeds()
{
// Arrange
var request = new UpdatePasswordRequest()
{
OldPassword = "oldPassword",
NewPassword = "newPassword"
};

_mockHttp.Expect(HttpMethod.Patch, $"{Constants.Endpoint}/account/password")
.ExpectedHeaders(true)
.WithJsonContent(request)
.Respond(Constants.AppJson, Constants.UserResponse);

_appwriteClient.SetSession(Constants.Session);

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

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

[Fact]
public async Task UpdatePassword_ShouldHandleException_WhenApiCallFails()
{
// Arrange
var request = new UpdatePasswordRequest()
{
OldPassword = "oldPassword",
NewPassword = "newPassword"
};

_mockHttp.Expect(HttpMethod.Patch, $"{Constants.Endpoint}/account/password")
.ExpectedHeaders(true)
.WithJsonContent(request)
.Respond(HttpStatusCode.BadRequest, Constants.AppJson, Constants.AppwriteError);

_appwriteClient.SetSession(Constants.Session);

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

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

[Fact]
public async Task UpdatePassword_ShouldReturnErrorResponse_WhenExceptionOccurs()
{
// Arrange
var request = new UpdatePasswordRequest()
{
OldPassword = "oldPassword",
NewPassword = "newPassword"
};

_mockHttp.Expect(HttpMethod.Patch, $"{Constants.Endpoint}/account/password")
.ExpectedHeaders(true)
.WithJsonContent(request)
.Throw(new HttpRequestException("An error occurred"));

_appwriteClient.SetSession(Constants.Session);

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

// Assert
Assert.False(result.Success);
Assert.True(result.IsInternalError);
Assert.Equal("An error occurred", result.Result.AsT2.Message);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
using PinguApps.Appwrite.Shared.Requests;

namespace PinguApps.Appwrite.Shared.Tests.Requests;

public class UpdatePasswordRequestTests
{
[Fact]
public void Constructor_InitializesWithExpectedValues()
{
// Arrange & Act
var request = new UpdatePasswordRequest();

// Assert
Assert.NotNull(request.NewPassword);
Assert.Equal(string.Empty, request.NewPassword);
Assert.Null(request.OldPassword);
}

[Theory]
[InlineData("oldPassword", "newPassword")]
[InlineData(null, "anotherPassword")]
public void Properties_CanBeSet(string? oldPassword, string newPassword)
{
// Arrange
var request = new UpdatePasswordRequest();

// Act
request.OldPassword = oldPassword;
request.NewPassword = newPassword;

// Assert
Assert.Equal(oldPassword, request.OldPassword);
Assert.Equal(newPassword, request.NewPassword);
}
}

0 comments on commit 63ce987

Please sign in to comment.