@Test @UseDataProvider("variousEmptyStrings") public void constructor_accepts_any_empty_option_value(String emptyString) { Map<String, String> mandatoryJvmOptions = shuffleThenToMap( Stream.of( IntStream.range(0, random.nextInt(10)).mapToObj(i -> new Option("-B", valueOf(i))), Stream.of(new Option("-prefix", emptyString))) .flatMap(s -> s)); new JvmOptions(mandatoryJvmOptions); }
private static Map<String, String> shuffleThenToMap(Stream<Option> stream) { List<Option> options = stream.collect(Collectors.toList()); Collections.shuffle(options); Map<String, String> res = new HashMap<>(options.size()); for (Option option : options) { res.put(option.getPrefix(), option.getValue()); } return res; }
@Test public void constructor_throws_NPE_if_any_option_value_is_null() { Map<String, String> mandatoryJvmOptions = shuffleThenToMap( Stream.of( IntStream.range(0, random.nextInt(10)).mapToObj(i -> new Option("-B", valueOf(i))), Stream.of(new Option("-prefix", null))) .flatMap(s -> s)); expectedException.expect(NullPointerException.class); expectedException.expectMessage("JVM option value can't be null"); new JvmOptions(mandatoryJvmOptions); }
@Test @UseDataProvider("variousEmptyStrings") public void constructor_throws_IAE_if_any_option_prefix_is_empty(String emptyString) { Map<String, String> mandatoryJvmOptions = shuffleThenToMap( Stream.of( IntStream.range(0, random.nextInt(10)).mapToObj(i -> new Option("-B", valueOf(i))), Stream.of(new Option(emptyString, "value"))) .flatMap(s -> s)); expectedException.expect(IllegalArgumentException.class); expectedException.expectMessage("JVM option prefix can't be empty"); new JvmOptions(mandatoryJvmOptions); }
@Test public void constructor_throws_IAE_if_any_option_prefix_does_not_start_with_dash() { String invalidPrefix = randomAlphanumeric(3); Map<String, String> mandatoryJvmOptions = shuffleThenToMap( Stream.of( IntStream.range(0, random.nextInt(10)).mapToObj(i -> new Option("-B", valueOf(i))), Stream.of(new Option(invalidPrefix, "value"))) .flatMap(s -> s)); expectJvmOptionNotEmptyAndStartByDashIAE(); new JvmOptions(mandatoryJvmOptions); }
@Test public void constructor_throws_NPE_if_any_option_prefix_is_null() { Map<String, String> mandatoryJvmOptions = shuffleThenToMap( Stream.of( IntStream.range(0, random.nextInt(10)).mapToObj(i -> new Option("-B", valueOf(i))), Stream.of(new Option(null, "value"))) .flatMap(s -> s)); expectedException.expect(NullPointerException.class); expectedException.expectMessage("JVM option prefix can't be null"); new JvmOptions(mandatoryJvmOptions); }