/// <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 IResultCollection <TValueOut> ResultCollectionBindTryOk <TValueIn, TValueOut>(this IResultCollection <TValueIn> @this, Func <IReadOnlyCollection <TValueIn>, IResultCollection <TValueOut> > func, IErrorResult error) => @this.ResultCollectionBindOk(value => ResultCollectionBindTry(() => func.Invoke(value), error));
/// <summary> /// Добавить ошибки результирующего ответа или вернуть результат с ошибками для ответа с коллекцией /// </summary> public static IResultCollection <TValue> ResultCollectionBindErrorsOk <TValue>(this IResultCollection <TValue> @this, Func <IReadOnlyCollection <TValue>, IResultError> okFunc) => @this. ResultCollectionBindOk(collection => okFunc.Invoke(collection). Map(resultError => resultError.ToResultCollection(collection)));