Refactor Javaslang samples (#1469)
This commit is contained in:
parent
60bbd6de56
commit
faea5eb510
|
@ -38,7 +38,7 @@
|
|||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<version>3.3</version>
|
||||
<version>3.5.1</version>
|
||||
<configuration>
|
||||
<source>1.8</source>
|
||||
<target>1.8</target>
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
package com.baeldung.javaslang;
|
||||
|
||||
|
||||
import javaslang.CheckedFunction1;
|
||||
import javaslang.collection.Stream;
|
||||
import javaslang.test.Arbitrary;
|
||||
|
@ -8,42 +7,42 @@ import javaslang.test.CheckResult;
|
|||
import javaslang.test.Property;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import static javaslang.API.*;
|
||||
|
||||
public class PropertyBasedTest {
|
||||
|
||||
public Stream<String> stringsSupplier() {
|
||||
return Stream.from(0).map(i -> {
|
||||
boolean divByTwo = i % 2 == 0;
|
||||
boolean divByFive = i % 5 == 0;
|
||||
private static Predicate<Integer> divisibleByTwo = i -> i % 2 == 0;
|
||||
private static Predicate<Integer> divisibleByFive = i -> i % 5 == 0;
|
||||
|
||||
if(divByFive && divByTwo){
|
||||
return "DividedByTwoAndFiveWithoutRemainder";
|
||||
}else if(divByFive){
|
||||
return "DividedByFiveWithoutRemainder";
|
||||
}else if(divByTwo){
|
||||
return "DividedByTwoWithoutRemainder";
|
||||
}
|
||||
return "";
|
||||
});
|
||||
private Stream<String> stringsSupplier() {
|
||||
return Stream.from(0).map(i -> Match(i).of(
|
||||
Case($(divisibleByFive.and(divisibleByTwo)), "DividedByTwoAndFiveWithoutRemainder"),
|
||||
Case($(divisibleByFive), "DividedByFiveWithoutRemainder"),
|
||||
Case($(divisibleByTwo), "DividedByTwoWithoutRemainder"),
|
||||
Case($(), "")));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void givenArbitrarySeq_whenCheckThatEverySecondElementIsEqualToString_thenTestPass() {
|
||||
//given
|
||||
Arbitrary<Integer> multiplesOf2 = Arbitrary.integer()
|
||||
.filter(i -> i > 0)
|
||||
.filter(i -> i % 2 == 0 && i % 5 != 0);
|
||||
Arbitrary<Integer> multiplesOf2 = Arbitrary
|
||||
.integer()
|
||||
.filter(i -> i > 0)
|
||||
.filter(i -> i % 2 == 0 && i % 5 != 0);
|
||||
|
||||
//when
|
||||
CheckedFunction1<Integer, Boolean> mustEquals =
|
||||
i -> stringsSupplier().get(i).equals("DividedByTwoWithoutRemainder");
|
||||
|
||||
CheckedFunction1<Integer, Boolean> mustEquals = i -> stringsSupplier()
|
||||
.get(i)
|
||||
.equals("DividedByTwoWithoutRemainder");
|
||||
|
||||
//then
|
||||
CheckResult result = Property
|
||||
.def("Every second element must equal to DividedByTwoWithoutRemainder")
|
||||
.forAll(multiplesOf2)
|
||||
.suchThat(mustEquals)
|
||||
.check(10_000, 100);
|
||||
.def("Every second element must equal to DividedByTwoWithoutRemainder")
|
||||
.forAll(multiplesOf2)
|
||||
.suchThat(mustEquals)
|
||||
.check(10_000, 100);
|
||||
|
||||
result.assertIsSatisfied();
|
||||
}
|
||||
|
@ -51,19 +50,22 @@ public class PropertyBasedTest {
|
|||
@Test
|
||||
public void givenArbitrarySeq_whenCheckThatEveryFifthElementIsEqualToString_thenTestPass() {
|
||||
//given
|
||||
Arbitrary<Integer> multiplesOf5 = Arbitrary.integer()
|
||||
.filter(i -> i > 0)
|
||||
.filter(i -> i % 5 == 0 && i % 2 == 0);
|
||||
Arbitrary<Integer> multiplesOf5 = Arbitrary
|
||||
.integer()
|
||||
.filter(i -> i > 0)
|
||||
.filter(i -> i % 5 == 0 && i % 2 == 0);
|
||||
|
||||
//when
|
||||
CheckedFunction1<Integer, Boolean> mustEquals = i ->
|
||||
stringsSupplier().get(i).endsWith("DividedByTwoAndFiveWithoutRemainder");
|
||||
CheckedFunction1<Integer, Boolean> mustEquals = i -> stringsSupplier()
|
||||
.get(i)
|
||||
.endsWith("DividedByTwoAndFiveWithoutRemainder");
|
||||
|
||||
//then
|
||||
Property.def("Every fifth element must equal to DividedByTwoAndFiveWithoutRemainder")
|
||||
.forAll(multiplesOf5)
|
||||
.suchThat(mustEquals)
|
||||
.check(10_000, 1_000)
|
||||
.assertIsSatisfied();
|
||||
Property
|
||||
.def("Every fifth element must equal to DividedByTwoAndFiveWithoutRemainder")
|
||||
.forAll(multiplesOf5)
|
||||
.suchThat(mustEquals)
|
||||
.check(10_000, 1_000)
|
||||
.assertIsSatisfied();
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue