-
-
Notifications
You must be signed in to change notification settings - Fork 65
/
TypeArbitraryExamples.java
47 lines (38 loc) · 1.28 KB
/
TypeArbitraryExamples.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
package net.jqwik.docs.types;
import org.assertj.core.api.*;
import net.jqwik.api.*;
import net.jqwik.api.constraints.*;
import net.jqwik.api.domains.*;
class TypeArbitraryExamples {
@Property
@Report(Reporting.GENERATED)
void aPersonsIsAlwaysValid(@ForAll @UseType Person aPerson) {
Assertions.assertThat(aPerson.name).isNotBlank();
Assertions.assertThat(aPerson.age).isBetween(0, 130);
}
@Property
@Report(Reporting.GENERATED)
void aPersonsFromTheFactoryIsAlways0(@ForAll("people") Person aPerson) {
Assertions.assertThat(aPerson.name).isNotBlank();
Assertions.assertThat(aPerson.age).isEqualTo(0);
}
@Provide
Arbitrary<Person> people() {
return Arbitraries.forType(Person.class).usePublicFactoryMethods();
}
@Property
@Report(Reporting.GENERATED)
@Domain(People.class)
void aPersonsFromTheFactoryAndDomainStringsHasShortNameWithSpace(
@ForAll @UseType(UseTypeMode.FACTORIES) Person aPerson
) {
Assertions.assertThat(aPerson.name).contains(" ");
Assertions.assertThat(aPerson.name.length()).isBetween(5, 21);
}
static class People extends AbstractDomainContextBase {
public People() {
registerArbitrary(String.class, Arbitraries.strings().alpha().ofMinLength(2).ofMaxLength(10));
registerArbitrary(int.class, Arbitraries.integers().between(0, 100));
}
}
}