Skip to content

Commit 51f256c

Browse files
authored
add more tests for aspectj (fixes #210, fixes #305, via #322)
1 parent e3161ac commit 51f256c

File tree

2 files changed

+41
-40
lines changed

2 files changed

+41
-40
lines changed

allure-assertj/src/main/java/io/qameta/allure/assertj/AllureAspectJ.java

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,12 @@ public class AllureAspectJ {
4545

4646
private static final Logger LOGGER = LoggerFactory.getLogger(AllureAspectJ.class);
4747

48-
private static AllureLifecycle lifecycle;
48+
private static InheritableThreadLocal<AllureLifecycle> lifecycle = new InheritableThreadLocal<AllureLifecycle>() {
49+
@Override
50+
protected AllureLifecycle initialValue() {
51+
return Allure.getLifecycle();
52+
}
53+
};
4954

5055
@Around("execution(* org.assertj.core.api.AbstractAssert+.*(..)) "
5156
+ "|| execution(* org.assertj.core.api.Assertions.assertThat(..))")
@@ -78,21 +83,18 @@ public Object step(final ProceedingJoinPoint joinPoint) throws Throwable {
7883
* @param allure allure lifecycle to set.
7984
*/
8085
public static void setLifecycle(final AllureLifecycle allure) {
81-
lifecycle = allure;
86+
lifecycle.set(allure);
8287
}
8388

8489
public static AllureLifecycle getLifecycle() {
85-
if (Objects.isNull(lifecycle)) {
86-
lifecycle = Allure.getLifecycle();
87-
}
88-
return lifecycle;
90+
return lifecycle.get();
8991
}
9092

9193
private static String arrayToString(final Object... array) {
9294
return Stream.of(array)
93-
.map(object -> nonNull(object) && object.getClass().isArray()
94-
? arrayToString((Object[]) object)
95-
: Objects.toString(object))
96-
.collect(Collectors.joining(" "));
95+
.map(object -> nonNull(object) && object.getClass().isArray()
96+
? arrayToString((Object[]) object)
97+
: Objects.toString(object))
98+
.collect(Collectors.joining(" "));
9799
}
98100
}

allure-assertj/src/test/java/io/qameta/allure/assertj/AllureAspectJTest.java

Lines changed: 29 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -15,59 +15,58 @@
1515
*/
1616
package io.qameta.allure.assertj;
1717

18-
import io.qameta.allure.AllureLifecycle;
1918
import io.qameta.allure.model.StepResult;
2019
import io.qameta.allure.model.TestResult;
2120
import io.qameta.allure.test.AllureFeatures;
22-
import io.qameta.allure.test.AllureResultsWriterStub;
23-
import org.junit.jupiter.api.BeforeEach;
21+
import io.qameta.allure.test.AllureResults;
22+
import org.assertj.core.api.SoftAssertions;
2423
import org.junit.jupiter.api.Test;
2524

26-
import java.util.UUID;
27-
25+
import static io.qameta.allure.test.RunUtils.runWithinTestContext;
2826
import static org.assertj.core.api.Assertions.assertThat;
2927

3028
/**
3129
* @author charlie (Dmitry Baev).
3230
*/
3331
class AllureAspectJTest {
3432

35-
private AllureResultsWriterStub results;
36-
37-
private AllureLifecycle lifecycle;
38-
39-
@BeforeEach
40-
public void initLifecycle() {
41-
results = new AllureResultsWriterStub();
42-
lifecycle = new AllureLifecycle(results);
43-
AllureAspectJ.setLifecycle(lifecycle);
44-
}
45-
4633
@AllureFeatures.Steps
4734
@Test
4835
void shouldCreateStepsForAsserts() {
49-
final String uuid = UUID.randomUUID().toString();
50-
final TestResult result = new TestResult().setUuid(uuid);
51-
52-
lifecycle.scheduleTestCase(result);
53-
lifecycle.startTestCase(uuid);
54-
55-
56-
assertThat("Data")
57-
.hasSize(4);
36+
final AllureResults results = runWithinTestContext(() -> {
37+
assertThat("Data")
38+
.hasSize(4);
39+
}, AllureAspectJ::setLifecycle);
40+
assertThat(results.getTestResults())
41+
.flatExtracting(TestResult::getSteps)
42+
.extracting(StepResult::getName)
43+
.containsExactly("assertThat 'Data'", "hasSize '4'");
44+
}
5845

59-
lifecycle.stopTestCase(uuid);
60-
lifecycle.writeTestCase(uuid);
46+
@AllureFeatures.Steps
47+
@Test
48+
void shouldHandleNullableObject() {
49+
final AllureResults results = runWithinTestContext(() -> {
50+
assertThat((Object) null).as("Nullable object").isNull();
51+
}, AllureAspectJ::setLifecycle);
6152

6253
assertThat(results.getTestResults())
6354
.flatExtracting(TestResult::getSteps)
6455
.extracting(StepResult::getName)
65-
.containsExactly("assertThat 'Data'", "hasSize '4'");
56+
.containsExactly("assertThat 'null'", "as 'Nullable object '", "isNull");
6657
}
6758

6859
@AllureFeatures.Steps
6960
@Test
70-
public void shouldHandleNullableObject() {
71-
assertThat((Object) null).as("Nullable object").isNull();
61+
void softAssertions() {
62+
final AllureResults results = runWithinTestContext(() -> {
63+
final SoftAssertions soft = new SoftAssertions();
64+
soft.assertThat(25).as("Test description").isEqualTo(26);
65+
}, AllureAspectJ::setLifecycle);
66+
67+
assertThat(results.getTestResults())
68+
.flatExtracting(TestResult::getSteps)
69+
.extracting(StepResult::getName)
70+
.contains("as 'Test description '", "isEqualTo '26'");
7271
}
7372
}

0 commit comments

Comments
 (0)