Max implements
        InputOutput<Iterable<? extends Element>, Element>,
        MultiInput<Element>,
        ElementComparison { @Override public Iterable<? extends Element> getInput() { return input; }  @Override @JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.PROPERTY, property = "class") List<Comparator<Element>> getComparators(); void setComparators(final List<Comparator<Element>> comparators); @Override Iterable<? extends Element> getInput(); @Override void setInput(final Iterable<? extends Element> input); @Override TypeReference<Element> getOutputTypeReference(); @Override Max shallowClone(); @Override Map<String, String> getOptions(); @Override void setOptions(final Map<String, String> options);  }
@Test @Override public void builderShouldCreatePopulatedOperation() { final Max max = new Max.Builder().input(new Entity.Builder() .group(TestGroups.ENTITY) .property("property", 1) .build(), new Entity.Builder() .group(TestGroups.ENTITY) .property("property", 2) .build()).comparators(new ElementPropertyComparator() { @Override public int compare(final Element e1, final Element e2) { return 0; } }).build(); assertThat(max.getInput(), is(notNullValue())); assertThat(max.getInput(), iterableWithSize(2)); assertThat(Streams.toStream(max.getInput()) .map(e -> e.getProperty("property")) .collect(toList()), containsInAnyOrder(1, 2)); }