Skip to content

Commit

Permalink
added tests for update email
Browse files Browse the repository at this point in the history
  • Loading branch information
pingu2k4 committed Oct 8, 2024
1 parent c7a7518 commit 4ede33f
Showing 1 changed file with 79 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
using System.Net;
using PinguApps.Appwrite.Shared.Requests.Users;
using PinguApps.Appwrite.Shared.Tests;
using RichardSzalay.MockHttp;

namespace PinguApps.Appwrite.Server.Tests.Clients.Users;
public partial class UsersClientTests
{
[Theory]
[InlineData("user123", "[email protected]")]
[InlineData("user456", "[email protected]")]
public async Task UpdateEmail_ShouldReturnSuccess_WhenApiCallSucceeds(string userId, string newEmail)
{
// Arrange
var request = new UpdateEmailRequest
{
UserId = userId,
Email = newEmail
};

_mockHttp.Expect(HttpMethod.Patch, $"{Constants.Endpoint}/users/{userId}/email")
.WithJsonContent(request)
.ExpectedHeaders()
.Respond(Constants.AppJson, Constants.UserResponse);

// Act
var result = await _appwriteClient.Users.UpdateEmail(request);

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

[Fact]
public async Task UpdateEmail_ShouldHandleException_WhenApiCallFails()
{
// Arrange
var request = new UpdateEmailRequest
{
UserId = "user123",
Email = "[email protected]"
};

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

// Act
var result = await _appwriteClient.Users.UpdateEmail(request);

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

[Fact]
public async Task UpdateEmail_ShouldReturnErrorResponse_WhenExceptionOccurs()
{
// Arrange
var request = new UpdateEmailRequest
{
UserId = "user123",
Email = "[email protected]"
};

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

// Act
var result = await _appwriteClient.Users.UpdateEmail(request);

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

0 comments on commit 4ede33f

Please sign in to comment.