You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
53 lines
1.9 KiB
53 lines
1.9 KiB
using Bit.Core.AdminConsole.Utilities.Commands; |
|
using Bit.Core.AdminConsole.Utilities.Errors; |
|
using Bit.Test.Common.AutoFixture.Attributes; |
|
using Xunit; |
|
|
|
namespace Bit.Core.Test.AdminConsole.Utilities.Commands; |
|
|
|
public class CommandResultTests |
|
{ |
|
public class TestItem |
|
{ |
|
public Guid Id { get; set; } |
|
public string Value { get; set; } |
|
} |
|
|
|
public CommandResult<TestItem> BulkAction(IEnumerable<TestItem> items) |
|
{ |
|
var itemList = items.ToList(); |
|
var successfulItems = items.Where(x => x.Value == "SuccessfulRequest").ToArray(); |
|
|
|
var failedItems = itemList.Except(successfulItems).ToArray(); |
|
|
|
var notFound = failedItems.First(x => x.Value == "Failed due to not found"); |
|
var invalidPermissions = failedItems.First(x => x.Value == "Failed due to invalid permissions"); |
|
|
|
var notFoundError = new RecordNotFoundError<TestItem>(notFound); |
|
var insufficientPermissionsError = new InsufficientPermissionsError<TestItem>(invalidPermissions); |
|
|
|
return new Partial<TestItem>(successfulItems.ToArray(), [notFoundError, insufficientPermissionsError]); |
|
} |
|
|
|
[Theory] |
|
[BitAutoData] |
|
public void Partial_CommandResult_BulkRequestWithSuccessAndFailures(Guid successId1, Guid failureId1, Guid failureId2) |
|
{ |
|
var listOfRecords = new List<TestItem> |
|
{ |
|
new TestItem() { Id = successId1, Value = "SuccessfulRequest" }, |
|
new TestItem() { Id = failureId1, Value = "Failed due to not found" }, |
|
new TestItem() { Id = failureId2, Value = "Failed due to invalid permissions" } |
|
}; |
|
|
|
var result = BulkAction(listOfRecords); |
|
|
|
Assert.IsType<Partial<TestItem>>(result); |
|
|
|
var failures = (result as Partial<TestItem>).Failures.ToArray(); |
|
var success = (result as Partial<TestItem>).Successes.First(); |
|
|
|
Assert.Equal(listOfRecords.First(), success); |
|
Assert.Equal(2, failures.Length); |
|
} |
|
}
|
|
|