public EnumeratedStringValidator(String name, String def, String firstValue, String... otherValues) { super(name, def); ImmutableSet.Builder<String> builder = ImmutableSet.builder(); builder.add(firstValue.toLowerCase(Locale.ROOT)); for (String value : otherValues) { builder.add(value.toLowerCase(Locale.ROOT)); } valuesSet = builder.build(); checkArgument(isValid(def)); }
protected TypeValidator newValidator(String def, String firstValue, String... otherValues) { return new TypeValidators.EnumeratedStringValidator("test-option", def, firstValue, otherValues); }
@Test public void testTPCHReadWriteNoDictUncompressed() throws Exception { try { test(String.format("alter session set \"%s\" = false", ExecConstants.PARQUET_WRITER_ENABLE_DICTIONARY_ENCODING)); test(String.format("alter session set \"%s\" = 'none'", ExecConstants.PARQUET_WRITER_COMPRESSION_TYPE)); String inputTable = "cp.\"tpch/supplier.parquet\""; runTestAndValidate("*", "*", inputTable, "supplier_parquet_no_dict_uncompressed", false); } finally { test(String.format("alter session set \"%s\" = %b", ExecConstants.PARQUET_WRITER_ENABLE_DICTIONARY_ENCODING, ExecConstants.PARQUET_WRITER_ENABLE_DICTIONARY_ENCODING_VALIDATOR.getDefault().getBoolVal())); test(String.format("alter session set \"%s\" = '%s'", ExecConstants.PARQUET_WRITER_COMPRESSION_TYPE, ExecConstants.PARQUET_WRITER_COMPRESSION_TYPE_VALIDATOR.getDefault().getStringVal())); } }
@Test(expected = IllegalArgumentException.class) public void invalidDefault() { new TypeValidators.EnumeratedStringValidator("test-option", "foo", "bar"); } }
@Override public void validate(final OptionValue v) { super.validate(v); if (!isValid(v.getStringVal())) { throw UserException.validationError() .message(String.format("Option %s must be one of: %s.", getOptionName(), valuesSet)) .build(logger); } }
@Test public void testTPCHReadWriteDictGzip() throws Exception { try { test(String.format("alter session set \"%s\" = 'gzip'", ExecConstants.PARQUET_WRITER_COMPRESSION_TYPE)); String inputTable = "cp.\"tpch/supplier.parquet\""; runTestAndValidate("*", "*", inputTable, "supplier_parquet_dict_gzip", false); } finally { test(String.format("alter session set \"%s\" = '%s'", ExecConstants.PARQUET_WRITER_COMPRESSION_TYPE, ExecConstants.PARQUET_WRITER_COMPRESSION_TYPE_VALIDATOR.getDefault().getStringVal())); } }