forked from pholser/junit-quickcheck
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
more extractors; using ServiceLoader to find others.
- Loading branch information
1 parent
d021dd2
commit 13d8db7
Showing
23 changed files
with
218 additions
and
111 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
10 changes: 10 additions & 0 deletions
10
src/META-INF/services/com.pholser.junit.parameters.extractors.RandomValueExtractor
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
com.pholser.junit.parameters.internal.extractors.BooleanExtractor | ||
com.pholser.junit.parameters.internal.extractors.ByteExtractor | ||
com.pholser.junit.parameters.internal.extractors.CharacterExtractor | ||
com.pholser.junit.parameters.internal.extractors.DateExtractor | ||
com.pholser.junit.parameters.internal.extractors.DoubleExtractor | ||
com.pholser.junit.parameters.internal.extractors.FloatExtractor | ||
com.pholser.junit.parameters.internal.extractors.IntegerExtractor | ||
com.pholser.junit.parameters.internal.extractors.LongExtractor | ||
com.pholser.junit.parameters.internal.extractors.ShortExtractor | ||
com.pholser.junit.parameters.internal.extractors.StringExtractor |
13 changes: 0 additions & 13 deletions
13
src/main/java/com/pholser/junit/parameters/ExtractedBy.java
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
5 changes: 0 additions & 5 deletions
5
src/main/java/com/pholser/junit/parameters/RandomValueExtractor.java
This file was deleted.
Oops, something went wrong.
7 changes: 7 additions & 0 deletions
7
src/main/java/com/pholser/junit/parameters/extractors/RandomValueExtractor.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
package com.pholser.junit.parameters.extractors; | ||
|
||
import com.pholser.junit.parameters.random.SourceOfRandomness; | ||
|
||
public interface RandomValueExtractor<T> { | ||
T randomValue(SourceOfRandomness random); | ||
} |
7 changes: 7 additions & 0 deletions
7
src/main/java/com/pholser/junit/parameters/extractors/RandomValueExtractorSource.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
package com.pholser.junit.parameters.extractors; | ||
|
||
import java.util.Map; | ||
|
||
public interface RandomValueExtractorSource { | ||
Map<Class<?>, RandomValueExtractor<?>> extractors(); | ||
} |
32 changes: 32 additions & 0 deletions
32
src/main/java/com/pholser/junit/parameters/extractors/ServiceLoaderExtractorSource.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
package com.pholser.junit.parameters.extractors; | ||
|
||
import java.lang.reflect.ParameterizedType; | ||
import java.lang.reflect.Type; | ||
import java.util.HashMap; | ||
import java.util.Map; | ||
import java.util.ServiceLoader; | ||
|
||
public class ServiceLoaderExtractorSource implements RandomValueExtractorSource { | ||
@Override | ||
public Map<Class<?>, RandomValueExtractor<?>> extractors() { | ||
Map<Class<?>, RandomValueExtractor<?>> extractors = new HashMap<Class<?>, RandomValueExtractor<?>>(); | ||
for (RandomValueExtractor<?> each : ServiceLoader.load(RandomValueExtractor.class)) | ||
addExtractor(extractors, each); | ||
return extractors; | ||
} | ||
|
||
private void addExtractor(Map<Class<?>, RandomValueExtractor<?>> extractors, | ||
RandomValueExtractor<?> newExtractor) { | ||
|
||
for (Type each : newExtractor.getClass().getGenericInterfaces()) { | ||
if (each instanceof ParameterizedType) { | ||
ParameterizedType parameterized = (ParameterizedType) each; | ||
if (RandomValueExtractor.class.equals(parameterized.getRawType())) { | ||
Type typeArgument = parameterized.getActualTypeArguments()[0]; | ||
if (typeArgument instanceof Class<?>) | ||
extractors.put((Class<?>) typeArgument, newExtractor); | ||
} | ||
} | ||
} | ||
} | ||
} |
11 changes: 11 additions & 0 deletions
11
src/main/java/com/pholser/junit/parameters/internal/extractors/BooleanExtractor.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
package com.pholser.junit.parameters.internal.extractors; | ||
|
||
import com.pholser.junit.parameters.extractors.RandomValueExtractor; | ||
import com.pholser.junit.parameters.random.SourceOfRandomness; | ||
|
||
public class BooleanExtractor implements RandomValueExtractor<Boolean> { | ||
@Override | ||
public Boolean randomValue(SourceOfRandomness random) { | ||
return random.nextBoolean(); | ||
} | ||
} |
11 changes: 11 additions & 0 deletions
11
src/main/java/com/pholser/junit/parameters/internal/extractors/ByteExtractor.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
package com.pholser.junit.parameters.internal.extractors; | ||
|
||
import com.pholser.junit.parameters.extractors.RandomValueExtractor; | ||
import com.pholser.junit.parameters.random.SourceOfRandomness; | ||
|
||
public class ByteExtractor implements RandomValueExtractor<Byte> { | ||
@Override | ||
public Byte randomValue(SourceOfRandomness random) { | ||
return (byte) random.nextInt(); | ||
} | ||
} |
11 changes: 11 additions & 0 deletions
11
src/main/java/com/pholser/junit/parameters/internal/extractors/CharacterExtractor.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
package com.pholser.junit.parameters.internal.extractors; | ||
|
||
import com.pholser.junit.parameters.extractors.RandomValueExtractor; | ||
import com.pholser.junit.parameters.random.SourceOfRandomness; | ||
|
||
public class CharacterExtractor implements RandomValueExtractor<Character> { | ||
@Override | ||
public Character randomValue(SourceOfRandomness random) { | ||
return (char) random.nextInt(); | ||
} | ||
} |
13 changes: 13 additions & 0 deletions
13
src/main/java/com/pholser/junit/parameters/internal/extractors/DateExtractor.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
package com.pholser.junit.parameters.internal.extractors; | ||
|
||
import java.util.Date; | ||
|
||
import com.pholser.junit.parameters.extractors.RandomValueExtractor; | ||
import com.pholser.junit.parameters.random.SourceOfRandomness; | ||
|
||
public class DateExtractor implements RandomValueExtractor<Date> { | ||
@Override | ||
public Date randomValue(SourceOfRandomness random) { | ||
return new Date(random.nextLong()); | ||
} | ||
} |
11 changes: 11 additions & 0 deletions
11
src/main/java/com/pholser/junit/parameters/internal/extractors/DoubleExtractor.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
package com.pholser.junit.parameters.internal.extractors; | ||
|
||
import com.pholser.junit.parameters.extractors.RandomValueExtractor; | ||
import com.pholser.junit.parameters.random.SourceOfRandomness; | ||
|
||
public class DoubleExtractor implements RandomValueExtractor<Double> { | ||
@Override | ||
public Double randomValue(SourceOfRandomness random) { | ||
return random.nextDouble(); | ||
} | ||
} |
11 changes: 11 additions & 0 deletions
11
src/main/java/com/pholser/junit/parameters/internal/extractors/FloatExtractor.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
package com.pholser.junit.parameters.internal.extractors; | ||
|
||
import com.pholser.junit.parameters.extractors.RandomValueExtractor; | ||
import com.pholser.junit.parameters.random.SourceOfRandomness; | ||
|
||
public class FloatExtractor implements RandomValueExtractor<Float> { | ||
@Override | ||
public Float randomValue(SourceOfRandomness random) { | ||
return random.nextFloat(); | ||
} | ||
} |
11 changes: 11 additions & 0 deletions
11
src/main/java/com/pholser/junit/parameters/internal/extractors/IntegerExtractor.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
package com.pholser.junit.parameters.internal.extractors; | ||
|
||
import com.pholser.junit.parameters.extractors.RandomValueExtractor; | ||
import com.pholser.junit.parameters.random.SourceOfRandomness; | ||
|
||
public class IntegerExtractor implements RandomValueExtractor<Integer> { | ||
@Override | ||
public Integer randomValue(SourceOfRandomness random) { | ||
return random.nextInt(); | ||
} | ||
} |
11 changes: 11 additions & 0 deletions
11
src/main/java/com/pholser/junit/parameters/internal/extractors/LongExtractor.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
package com.pholser.junit.parameters.internal.extractors; | ||
|
||
import com.pholser.junit.parameters.extractors.RandomValueExtractor; | ||
import com.pholser.junit.parameters.random.SourceOfRandomness; | ||
|
||
public class LongExtractor implements RandomValueExtractor<Long> { | ||
@Override | ||
public Long randomValue(SourceOfRandomness random) { | ||
return random.nextLong(); | ||
} | ||
} |
11 changes: 11 additions & 0 deletions
11
src/main/java/com/pholser/junit/parameters/internal/extractors/ShortExtractor.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
package com.pholser.junit.parameters.internal.extractors; | ||
|
||
import com.pholser.junit.parameters.extractors.RandomValueExtractor; | ||
import com.pholser.junit.parameters.random.SourceOfRandomness; | ||
|
||
public class ShortExtractor implements RandomValueExtractor<Short> { | ||
@Override | ||
public Short randomValue(SourceOfRandomness random) { | ||
return (short) random.nextInt(); | ||
} | ||
} |
17 changes: 17 additions & 0 deletions
17
src/main/java/com/pholser/junit/parameters/internal/extractors/StringExtractor.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
package com.pholser.junit.parameters.internal.extractors; | ||
|
||
import java.io.UnsupportedEncodingException; | ||
|
||
import com.pholser.junit.parameters.extractors.RandomValueExtractor; | ||
import com.pholser.junit.parameters.random.SourceOfRandomness; | ||
|
||
public class StringExtractor implements RandomValueExtractor<String> { | ||
@Override | ||
public String randomValue(SourceOfRandomness random) { | ||
try { | ||
return new String(random.nextBytes(16), "US-ASCII"); | ||
} catch (UnsupportedEncodingException ex) { | ||
throw new AssertionError(ex); | ||
} | ||
} | ||
} |
4 changes: 2 additions & 2 deletions
4
...meters/AbstractJDKSourceOfRandomness.java → ...random/AbstractJDKSourceOfRandomness.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
2 changes: 1 addition & 1 deletion
2
...nit/parameters/JDKSourceOfRandomness.java → ...ameters/random/JDKSourceOfRandomness.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
package com.pholser.junit.parameters; | ||
package com.pholser.junit.parameters.random; | ||
|
||
import java.util.Random; | ||
|
||
|
2 changes: 1 addition & 1 deletion
2
...rameters/SecureJDKSourceOfRandomness.java → ...s/random/SecureJDKSourceOfRandomness.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
2 changes: 1 addition & 1 deletion
2
.../junit/parameters/SourceOfRandomness.java → ...parameters/random/SourceOfRandomness.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.