Skip to content

Commit bbd7da4

Browse files
authored
use java 17 for build with release target 8 (via allure-framework#845)
1 parent c0ed1e2 commit bbd7da4

14 files changed

Lines changed: 233 additions & 164 deletions

File tree

.github/release.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@ changelog:
1414
- title: '⬆️ Dependency Updates'
1515
labels:
1616
- 'type:dependencies'
17+
- title: '📖 Documentation improvements'
18+
labels:
19+
- 'type:documentation'
1720
- title: '⛔️ Security'
1821
labels:
1922
- 'type:security'

.github/workflows/build.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ jobs:
1717
strategy:
1818
fail-fast: false
1919
matrix:
20-
java-version: [ '8.0.x', '11.0.x' ]
20+
java-version: [ '17.0.x' ]
2121
steps:
2222
- uses: actions/[email protected]
2323

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,22 @@
11
name: "Verify type labels"
22

33
on:
4-
pull_request:
5-
types: [ labeled, unlabeled ]
4+
pull_request_target:
5+
types: [opened, labeled, unlabeled, synchronize]
66

77
jobs:
88
triage:
99
runs-on: ubuntu-latest
1010
steps:
11-
- uses: baev/match-label-action@master
11+
- uses: baev/action-label-verify@main
1212
with:
13-
allowed: 'type:bug,type:new feature,type:improvement,type:dependencies,type:internal,type:invalid'
13+
repo-token: ${{ secrets.GITHUB_TOKEN }}
14+
allowed: |
15+
type:bug
16+
type:dependencies
17+
type:improvement
18+
type:internal
19+
type:invalid
20+
type:new feature
21+
type:security
22+
type:documentation

.github/workflows/publish.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,11 @@ jobs:
1010
steps:
1111
- uses: actions/[email protected]
1212

13-
- name: Set up JDK 1.8
13+
- name: "Set up JDK 17.0.x"
1414
uses: actions/setup-java@v3
1515
with:
1616
distribution: 'zulu'
17-
java-version: 8.0.x
17+
java-version: '17.0.x'
1818

1919
- name: Set up GPG
2020
run: echo -n "${GPG_PRIVATE_KEY}" | base64 --decode > ${GITHUB_WORKSPACE}/${GPG_KEY_ID}.gpg

allure-awaitility/src/main/java/io/qameta/allure/awaitility/AllureAwaitilityListener.java

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -177,16 +177,15 @@ public void conditionEvaluated(final EvaluatedCondition<Object> condition) {
177177
final long remainingTime = unit.convert(condition.getRemainingTimeInMS(), MILLISECONDS);
178178
final String unitAsString = unit.toString().toLowerCase();
179179

180-
final String message;
181-
if (condition.isSatisfied()) {
182-
message =
183-
String.format(onSatisfiedStepTextPattern, description, elapsedTime, unitAsString, remainingTime,
184-
unitAsString, new TemporalDuration(condition.getPollInterval()));
185-
} else {
186-
message =
187-
String.format(onAwaitStepTextPattern, description, elapsedTime, unitAsString, remainingTime,
188-
unitAsString, new TemporalDuration(condition.getPollInterval()));
189-
}
180+
final String message = String.format(
181+
condition.isSatisfied() ? onSatisfiedStepTextPattern : onAwaitStepTextPattern,
182+
description,
183+
elapsedTime,
184+
unitAsString,
185+
remainingTime,
186+
unitAsString,
187+
new TemporalDuration(condition.getPollInterval())
188+
);
190189

191190
getLifecycle().updateStep(awaitilityCondition -> {
192191
final String lastAwaitStepUUID = UUID.randomUUID().toString();

allure-awaitility/src/test/java/io/qameta/allure/awaitility/ConditionListenersPositiveTest.java

Lines changed: 61 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -16,23 +16,26 @@
1616
package io.qameta.allure.awaitility;
1717

1818
import io.qameta.allure.model.Status;
19+
import io.qameta.allure.model.StepResult;
1920
import io.qameta.allure.model.TestResult;
21+
import org.junit.jupiter.api.DynamicNode;
22+
import org.junit.jupiter.api.DynamicTest;
2023
import org.junit.jupiter.api.Test;
21-
import org.junit.jupiter.api.TestInstance;
24+
import org.junit.jupiter.api.TestFactory;
2225

2326
import java.time.Duration;
2427
import java.time.temporal.ChronoUnit;
2528
import java.util.List;
2629
import java.util.concurrent.atomic.AtomicInteger;
30+
import java.util.stream.Stream;
2731

2832
import static io.qameta.allure.test.RunUtils.runWithinTestContext;
2933
import static org.assertj.core.api.Assertions.assertThat;
3034
import static org.awaitility.Awaitility.await;
3135
import static org.hamcrest.Matchers.is;
32-
import static org.junit.jupiter.api.Assertions.assertAll;
3336
import static org.junit.jupiter.api.Assertions.assertEquals;
37+
import static org.junit.jupiter.api.DynamicTest.dynamicTest;
3438

35-
@TestInstance(TestInstance.Lifecycle.PER_METHOD)
3639
class ConditionListenersPositiveTest {
3740

3841
/**
@@ -45,8 +48,8 @@ class ConditionListenersPositiveTest {
4548
* <li>2. Top level step has passed status</li>
4649
* <li>3. Top level step has default name</li>
4750
*/
48-
@Test
49-
void globalSettingsAwaitWoAliasCheckTopLevelPassedStep() {
51+
@TestFactory
52+
Stream<DynamicNode> globalSettingsAwaitWoAliasCheckTopLevelPassedStep() {
5053
final List<TestResult> testResult = runWithinTestContext(() -> {
5154
final AtomicInteger atomicInteger = new AtomicInteger(0);
5255
await().with()
@@ -57,19 +60,20 @@ void globalSettingsAwaitWoAliasCheckTopLevelPassedStep() {
5760
},
5861
AllureAwaitilityListener::setLifecycle
5962
).getTestResults();
60-
assertAll(
61-
() -> assertEquals(
62-
1, testResult.get(0).getSteps().size(),
63-
"Exactly 1 top level step for 1 awaitility condition"
63+
64+
return Stream.of(
65+
DynamicTest.dynamicTest("Exactly 1 top level step for 1 awaitility condition", () ->
66+
assertThat(testResult.get(0).getSteps())
67+
.hasSize(1)
6468
),
65-
() -> assertEquals(
66-
Status.PASSED, testResult.get(0).getSteps().get(0).getStatus(),
67-
"Top level step has passed status"
69+
DynamicTest.dynamicTest("Top level step has passed status", () ->
70+
assertThat(testResult.get(0).getSteps())
71+
.allMatch(step -> Status.PASSED.equals(step.getStatus()))
6872
),
69-
() -> assertEquals(
70-
"Awaitility: Starting evaluation",
71-
testResult.get(0).getSteps().get(0).getName(),
72-
"Top level step has default name because await() wo alias"
73+
DynamicTest.dynamicTest("Top level step has default name because await() wo alias", () ->
74+
assertThat(testResult.get(0).getSteps())
75+
.extracting(StepResult::getName)
76+
.containsExactly("Awaitility: Starting evaluation")
7377
)
7478
);
7579
}
@@ -111,8 +115,8 @@ void globalSettingsAwaitWithAliasCheckTopLevelPassedStep() {
111115
* <li>2. All second-level steps should have passed status for successful condition evaluation</li>
112116
* <li>3. All second-level steps should have information about polling intervals and evaluation</li>
113117
*/
114-
@Test
115-
void globalSettingsCheckAwaitWoAliasSecondLevelPassedSteps() {
118+
@TestFactory
119+
Stream<DynamicNode> globalSettingsCheckAwaitWoAliasSecondLevelPassedSteps() {
116120
final List<TestResult> testResult = runWithinTestContext(() -> {
117121
final AtomicInteger atomicInteger = new AtomicInteger(0);
118122
await().with()
@@ -123,43 +127,47 @@ void globalSettingsCheckAwaitWoAliasSecondLevelPassedSteps() {
123127
},
124128
AllureAwaitilityListener::setLifecycle
125129
).getTestResults();
126-
assertAll(
127-
() -> assertEquals(
128-
4, testResult.get(0).getSteps().get(0).getSteps().size(),
129-
"Exactly 4 second level steps for 4 polling iterations"
130+
131+
return Stream.of(
132+
dynamicTest("Exactly 4 second level steps for 4 polling iterations", () ->
133+
assertThat(testResult.get(0).getSteps().get(0).getSteps())
134+
.hasSize(4)
130135
),
131-
() -> assertEquals(
132-
4, (int) testResult.get(0).getSteps().get(0).getSteps().stream()
133-
.filter(x -> x.getStatus().equals(Status.PASSED)).count(),
134-
"All second level steps has passed statuses"
136+
dynamicTest("All second level steps has passed statuses", () ->
137+
assertThat(testResult.get(0).getSteps().get(0).getSteps())
138+
.allMatch(x -> x.getStatus().equals(Status.PASSED))
135139
),
136-
() -> assertThat(testResult.get(0).getSteps().get(0).getSteps().get(0).getName())
137-
.contains("Lambda expression in io.qameta.allure.awaitility.ConditionListenersPositiveTest")
138-
.contains("that uses java.util.concurrent.atomic.AtomicInteger:")
139-
.contains("expected <3> but was <0>")
140-
.contains("elapsed time")
141-
.contains("remaining time")
142-
.contains("last poll interval was"),
143-
() -> assertThat(testResult.get(0).getSteps().get(0).getSteps().get(1).getName())
144-
.contains("Lambda expression in io.qameta.allure.awaitility.ConditionListenersPositiveTest")
145-
.contains("that uses java.util.concurrent.atomic.AtomicInteger:")
146-
.contains("expected <3> but was <1>")
147-
.contains("elapsed time")
148-
.contains("remaining time")
149-
.contains("last poll interval was"),
150-
() -> assertThat(testResult.get(0).getSteps().get(0).getSteps().get(2).getName())
151-
.contains("Lambda expression in io.qameta.allure.awaitility.ConditionListenersPositiveTest")
152-
.contains("that uses java.util.concurrent.atomic.AtomicInteger:")
153-
.contains("expected <3> but was <2>")
154-
.contains("elapsed time")
155-
.contains("remaining time")
156-
.contains("last poll interval was"),
157-
() -> assertThat(testResult.get(0).getSteps().get(0).getSteps().get(3).getName())
158-
.contains("Lambda expression in io.qameta.allure.awaitility.ConditionListenersPositiveTest")
159-
.contains("that uses java.util.concurrent.atomic.AtomicInteger:")
160-
.contains("reached its end value of <3> after")
161-
.contains("remaining time")
162-
.contains("last poll interval was")
140+
dynamicTest("Second level step 1 name", () ->
141+
assertThat(testResult.get(0).getSteps().get(0).getSteps().get(0).getName())
142+
.contains("io.qameta.allure.awaitility.ConditionListenersPositiveTest")
143+
.contains("expected <3> but was <0>")
144+
.contains("elapsed time")
145+
.contains("remaining time")
146+
.contains("last poll interval was")
147+
),
148+
dynamicTest("Second level step 2 name", () ->
149+
assertThat(testResult.get(0).getSteps().get(0).getSteps().get(1).getName())
150+
.contains("io.qameta.allure.awaitility.ConditionListenersPositiveTest")
151+
.contains("expected <3> but was <1>")
152+
.contains("elapsed time")
153+
.contains("remaining time")
154+
.contains("last poll interval was")
155+
),
156+
dynamicTest("Second level step 3 name", () ->
157+
assertThat(testResult.get(0).getSteps().get(0).getSteps().get(2).getName())
158+
.contains("io.qameta.allure.awaitility.ConditionListenersPositiveTest")
159+
.contains("expected <3> but was <2>")
160+
.contains("elapsed time")
161+
.contains("remaining time")
162+
.contains("last poll interval was")
163+
),
164+
dynamicTest("Second level step 4 name", () ->
165+
assertThat(testResult.get(0).getSteps().get(0).getSteps().get(3).getName())
166+
.contains("io.qameta.allure.awaitility.ConditionListenersPositiveTest")
167+
.contains("reached its end value of <3> after")
168+
.contains("remaining time")
169+
.contains("last poll interval was")
170+
)
163171
);
164172
}
165173

allure-awaitility/src/test/java/io/qameta/allure/awaitility/GlobalSettingsNegativeTest.java

Lines changed: 29 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -20,20 +20,23 @@
2020
import org.awaitility.Awaitility;
2121
import org.junit.jupiter.api.AfterEach;
2222
import org.junit.jupiter.api.BeforeEach;
23+
import org.junit.jupiter.api.DynamicNode;
2324
import org.junit.jupiter.api.Test;
25+
import org.junit.jupiter.api.TestFactory;
2426
import org.junit.jupiter.api.TestInstance;
2527

2628
import java.time.Duration;
2729
import java.time.temporal.ChronoUnit;
2830
import java.util.List;
2931
import java.util.concurrent.atomic.AtomicInteger;
32+
import java.util.stream.Stream;
3033

3134
import static io.qameta.allure.test.RunUtils.runWithinTestContext;
3235
import static org.assertj.core.api.Assertions.assertThat;
3336
import static org.awaitility.Awaitility.await;
3437
import static org.hamcrest.Matchers.is;
35-
import static org.junit.jupiter.api.Assertions.assertAll;
3638
import static org.junit.jupiter.api.Assertions.assertEquals;
39+
import static org.junit.jupiter.api.DynamicTest.dynamicTest;
3740

3841
@TestInstance(TestInstance.Lifecycle.PER_METHOD)
3942
class GlobalSettingsNegativeTest {
@@ -83,8 +86,8 @@ void globalSettingsAwaitWoAliasCheckTopLevelBrokenStep() {
8386
* <li>2. All second-level steps should have passed or broken status for successful and timeout evaluations</li>
8487
* <li>3. All second-level steps should have information about polling intervals and evaluation</li>
8588
*/
86-
@Test
87-
void globalSettingsCheckAwaitWoAliasSecondLevelTimeoutStep() {
89+
@TestFactory
90+
Stream<DynamicNode> globalSettingsCheckAwaitWoAliasSecondLevelTimeoutStep() {
8891
final List<TestResult> testResult = runWithinTestContext(() -> {
8992
final AtomicInteger atomicInteger = new AtomicInteger(0);
9093
await().with()
@@ -94,26 +97,29 @@ void globalSettingsCheckAwaitWoAliasSecondLevelTimeoutStep() {
9497
},
9598
AllureAwaitilityListener::setLifecycle
9699
).getTestResults();
97-
assertAll(
98-
() -> assertEquals(
99-
2, testResult.get(0).getSteps().get(0).getSteps().size(),
100-
"Exactly 2 second level steps for 2 polling iterations"
101-
),
102-
() -> assertThat(testResult.get(0).getSteps().get(0).getSteps().get(0).getName())
103-
.contains("Lambda expression in io.qameta.allure.awaitility.GlobalSettingsNegativeTest")
104-
.contains("that uses java.util.concurrent.atomic.AtomicInteger:")
105-
.contains("expected <3> but was <0>")
106-
.contains("elapsed time")
107-
.contains("remaining time")
108-
.contains("last poll interval was"),
109-
() -> assertThat(testResult.get(0).getSteps().get(0).getSteps().get(0).getStatus())
110-
.isEqualTo(Status.PASSED),
111-
() -> assertThat(testResult.get(0).getSteps().get(0).getSteps().get(1).getName())
112-
.contains("Condition timeout.")
113-
.contains("Lambda expression in io.qameta.allure.awaitility.GlobalSettingsNegativeTest")
114-
.contains("expected <3> but was <0> within 1 seconds"),
115-
() -> assertThat(testResult.get(0).getSteps().get(0).getSteps().get(1).getStatus())
116-
.isEqualTo(Status.BROKEN)
100+
101+
return Stream.of(
102+
dynamicTest("Second level steps count", () ->
103+
assertThat(testResult.get(0).getSteps().get(0).getSteps())
104+
.as("Exactly 2 second level steps for 2 polling iterations")
105+
.hasSize(2)),
106+
dynamicTest("Second level step 1 name", () ->
107+
assertThat(testResult.get(0).getSteps().get(0).getSteps().get(0).getName())
108+
.contains("io.qameta.allure.awaitility.GlobalSettingsNegativeTest")
109+
.contains("expected <3> but was <0>")
110+
.contains("elapsed time")
111+
.contains("remaining time")
112+
.contains("last poll interval was")),
113+
dynamicTest("Second level step 1 status", () ->
114+
assertThat(testResult.get(0).getSteps().get(0).getSteps().get(0).getStatus())
115+
.isEqualTo(Status.PASSED)),
116+
dynamicTest("Second level step 2 name", () ->
117+
assertThat(testResult.get(0).getSteps().get(0).getSteps().get(1).getName())
118+
.contains("Condition timeout.")
119+
.contains("io.qameta.allure.awaitility.GlobalSettingsNegativeTest")),
120+
dynamicTest("Second level step 2 status", () ->
121+
assertThat(testResult.get(0).getSteps().get(0).getSteps().get(1).getStatus())
122+
.isEqualTo(Status.BROKEN))
117123
);
118124
}
119125

0 commit comments

Comments
 (0)