using Bit.Core.Models.Commands; using Bit.Test.Common.AutoFixture.Attributes; using Xunit; namespace Bit.Core.Test.Models.Commands; public class CommandResultTests { public class TestItem { public Guid Id { get; set; } public string Value { get; set; } } public CommandResult BulkAction(IEnumerable 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(notFound); var insufficientPermissionsError = new InsufficientPermissionsError(invalidPermissions); return new Partial(successfulItems.ToArray(), [notFoundError, insufficientPermissionsError]); } [Theory] [BitAutoData] public void Partial_CommandResult_BulkRequestWithSuccessAndFailures(Guid successId1, Guid failureId1, Guid failureId2) { var listOfRecords = new List { 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>(listOfRecords); } }