/// <summary> /// Получить тестовую таблицу /// </summary> private static Mock <ITestTable> GetTestDatabaseTable(IResultCollection <TestEntity> testEntities, Func <TestEnum, IResultValue <TestEntity> > findIdFunc, Func <IEnumerable <TestEnum>, IResultCollection <TestEntity> > findIdsFunc) => new Mock <ITestTable>(). Void(tableMock => tableMock.Setup(table => table.ToListMainAsync()).ReturnsAsync(testEntities)). Void(tableMock => tableMock.Setup(table => table.FindMainByIdAsync(It.IsAny <TestEnum>())). ReturnsAsync((TestEnum id) => testEntities.ToResultValue().ResultValueBindOk(_ => findIdFunc(id)))). Void(tableMock => tableMock.Setup(table => table.FindMainByIdsAsync(It.IsAny <IEnumerable <TestEnum> >())). ReturnsAsync((IEnumerable <TestEnum> ids) => testEntities.ResultCollectionBindOk(_ => findIdsFunc(ids))));
/// <summary> /// Получить тестовую таблицу /// </summary> public static Mock <ITestTable> GetTestDatabaseTable(IResultCollection <TestEntity> testEntities, IResultError resultDelete, Func <TestEntity, IResultValue <TestEntity> > deleteFunc, Func <TestEnum, IResultValue <TestEntity> > findIdFunc) => new Mock <ITestTable>(). Void(tableMock => tableMock.Setup(table => table.Remove(It.IsAny <TestEntity>())). Returns(deleteFunc)). Void(tableMock => tableMock.Setup(table => table.Remove()). Returns(resultDelete)). Void(tableMock => tableMock.Setup(table => table.FindByIdAsync(It.IsAny <TestEnum>())). ReturnsAsync((TestEnum id) => testEntities.ToResultValue().ResultValueBindOk(_ => findIdFunc(id))));
/// <summary> /// Выполнение положительного условия или возвращение предыдущей ошибки в результирующем ответе коллекции с возвращением к значению /// </summary> public static IResultValue <TValueOut> ResultCollectionOkToValue <TValueIn, TValueOut>(this IResultCollection <TValueIn> @this, Func <IReadOnlyCollection <TValueIn>, TValueOut> okFunc) => @this.ToResultValue(). ResultValueOk(okFunc);
/// <summary> /// Выполнение положительного или негативного условия в результирующем ответе коллекции с возвращением к значению /// </summary> public static IResultValue <TValueOut> ResultCollectionOkBadToValue <TValueIn, TValueOut>(this IResultCollection <TValueIn> @this, Func <IReadOnlyCollection <TValueIn>, TValueOut> okFunc, Func <IReadOnlyCollection <IErrorResult>, TValueOut> badFunc) => @this.ToResultValue(). ResultValueOkBad(okFunc, badFunc);
/// <summary> /// Выполнение условия или возвращение предыдущей ошибки в результирующем ответе коллекции с возвращением к значению /// </summary> public static IResultValue <TValueOut> ResultCollectionContinueToValue <TValueIn, TValueOut>(this IResultCollection <TValueIn> @this, Func <IReadOnlyCollection <TValueIn>, bool> predicate, Func <IReadOnlyCollection <TValueIn>, TValueOut> okFunc, Func <IReadOnlyCollection <TValueIn>, IEnumerable <IErrorResult> > badFunc) => @this.ToResultValue(). ResultValueContinue(predicate, okFunc, badFunc);
/// <summary> /// Выполнение положительного условия или возвращение предыдущей ошибки асинхронном в результирующем ответе коллекции с возвращением к значению /// </summary> public static async Task <IResultValue <TValueOut> > ResultCollectionOkToValueAsync <TValueIn, TValueOut>(this IResultCollection <TValueIn> @this, Func <IReadOnlyCollection <TValueIn>, Task <TValueOut> > okFunc) => await @this.ToResultValue(). ResultValueOkAsync(okFunc);