private static FieldName parseFieldName(com.palantir.conjure.parser.types.names.FieldName parserFieldName) { FieldName fieldName = FieldName.of(parserFieldName.name()); FieldNameValidator.validate(fieldName); return fieldName; }
@Test public void testValidNames() { FieldNameValidator.validate(FieldName.of("camel")); FieldNameValidator.validate(FieldName.of("camelCase")); FieldNameValidator.validate(FieldName.of("camelCase1")); FieldNameValidator.validate(FieldName.of("camel1Case2")); FieldNameValidator.validate(FieldName.of("kebab-case")); FieldNameValidator.validate(FieldName.of("kebab1-case123")); FieldNameValidator.validate(FieldName.of("snake_case")); FieldNameValidator.validate(FieldName.of("snake1_case123")); FieldNameValidator.validate(FieldName.of("xCoordinate")); FieldNameValidator.validate(FieldName.of("defaultXPosition")); FieldNameValidator.validate(FieldName.of("defaultX")); }
@Test public void testInvalidNames() throws Exception { for (String invalid : new String[] { "UpperCamelCase", "Upper-Kebab-Case", "Upper_Snake_Case", "ABC", "$special", "special%", "snake_123_case", "kebab-123-case", "mixed-kebab_snake-case", "x", "defaultDNSName" }) { assertThatThrownBy(() -> FieldNameValidator.validate(FieldName.of(invalid))) .isInstanceOf(IllegalArgumentException.class) .hasMessageContaining(String.format( "FieldName \"%s\" must follow one of the following patterns", invalid)); } }