Skip to content

Commit a47a024

Browse files
authored
Merge pull request #1607 from datafaker-net/refactoring/provider-list-test
2 parents 22730b5 + c2486ed commit a47a024

File tree

100 files changed

+272
-238
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

100 files changed

+272
-238
lines changed

src/test/java/net/datafaker/FakerTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -381,12 +381,12 @@ void testDeterministicAndNonDeterministicProvidersReturnValues() {
381381
}
382382
if (m.isAnnotationPresent(Deterministic.class)) {
383383
assertThat(set)
384-
.as("Class: " + ap.getClass().getName()
384+
.as(() -> "Class: " + ap.getClass().getName()
385385
+ ", method: " + m.getName() + " should have the same return value")
386386
.hasSize(1);
387387
} else {
388388
assertThat(set)
389-
.as("Class: " + ap.getClass().getName()
389+
.as(() -> "Class: " + ap.getClass().getName()
390390
+ ", method: " + m.getName() + " should generate different return values")
391391
.hasSizeGreaterThan(1);
392392
}

src/test/java/net/datafaker/providers/base/AncientTest.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import java.util.List;
77
import java.util.Locale;
88

9-
class AncientTest extends BaseFakerTest<BaseFaker> {
9+
class AncientTest extends BaseFakerTest {
1010

1111
private static Collection<TestSpec> getProviderListTests(Ancient ancient) {
1212
return List.of(
@@ -24,11 +24,13 @@ protected Collection<TestSpec> providerListTest() {
2424
}
2525

2626
@Nested
27-
class AncientInGreekTest extends BaseFakerTest<BaseFaker> {
27+
final class AncientInGreekTest extends ProviderListTest<BaseFaker> {
28+
29+
private final BaseFaker faker = new BaseFaker(new Locale("el", "GR"));
2830

2931
@Override
3032
protected BaseFaker getFaker() {
31-
return new BaseFaker(new Locale("el", "GR"));
33+
return faker;
3234
}
3335

3436
@Override

src/test/java/net/datafaker/providers/base/AnimalTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import java.util.List;
77
import java.util.Collection;
88

9-
class AnimalTest extends BaseFakerTest<BaseFaker> {
9+
class AnimalTest extends BaseFakerTest {
1010

1111
private final Animal animal = faker.animal();
1212

src/test/java/net/datafaker/providers/base/AppTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import java.util.List;
99
import java.util.Collection;
1010

11-
class AppTest extends BaseFakerTest<BaseFaker> {
11+
class AppTest extends BaseFakerTest {
1212

1313
private final App app = faker.app();
1414

src/test/java/net/datafaker/providers/base/ApplianceTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import java.util.List;
44
import java.util.Collection;
55

6-
class ApplianceTest extends BaseFakerTest<BaseFaker> {
6+
final class ApplianceTest extends BaseFakerTest {
77

88
@Override
99
protected Collection<TestSpec> providerListTest() {

src/test/java/net/datafaker/providers/base/ArtistTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import java.util.List;
44
import java.util.Collection;
55

6-
class ArtistTest extends BaseFakerTest<BaseFaker> {
6+
class ArtistTest extends BaseFakerTest {
77

88
@Override
99
protected Collection<TestSpec> providerListTest() {

src/test/java/net/datafaker/providers/base/AustraliaTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import java.util.List;
44
import java.util.Collection;
55

6-
class AustraliaTest extends BaseFakerTest<BaseFaker> {
6+
class AustraliaTest extends BaseFakerTest {
77

88
@Override
99
protected Collection<TestSpec> providerListTest() {

src/test/java/net/datafaker/providers/base/AviationTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import java.util.Collection;
99
import java.util.regex.Pattern;
1010

11-
class AviationTest extends BaseFakerTest<BaseFaker> {
11+
class AviationTest extends BaseFakerTest {
1212

1313
private final Aviation aviation = faker.aviation();
1414

src/test/java/net/datafaker/providers/base/AwsTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
import static org.assertj.core.api.Assertions.assertThat;
99

10-
class AwsTest extends BaseFakerTest<BaseFaker> {
10+
class AwsTest extends BaseFakerTest {
1111

1212
@Test
1313
void testAccountId() {
Lines changed: 5 additions & 87 deletions
Original file line numberDiff line numberDiff line change
@@ -1,93 +1,11 @@
11
package net.datafaker.providers.base;
22

3-
import org.junit.jupiter.api.TestInstance;
4-
import org.junit.jupiter.params.ParameterizedTest;
5-
import org.junit.jupiter.params.provider.MethodSource;
3+
public abstract class BaseFakerTest extends ProviderListTest<BaseFaker> {
4+
protected final BaseFaker faker = new BaseFaker();
65

7-
import java.util.Collection;
8-
import java.util.HashSet;
9-
import java.util.List;
10-
import java.util.Set;
11-
import java.util.function.Supplier;
12-
import java.util.regex.Pattern;
13-
14-
import static org.assertj.core.api.Assertions.assertThat;
15-
16-
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
17-
public abstract class BaseFakerTest<T extends BaseFaker> {
18-
19-
protected final T faker = getFaker();
20-
21-
@SuppressWarnings("unchecked")
22-
protected T getFaker() {
23-
return (T) new BaseFaker();
6+
@Override
7+
protected final BaseFaker getFaker() {
8+
return faker;
249
}
2510

26-
protected List<String> getBaseList(String key) {
27-
return faker.fakeValuesService().fetchObject(key, faker.getContext());
28-
}
29-
30-
@ParameterizedTest
31-
@MethodSource("providerListTest")
32-
protected void testProviderList(TestSpec testSpec) {
33-
// Given
34-
Set<String> actual = new HashSet<>(getBaseList(testSpec.key));
35-
// When
36-
String item = (String) testSpec.supplier.get();
37-
// Then
38-
assertThat(item).as("Check item isn't empty").isNotEmpty();
39-
String collection = "\"" + testSpec.key + "\"";
40-
assertThat(actual).as("Check actual list isn't empty and contains the item for the key " + collection).isNotEmpty()
41-
.anyMatch(item::equals);
42-
assertThat(actual).as("Actual should not have empty entries. " + collection).noneMatch(single -> single.isBlank());
43-
if (!testSpec.regex.isEmpty()) {
44-
assertThat(item).as("Check item matches regex").matches(Pattern.compile(testSpec.regex));
45-
}
46-
}
47-
48-
@ParameterizedTest
49-
@MethodSource("providerListTest")
50-
void testNoDuplications(TestSpec testSpec) {
51-
var terms = getBaseList(testSpec.key);
52-
53-
Set<String> uniques = new HashSet<>();
54-
Set<String> duplicates = new HashSet<>();
55-
for (String term : terms) {
56-
if (!uniques.add(term)) {
57-
duplicates.add(term);
58-
}
59-
}
60-
assertThat(duplicates)
61-
.as("Check no duplications in " + testSpec.key + " with terms " + terms)
62-
.isEmpty();
63-
}
64-
65-
protected abstract Collection<TestSpec> providerListTest();
66-
67-
protected static class TestSpec {
68-
private final Supplier<?> supplier;
69-
private final String key;
70-
@SuppressWarnings("unused")
71-
private final String regex;
72-
73-
private TestSpec(Supplier<?> supplier, String key, String regex) {
74-
this.supplier = supplier;
75-
this.key = key;
76-
this.regex = regex;
77-
}
78-
79-
public static TestSpec of(Supplier<?> supplier, String key) {
80-
return new TestSpec(supplier, key, "");
81-
}
82-
83-
public static TestSpec of(Supplier<?> supplier, String key, String regex) {
84-
return new TestSpec(supplier, key, regex);
85-
}
86-
87-
@Override
88-
public String toString() {
89-
// The result of this toString will be used by IDE in test report
90-
return "Key: " + key;
91-
}
92-
}
9311
}

0 commit comments

Comments
 (0)