Skip to content

Commit

Permalink
Merge pull request #371 from TikhomirovSergey/iterable_new_options
Browse files Browse the repository at this point in the history
0.23.0-ALPHA
  • Loading branch information
TikhomirovSergey authored Sep 16, 2022
2 parents e1de281 + 2d4a096 commit 5f4d712
Show file tree
Hide file tree
Showing 35 changed files with 2,492 additions and 2,263 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ public Object aroundMatcherCreating(ProceedingJoinPoint joinPoint) throws Throwa
String newDescription = calculateDescription(matcher, joinPoint);
return Matchers.describedAs(newDescription, matcher);
} finally {
IS_CALCULATION_STARTED.set(null);
IS_CALCULATION_STARTED.remove();
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,15 @@
import static ru.tinkoff.qa.neptune.core.api.utils.ToArrayUtil.stringValueOfObjectOrArray;

public class DefaultConsoleEventLogger implements EventLogger {
private static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss");
private final SimpleDateFormat dateFormat = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss");
private final LinkedList<String> steps = new LinkedList<>();
private boolean successful = true;

@Override
public void fireTheEventStarting(String message, Map<String, String> parameters) {
successful = true;
steps.addLast(message);
System.out.println(DATE_FORMAT.format(new Date()) + " STEP HAS BEEN STARTED: " + message);
System.out.println(dateFormat.format(new Date()) + " STEP HAS BEEN STARTED: " + message);
if (parameters.isEmpty()) {
return;
}
Expand All @@ -43,9 +43,9 @@ public void fireEventFinishing() {
if (!steps.isEmpty()) {
var step = steps.getLast();
if (successful) {
System.out.println(DATE_FORMAT.format(new Date()) + " STEP HAS FINISHED SUCCESSFULLY: " + step);
System.out.println(dateFormat.format(new Date()) + " STEP HAS FINISHED SUCCESSFULLY: " + step);
} else {
System.err.println(DATE_FORMAT.format(new Date()) + " STEP HAS FAILED: " + step);
System.err.println(dateFormat.format(new Date()) + " STEP HAS FAILED: " + step);
}
steps.removeLast();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -363,105 +363,6 @@ public final <R> boolean presenceOfOrThrow(String description,
return super.presenceOfOrThrow(setDescription(description, by), toIgnore);
}

@SafeVarargs
public final <S, R> boolean presenceOf(String description,
GetObjectFromEntity<S, R> toGet,
Class<? extends Throwable>... toIgnore) {
return super.presenceOf(setDescription(description, toGet), toIgnore);
}

@SafeVarargs
public final <S, R> boolean presenceOfOrThrow(String description,
GetObjectFromEntity<S, R> toGet,
Class<? extends Throwable>... toIgnore) {
return super.presenceOfOrThrow(setDescription(description, toGet), toIgnore);
}

@SafeVarargs
public final <ITEM, S extends Iterable<ITEM>, R> boolean presenceOf(String description,
GetIterableFromEntity<ITEM, S, R> toGet,
Class<? extends Throwable>... toIgnore) {
return super.presenceOf(setDescription(description, toGet), toIgnore);
}

@SafeVarargs
public final <ITEM, S extends Iterable<ITEM>, R> boolean presenceOfOrThrow(String description,
GetIterableFromEntity<ITEM, S, R> toGet,
Class<? extends Throwable>... toIgnore) {
return super.presenceOfOrThrow(setDescription(description, toGet), toIgnore);
}

@SafeVarargs
public final <ITEM, R> boolean presenceOf(String description,
GetArrayFromEntity<ITEM, R> toGet,
Class<? extends Throwable>... toIgnore) {
return super.presenceOf(setDescription(description, toGet), toIgnore);
}

@SafeVarargs
public final <ITEM, R> boolean presenceOfOrThrow(String description,
GetArrayFromEntity<ITEM, R> toGet,
Class<? extends Throwable>... toIgnore) {
return super.presenceOfOrThrow(setDescription(description, toGet), toIgnore);
}

@SafeVarargs
public final <ITEM, R> boolean presenceOf(String description,
GetItemOfIterableFromEntity<ITEM, ? extends Iterable<ITEM>, R> toGet,
Class<? extends Throwable>... toIgnore) {
return super.presenceOf(setDescription(description, toGet), toIgnore);
}

@SafeVarargs
public final <ITEM, R> boolean presenceOfOrThrow(String description,
GetItemOfIterableFromEntity<ITEM, ? extends Iterable<ITEM>, R> toGet,
Class<? extends Throwable>... toIgnore) {
return super.presenceOfOrThrow(setDescription(description, toGet), toIgnore);
}

@SafeVarargs
public final <ITEM, R> boolean presenceOf(String description,
GetItemOfArrayFromEntity<ITEM, R> toGet,
Class<? extends Throwable>... toIgnore) {
return super.presenceOf(setDescription(description, toGet), toIgnore);
}

@SafeVarargs
public final <ITEM, R> boolean presenceOfOrThrow(String description,
GetItemOfArrayFromEntity<ITEM, R> toGet,
Class<? extends Throwable>... toIgnore) {
return super.presenceOfOrThrow(setDescription(description, toGet), toIgnore);
}

@SafeVarargs
public final <ITEM, R> boolean presenceOf(String description,
GetIterableFromEntities<ITEM, R> toGet,
Class<? extends Throwable>... toIgnore) {
return super.presenceOf(setDescription(description, toGet), toIgnore);
}

@SafeVarargs
public final <ITEM, R> boolean presenceOfOrThrow(String description,
GetIterableFromEntities<ITEM, R> toGet,
Class<? extends Throwable>... toIgnore) {
return super.presenceOfOrThrow(setDescription(description, toGet), toIgnore);
}

@SafeVarargs
public final <ITEM, R> boolean presenceOf(String description,
GetIterableItemFromEntities<ITEM, R> toGet,
Class<? extends Throwable>... toIgnore) {
return super.presenceOf(setDescription(description, toGet), toIgnore);
}

@SafeVarargs
public final <ITEM, R> boolean presenceOfOrThrow(String description,
GetIterableItemFromEntities<ITEM, R> toGet,
Class<? extends Throwable>... toIgnore) {
return super.presenceOfOrThrow(setDescription(description, toGet), toIgnore);
}


public <R> boolean absenceOf(String description,
SelectOneStepSupplier<R> by,
Duration timeOut) {
Expand All @@ -485,95 +386,4 @@ public <R> boolean absenceOfOrThrow(String description,
Duration timeOut) {
return super.absenceOfOrThrow(setDescription(description, by), timeOut);
}


public <S, R> boolean absenceOf(String description,
GetObjectFromEntity<S, R> toGet,
Duration timeOut) {
return super.absenceOf(setDescription(description, toGet), timeOut);
}

public <S, R> boolean absenceOfOrThrow(String description,
GetObjectFromEntity<S, R> toGet,
Duration timeOut) {
return super.absenceOfOrThrow(setDescription(description, toGet), timeOut);
}


public <ITEM, S extends Iterable<ITEM>, R> boolean absenceOf(String description,
GetIterableFromEntity<ITEM, S, R> toGet,
Duration timeOut) {
return super.absenceOf(setDescription(description, toGet), timeOut);
}

public <ITEM, S extends Iterable<ITEM>, R> boolean absenceOfOrThrow(String description,
GetIterableFromEntity<ITEM, S, R> toGet,
Duration timeOut) {
return super.absenceOfOrThrow(setDescription(description, toGet), timeOut);
}


public <ITEM, R> boolean absenceOf(String description,
GetArrayFromEntity<ITEM, R> toGet,
Duration timeOut) {
return super.absenceOf(setDescription(description, toGet), timeOut);
}

public <ITEM, R> boolean absenceOfOrThrow(String description,
GetArrayFromEntity<ITEM, R> toGet,
Duration timeOut) {
return super.absenceOfOrThrow(setDescription(description, toGet), timeOut);
}


public <ITEM, R> boolean absenceOf(String description,
GetItemOfIterableFromEntity<ITEM, ? extends Iterable<ITEM>, R> toGet,
Duration timeOut) {
return super.absenceOf(setDescription(description, toGet), timeOut);
}

public <ITEM, R> boolean absenceOfOrThrow(String description,
GetItemOfIterableFromEntity<ITEM, ? extends Iterable<ITEM>, R> toGet,
Duration timeOut) {
return super.absenceOfOrThrow(setDescription(description, toGet), timeOut);
}


public <ITEM, R> boolean absenceOf(String description,
GetItemOfArrayFromEntity<ITEM, R> toGet,
Duration timeOut) {
return super.absenceOf(setDescription(description, toGet), timeOut);
}

public <ITEM, R> boolean absenceOfOrThrow(String description,
GetItemOfArrayFromEntity<ITEM, R> toGet,
Duration timeOut) {
return super.absenceOfOrThrow(setDescription(description, toGet), timeOut);
}


public <ITEM, R> boolean absenceOf(String description,
GetIterableFromEntities<ITEM, R> toGet,
Duration timeOut) {
return super.absenceOf(setDescription(description, toGet), timeOut);
}

public <ITEM, R> boolean absenceOfOrThrow(String description,
GetIterableFromEntities<ITEM, R> toGet,
Duration timeOut) {
return super.absenceOfOrThrow(setDescription(description, toGet), timeOut);
}


public <ITEM, R> boolean absenceOf(String description,
GetIterableItemFromEntities<ITEM, R> toGet,
Duration timeOut) {
return super.absenceOf(setDescription(description, toGet), timeOut);
}

public <ITEM, R> boolean absenceOfOrThrow(String description,
GetIterableItemFromEntities<ITEM, R> toGet,
Duration timeOut) {
return super.absenceOfOrThrow(setDescription(description, toGet), timeOut);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ public final class ContentManagementCommand extends SequentialActionSupplier<Sel

public static ContentManagementCommand getCurrentCommand() {
var result = CURRENT_COMMAND.get();
CURRENT_COMMAND.set(null);
CURRENT_COMMAND.remove();
return result;
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
# Возврат массива

В ходе выполнения данного шага вычисляется массив. Элементы полученного массива фильтруются по критериям.
Возвращается массив из отфильтрованных элементов, если они есть, иначе - пустой массив или `null`
В ходе выполнения данного шага получается массив

```{eval-rst}
.. include:: get_array_step_supplier.rst
```

```{eval-rst}
.. include:: get_array_step_supplier_chained.rst
```
```

⚠️ Описанные выше дополнительные опции с номерами 1, 2, 3, 4, 5 игнорируются в случае, когда объекты классов наследников
передаются в качестве значений аргументов методов `.presence*` и `.absence*` [контекста](./../../context/index.md).
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,45 @@
}
//у объектов данного класса есть публичные методы,
//с помощью которых можно указать критерии
//с помощью которых можно указать критерии.
//-------------------------------------------------------------------
//В данной реализации с помощью критериев проверяется и фильтруется
//каждый элемент массива T[]. Если в рамках отведенного времени будет
//получен непустой массив элементов, каждый из которых соответствует
//переданным критериям, то такой массив возвращается в виде результата,
//иначе - пустой массив или null, или выбрасывается исключение
//-------------------------------------------------------------------
//
//Как же доступны следующие опции:
//1. returnArrayOfLength(int) - сколько элементов,
//которые соответствуют критериям, нужно взять
//
//2. returnBeforeIndex(int) или
//.returnAfterIndex(int) - до или после какого индекса следует
//взять элементы из отфильтрованного по критериям массива
//Вызов 1 или 2 обнуляет данные, переданные с помощью 3
//
//3. returnItemsOfIndexes(Integer...) - перечисление индексов
//элементов отфильтрованного по критериям массива, которые следует
//взять. Вызов данного метода обнуляет данные,
//переданные с помощью 1 и 2
//
//4. returnIfEntireLength(ItemsCountCondition) - при достижении какого
//количества элементов, которые соответствуют критериям, следует вернуть
//отфильтрованный массив целиком или массив его отдельных элементов
//
//5. returnOnCondition(Criteria<T[]> criteria),
//returnOnCondition(String description, Predicate<T[]> criteria),
//так же returnOnConditionOr(Criteria<T[]>...),
//returnOnConditionOnlyOne(Criteria<T[]>...)
//или returnOnConditionNot(Criteria<T[]>...) с помощью
//вызова этих методов перечисляются критерии, которым должен
//соответствовать весь массив отфильтрованных элементов.
//При достижении этого условия возвращается отфильтрованный массив целиком
//или массив его отдельных элементов
//
//Если по каким либо параметрам 1,2,3,4 или 5 не удается получить
//желаемый результат, то выбрасывается исключение
//при необходимости, можно сделать доступными методы timeOut и pollingInterval
//при необходимости, можно переопределить методы onStart, onSuccess, onFailure
Expand Down
Loading

0 comments on commit 5f4d712

Please sign in to comment.