Search in sources :

Example 1 with EnumValueDefinition

use of com.palantir.conjure.parser.types.complex.EnumValueDefinition in project conjure by palantir.

the class ConjureParserTest method testConjureEnumValueDeprecation.

@Test
public void testConjureEnumValueDeprecation() {
    ConjureSourceFile conjure = ConjureParser.parse(new File("src/test/resources/example-deprecation.yml"));
    EnumTypeDefinition enumType = conjure.types().definitions().objects().get(TypeName.of("EnumWithDeprecatedValues")).visit(new TypeDefinitionVisitor<EnumTypeDefinition>() {

        @Override
        public EnumTypeDefinition visit(AliasTypeDefinition _def) {
            throw new SafeIllegalArgumentException("Expected EnumTypeDefinition");
        }

        @Override
        public EnumTypeDefinition visit(EnumTypeDefinition def) {
            return def;
        }

        @Override
        public EnumTypeDefinition visit(ObjectTypeDefinition _def) {
            throw new SafeIllegalArgumentException("Expected EnumTypeDefinition");
        }

        @Override
        public EnumTypeDefinition visit(UnionTypeDefinition _def) {
            throw new SafeIllegalArgumentException("Expected EnumTypeDefinition");
        }
    });
    EnumValueDefinition one = enumType.values().get(0);
    EnumValueDefinition two = enumType.values().get(1);
    assertThat(one.value()).isEqualTo("ONE");
    assertThat(one.deprecated()).isNotPresent();
    assertThat(two.value()).isEqualTo("TWO");
    assertThat(two.deprecated()).hasValue("Prefer ONE.");
}
Also used : ObjectTypeDefinition(com.palantir.conjure.parser.types.complex.ObjectTypeDefinition) EnumTypeDefinition(com.palantir.conjure.parser.types.complex.EnumTypeDefinition) EnumValueDefinition(com.palantir.conjure.parser.types.complex.EnumValueDefinition) UnionTypeDefinition(com.palantir.conjure.parser.types.complex.UnionTypeDefinition) File(java.io.File) SafeIllegalArgumentException(com.palantir.logsafe.exceptions.SafeIllegalArgumentException) AliasTypeDefinition(com.palantir.conjure.parser.types.reference.AliasTypeDefinition) Test(org.junit.jupiter.api.Test)

Aggregations

EnumTypeDefinition (com.palantir.conjure.parser.types.complex.EnumTypeDefinition)1 EnumValueDefinition (com.palantir.conjure.parser.types.complex.EnumValueDefinition)1 ObjectTypeDefinition (com.palantir.conjure.parser.types.complex.ObjectTypeDefinition)1 UnionTypeDefinition (com.palantir.conjure.parser.types.complex.UnionTypeDefinition)1 AliasTypeDefinition (com.palantir.conjure.parser.types.reference.AliasTypeDefinition)1 SafeIllegalArgumentException (com.palantir.logsafe.exceptions.SafeIllegalArgumentException)1 File (java.io.File)1 Test (org.junit.jupiter.api.Test)1