1
0
mirror of https://github.com/bitwarden/server.git synced 2025-04-04 20:50:21 -05:00

[PM-15621] WIP

This commit is contained in:
Jimmy Vo 2025-04-04 08:47:43 -04:00
parent c08b3d99ab
commit b0c89ad847
No known key found for this signature in database
GPG Key ID: 7CB834D6F4FFCA11
2 changed files with 2 additions and 131 deletions

View File

@ -17,6 +17,7 @@ public class DeleteManagedOrganizationUserAccountValidator(
{
var invalidResults = new List<Invalid<DeleteUserValidationRequest>>();
var validResults = new List<Valid<DeleteUserValidationRequest>>();
foreach (var request in requests)
{
// The order of the validators matters.
@ -87,7 +88,7 @@ public class DeleteManagedOrganizationUserAccountValidator(
{
if (request.User == null || request.OrganizationUser == null)
{
return new Invalid<DeleteUserValidationRequest>(new BadRequestError<DeleteUserValidationRequest>("You cannot delete a member with Invited status.", request));
return new Invalid<DeleteUserValidationRequest>(new RecordNotFoundError<DeleteUserValidationRequest>("Member not found.", request));
}
return new Valid<DeleteUserValidationRequest>();

View File

@ -1,130 +0,0 @@
using Bit.Core.Models.Commands;
using Bit.Core.Validators;
using Xunit;
namespace Bit.Core.Test.Validators;
public class CommandResultValidatorTests
{
[Fact]
public void ExecuteValidators_AllSuccess_ReturnsSuccess()
{
// Arrange
var validators = new Func<CommandResult>[]
{
() => new Success(),
() => new Success(),
() => new Success()
};
// Act
var result = CommandResultValidator.ExecuteValidators(validators);
// Assert
Assert.IsType<Success>(result);
}
public static IEnumerable<object[]> TestCases()
{
yield return new object[]
{
new Func<CommandResult>[]
{
() => new Failure("First failure"),
() => new Success(),
() => new Failure("Second failure"),
}
};
yield return new object[]
{
new Func<CommandResult>[]
{
() => new Success(),
() => new Failure("First failure"),
() => new Failure("Second failure"),
}
};
yield return new object[]
{
new Func<CommandResult>[]
{
() => new Success(),
() => new Success(),
() => new Failure("First failure"),
}
};
}
[Theory]
[MemberData(nameof(TestCases))]
public void ExecuteValidators_WhenValidatorFails_ReturnsFirstFailure(Func<CommandResult>[] validators)
{
// Act
var result = CommandResultValidator.ExecuteValidators(validators);
// Assert
Assert.IsType<Failure>(result);
Assert.Equal(["First failure"], ((Failure)result).ErrorMessages);
}
[Fact]
public async Task ExecuteValidatorAsync_AllSuccess_ReturnsSuccess()
{
// Arrange
var validators = new Func<Task<CommandResult>>[]
{
async () => await Task.FromResult(new Success()),
async () => await Task.FromResult(new Success()),
async () => await Task.FromResult(new Success())
};
// Act
var result = await CommandResultValidator.ExecuteValidatorAsync(validators);
// Assert
Assert.IsType<Success>(result);
}
public static IEnumerable<object[]> AsyncTestCases()
{
yield return new object[]
{
new Func<Task<CommandResult>>[]
{
async () => await Task.FromResult(new Failure("First failure")),
async () => await Task.FromResult(new Success()),
async () => await Task.FromResult(new Failure("Second failure")),
}
};
yield return new object[]
{
new Func<Task<CommandResult>>[]
{
async () => await Task.FromResult(new Success()),
async () => await Task.FromResult(new Failure("First failure")),
async () => await Task.FromResult(new Failure("Second failure")),
}
};
yield return new object[]
{
new Func<Task<CommandResult>>[]
{
async () => await Task.FromResult(new Success()),
async () => await Task.FromResult(new Success()),
async () => await Task.FromResult(new Failure("First failure")),
}
};
}
[Theory]
[MemberData(nameof(AsyncTestCases))]
public async Task ExecuteValidatorAsync_WhenValidatorFails_ReturnsFirstFailure(Func<Task<CommandResult>>[] validators)
{
// Act
var result = await CommandResultValidator.ExecuteValidatorAsync(validators);
// Assert
Assert.IsType<Failure>(result);
Assert.Equal(["First failure"], ((Failure)result).ErrorMessages);
}
}