Возврат массива#
Шаги, которые возвращают массив
package org.my.pack;
import ru.tinkoff.qa.neptune.core.api.steps.SequentialGetStepSupplier;
import java.util.function.Function;
public class MyGetStepSupplier<T> extends
SequentialGetStepSupplier
.GetArrayStepSupplier<MyTestContext, T, MyGetStepSupplier<T>> {
protected MyGetStepSupplier() {
this(myTestContext -> { //описываем функцию,
//которая выполняет действия,
return //и возвращает массив
//из элементов, которые после фильтрации по критериям
//соберутся в результирующий массив
});
}
protected MyGetStepSupplier(Function<MyTestContext, T[]> originalFunction) {
//либо передаем функцию снаружи
super(originalFunction);
}
//при необходимости, можно сделать доступными методы timeOut и pollingInterval
//при необходимости, можно переопределить методы onStart, onSuccess, onFailure
//добавляем свои методы, если нужны
}
package org.my.pack;
import ru.tinkoff.qa.neptune.core.api.steps.SequentialGetStepSupplier;
import java.util.function.Function;
public class MyGetStepSupplier<T, M> extends
SequentialGetStepSupplier
.GetArrayChainedStepSupplier<
MyTestContext,
T,
M,
MyGetStepSupplier<T, M>> {
protected MyGetStepSupplier() {
this(m -> { //описываем функцию,
//которая выполняет действия,
return //и возвращает массив
//из элементов, которые после фильтрации по критериям
//соберутся в результирующий массив
});
}
protected MyGetStepSupplier(Function<M, T[]> originalFunction) {
//либо передаем функцию снаружи
super(originalFunction);
}
//Здесь появляется новая опция.
//Можно указать шаг, который должен предшествовать данному шагу.
//
//У переданного шага тип входного параметра должен быть тот же,
//а тип результирующего значения - расширяющий тип значения-"посредника"
//данного шага. Оба шага образуют иерархическую последовательность выполнения
//действий, т.е. в рамках данного шага будет выполнен тот, что был указан при
//вызове метода.
//
//Необязательно данный метод перекрывать и делать его публичным. Данным методом
//можно воспользоваться при реализации внутренней логики класса или его объектов.
@Override
protected MyGetStepSupplier<T, M> from(
SequentialGetStepSupplier<MyTestContext, ? extends M, ?, ?, ?> from) {
return super.from(from);
}
//Аналогично методу выше. Вместо подготовленного шага используем функцию
@Override
protected MyGetStepSupplier<T, M> from(Function<MyTestContext, ? extends M> from) {
return super.from(from);
}
//Аналогично методам выше. В данном случае значение "посредник"
//данного шага используется напрямую.
@Override
protected MyGetStepSupplier<T, M> from(M from) {
return super.from(from);
}
//при необходимости, можно сделать доступными методы timeOut и pollingInterval
//при необходимости, можно переопределить методы onStart, onSuccess, onFailure
//добавляем свои методы, если нужны
}