Skip to content

Instantly share code, notes, and snippets.

@rafarocha
Last active December 20, 2015 03:29
Show Gist options
  • Select an option

  • Save rafarocha/6064186 to your computer and use it in GitHub Desktop.

Select an option

Save rafarocha/6064186 to your computer and use it in GitHub Desktop.
Exemplo de teste utilizando hamcrest e guava para obter apenas os números pares
@Test public void testFilterWithPredicatePairNumbers() {
final List<Integer> numbers = getNumbers();
final List<Integer> onlyPair = filter(numbers, new Predicate<Integer>() {
public boolean apply(Integer input) {
return input % 2 == 0;
}
});
assertThat("deveriam vir apenas os numeros pares entre [0-10]",
onlyPair, are(2, 4, 6, 8, 10) );
}
private List<Integer> getNumbers() {
Integer[] array = new Integer[10];
for (int i = 0; i < array.length; i++) {
array[i] = i + 1;
}
return Lists.newArrayList( array );
}
private List<Integer> filter(List<Integer> numeros, Predicate<Integer> predicate) {
List<Integer> list = Lists.newArrayList();
for (Integer numero : numeros) {
if ( predicate.apply(numero) ) {
list.add( numero );
}
}
return list;
}
public static <T> Matcher<List<? super T>> are(final T... ts) {
final Collection<?> c1 = Arrays.asList(ts);
return new BaseMatcher<List<? super T>>() {
public boolean matches(Object o) {
Collection<?> c2 = (Collection<?>) o;
return c1.containsAll(c2) && c2.containsAll(c1);
}
public void describeTo(Description description) {
description.appendText("elements: ");
description.appendValueList("(", ",", ")", ts);
}
};
}
@rafarocha
Copy link
Author

depências maven que utilizei. usei a versão 11.0.2 do guava devido a estar em projeto com java sdk 1.5

<dependency>
    <groupId>org.reflections</groupId>
    <artifactId>reflections</artifactId>
    <version>0.9.9-RC1</version>
</dependency>
<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.11</version>
</dependency>       
<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>11.0.2</version>
</dependency>
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>com.springsource.org.apache.commons.lang</artifactId>
    <version>2.6.0</version>
</dependency>

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment