Junit 5 randomized parameter resolver
A JUnit 5 ParameterResolver that generates random values for parameters annotated with Randomize.
Annotation to generate random values for parameters. The supported parameter types are:
- RandomGenerator
 - Integer / int
 - Long / long
 - String
 - byte[]
 
import io.github.lyang.randomparamsresolver.RandomParametersExtension;
import io.github.lyang.randomparamsresolver.RandomParametersExtension.Randomize;
import java.util.random.RandomGenerator;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
@ExtendWith(RandomParametersExtension.class)
class RandomizedParameterTest {
  @Test
  void randomized_generator(@Randomize RandomGenerator generator) {
    // random generator with seed from System.nanoTime()
  }
  @Test
  void randomized_generator_with_seed(
      @Randomize(seed = 787681803879958L) RandomGenerator generator) {
    // random generator with fixed seed to reproduce failures
    // seed value from previous test runs are logged like this:
    // INFO: Using seed 787681803879958 for RandomizedParameterTest#randomized_generator#arg0
  }
  @Test
  void randomized_integer(@Randomize int value, @Randomize Integer anotherValue) {
    // value is a random integer
    // anotherValue is a random integer with a different value
  }
  @Test
  void randomized_long_with_range(@Randomize(longMin = 0, longMax = 100) long value) {
    // value is a random long within [0, 100)
  }
  @Test
  void randomized_string(@Randomize String value, @Randomize(length = 10) String anotherValue) {
    // value is a random string with default length 5
    // anotherValue is a random string with length 10
    // default characters are from Character.UnicodeBlock.BASIC_LATIN
  }
  @Test
  void randomized_emoji_string(@Randomize(unicodeBlocks = "EMOTICONS") String value) {
    // characters are from Character.UnicodeBlock.EMOTICONS
  }
  @Test
  void randomized_byte_array(@Randomize byte[] value, @Randomize(length = 10) byte[] anotherValue) {
    // value is a random byte array with default length 5
    // anotherValue is a random byte array with length 10
  }
}