public <T> T findAllLabels(final String name, final Collector<String, ?, T> collector) { return getLabels().stream() .filter(label -> name.equals(label.getName())) .map(Label::getValue) .collect(collector); }
default <T> T findAll(String name, Collector<String, ?, T> collector) { return getLabels().stream() .filter(label -> name.equals(label.getName())) .map(Label::getValue) .collect(collector); }
default Optional<String> findOne(String name) { return getLabels().stream() .filter(label -> name.equals(label.getName())) .map(Label::getValue) .findAny(); }
public Optional<String> findOneLabel(final String name) { return getLabels().stream() .filter(label -> name.equals(label.getName())) .findAny() .map(Label::getValue); }
private static String getLabelValuesAsString(final List<LaunchResults> launchesResults, final LabelName labelName) { final String values = launchesResults.stream() .flatMap(results -> results.getResults().stream()) .flatMap(result -> result.getLabels().stream()) .filter(label -> labelName.value().equals(label.getName())) .map(Label::getValue) .distinct() .sorted() .collect(Collectors.joining(" ")) .toLowerCase(); return values.isEmpty() ? UNDEFINED : values; }
private void addIdeaLink(final TestResult testResult) { final String fileExtension = "java"; final String port = getProperty(ALLURE_IDEA_PORT).orElse("63342"); final Optional<String> testClassName = testResult.getLabels().stream() .filter(label -> "testClass".equals(label.getName())) .map(Label::getValue) .findFirst(); testClassName.ifPresent(name -> { final String path = name.replace(".", "/"); final String url = String.format("http://localhost:%s/api/file?file=%s.%s", port, path, fileExtension); testResult.getLinks().add(new Link().setName(IDEA_LINK_NAME).setType(IDEA_LINK_TYPE).setUrl(url)); }); }
@Test public void shouldSetFramework() throws Exception { process( "xunitdata/framework-test.xml", "passed-test.xml" ); final ArgumentCaptor<TestResult> captor = ArgumentCaptor.forClass(TestResult.class); verify(visitor, times(1)).visitTestResult(captor.capture()); assertThat(captor.getAllValues()) .hasSize(1) .flatExtracting(TestResult::getLabels) .filteredOn(label -> label.getName().equals(LabelName.FRAMEWORK.value())) .extracting(Label::getValue) .containsExactly("junit"); }
@Test public void shouldFindAllWithNullValue() throws Exception { final TestResult result = new TestResult(); result.getLabels().add(new Label().setName("hey").setValue(null)); result.getLabels().add(new Label().setName("hey").setValue("a")); result.getLabels().add(new Label().setName("hey").setValue("b")); final List<String> found = result.findAllLabels("hey"); assertThat(found) .containsExactlyInAnyOrder(null, "a", "b"); } }
@Test public void shouldCopyLabelsFromSuite() throws Exception { Set<TestResult> testCases = process( "allure1/sample-testsuite.json", generateTestSuiteJsonName() ).getResults(); assertThat(testCases) .hasSize(1) .flatExtracting(TestResult::getLabels) .filteredOn(label -> LabelName.STORY.value().equals(label.getName())) .hasSize(2) .extracting(Label::getValue) .containsExactlyInAnyOrder("SuccessStory", "OtherStory"); }
private List<LaunchResults> getSimpleLaunchResults() { final TestResult first = new TestResult() .setName("first") .setLabels(singletonList(new Label().setName("suite").setValue("s1"))); final TestResult second = new TestResult() .setName("second") .setLabels(singletonList(new Label().setName("suite").setValue("s1"))); final TestResult third = new TestResult() .setName("third") .setLabels(singletonList(new Label().setName("suite").setValue("s2"))); return createSingleLaunchResults(second, first, third); } }
public <T> T findAllLabels(final String name, final Collector<String, ?, T> collector) { return getLabels().stream() .filter(label -> name.equals(label.getName())) .map(Label::getValue) .collect(collector); }