use of com.epam.reportportal.service.Launch in project agent-java-junit5 by reportportal.
the class CodeReferenceTest method verify_static_test_code_reference_generation.
@Test
public void verify_static_test_code_reference_generation() {
TestUtils.runClasses(SingleTest.class);
Launch launch = CodeReferenceTestExtension.LAUNCH;
ArgumentCaptor<StartTestItemRQ> suiteCaptor = ArgumentCaptor.forClass(StartTestItemRQ.class);
// Start parent Suite
verify(launch, times(1)).startTestItem(suiteCaptor.capture());
ArgumentCaptor<StartTestItemRQ> testCaptor = ArgumentCaptor.forClass(StartTestItemRQ.class);
// Start a test
verify(launch, times(1)).startTestItem(notNull(), testCaptor.capture());
String className = SingleTest.class.getCanonicalName();
StartTestItemRQ suiteRq = suiteCaptor.getValue();
assertThat(suiteRq.getCodeRef(), equalTo(className));
StartTestItemRQ testRq = testCaptor.getValue();
assertThat(testRq.getCodeRef(), equalTo(className + ".singleTest"));
}
use of com.epam.reportportal.service.Launch in project agent-java-junit5 by reportportal.
the class JunitNestedTestTest method verify_static_nested_tests.
@Test
@SuppressWarnings("unchecked")
public void verify_static_nested_tests() {
TestUtils.runClasses(JunitClassNestedTests.class);
Launch launch = TestExtension.LAUNCH;
ArgumentCaptor<StartTestItemRQ> suiteCaptor = ArgumentCaptor.forClass(StartTestItemRQ.class);
// Start parent Suite
verify(launch, times(1)).startTestItem(suiteCaptor.capture());
ArgumentCaptor<Maybe<String>> testIdCaptor = ArgumentCaptor.forClass(Maybe.class);
ArgumentCaptor<StartTestItemRQ> itemRqCaptor = ArgumentCaptor.forClass(StartTestItemRQ.class);
// Start inner items
verify(launch, times(4)).startTestItem(testIdCaptor.capture(), itemRqCaptor.capture());
ArgumentCaptor<Maybe<String>> finishTestIdCaptor = ArgumentCaptor.forClass(Maybe.class);
ArgumentCaptor<FinishTestItemRQ> finishItemRqCaptor = ArgumentCaptor.forClass(FinishTestItemRQ.class);
verify(launch, times(5)).finishTestItem(finishTestIdCaptor.capture(), finishItemRqCaptor.capture());
List<Pair<Pair<Maybe<String>, StartTestItemRQ>, Pair<Maybe<String>, FinishTestItemRQ>>> rqList = toList(suiteCaptor, testIdCaptor, itemRqCaptor, finishTestIdCaptor, finishItemRqCaptor);
IntStream.range(1, 4).forEach(i -> {
Pair<Pair<Maybe<String>, StartTestItemRQ>, Pair<Maybe<String>, FinishTestItemRQ>> item = rqList.get(i);
Pair<Pair<Maybe<String>, StartTestItemRQ>, Pair<Maybe<String>, FinishTestItemRQ>> parent = rqList.get(i - 1);
assertThat(item.getKey().getKey(), equalTo(parent.getValue().getKey()));
});
Pair<Pair<Maybe<String>, StartTestItemRQ>, Pair<Maybe<String>, FinishTestItemRQ>> item = rqList.get(4);
Pair<Pair<Maybe<String>, StartTestItemRQ>, Pair<Maybe<String>, FinishTestItemRQ>> parent = rqList.get(2);
assertThat(item.getKey().getKey(), equalTo(parent.getValue().getKey()));
}
use of com.epam.reportportal.service.Launch in project agent-java-junit5 by reportportal.
the class ReportPortalExtension method getLaunch.
/**
* Returns a current launch instance, starts new if no such instance
*
* @param context JUnit's launch context
* @return represents current launch
*/
protected Launch getLaunch(ExtensionContext context) {
return launchMap.computeIfAbsent(getLaunchId(context), id -> {
ReportPortal rp = getReporter();
ListenerParameters params = rp.getParameters();
StartLaunchRQ rq = buildStartLaunchRq(params);
Launch launch = rp.newLaunch(rq);
Runtime.getRuntime().addShutdownHook(getShutdownHook(id));
Maybe<String> launchIdResponse = launch.start();
if (params.isCallbackReportingEnabled()) {
TEST_ITEM_TREE.setLaunchId(launchIdResponse);
}
return launch;
});
}
use of com.epam.reportportal.service.Launch in project agent-java-junit5 by reportportal.
the class ReportPortalExtension method finishBeforeAfter.
private void finishBeforeAfter(ExtensionContext context, Maybe<String> id, ItemStatus status) {
Launch launch = getLaunch(context);
launch.finishTestItem(id, buildFinishTestItemRq(context, status));
}
use of com.epam.reportportal.service.Launch in project agent-java-junit5 by reportportal.
the class ReportPortalExtension method startBeforeAfter.
/**
* Starts the following methods: <code>@BeforeEach</code>, <code>@AfterEach</code>, <code>@BeforeAll</code> or <code>@AfterAll</code>
*
* @param method a method reference
* @param parentContext JUnit's test context of a parent item
* @param context JUnit's test context of a method to start
* @param itemType a method's item type (to display on RP)
* @return an ID of the method
*/
protected Maybe<String> startBeforeAfter(Method method, ExtensionContext parentContext, ExtensionContext context, ItemType itemType) {
Launch launch = getLaunch(context);
StartTestItemRQ rq = buildStartConfigurationRq(method, parentContext, context, itemType);
return getItemId(parentContext).map(pid -> launch.startTestItem(pid, rq)).orElseGet(() -> launch.startTestItem(rq));
}
Aggregations