Skip to content

Commit fac66e4

Browse files
committed
Add (failing) unit test wrt #57.
1 parent c2cab2c commit fac66e4

File tree

2 files changed

+55
-2
lines changed

2 files changed

+55
-2
lines changed

src/test/java/com/fasterxml/jackson/module/jsonSchema/EnumGenerationTest.java

+3-2
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ public String toString() {
1616
return "ToString:"+name();
1717
}
1818
}
19+
1920
public static class LetterBean {
2021

2122
public Enumerated letter;
@@ -28,11 +29,11 @@ public static class LetterBean {
2829
*/
2930

3031
private final ObjectMapper MAPPER = new ObjectMapper();
32+
JsonSchemaGenerator SCHEMA_GEN = new JsonSchemaGenerator(MAPPER);
3133

3234
public void testEnumDefault() throws Exception
3335
{
34-
JsonSchemaGenerator generator = new JsonSchemaGenerator(MAPPER);
35-
JsonSchema jsonSchema = generator.generateSchema(LetterBean.class);
36+
JsonSchema jsonSchema = SCHEMA_GEN.generateSchema(LetterBean.class);
3637
@SuppressWarnings("unchecked")
3738
Map<String, Object> result = (Map<String, Object>) MAPPER.convertValue(jsonSchema, Map.class);
3839
assertNotNull(result);
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
package com.fasterxml.jackson.module.jsonSchema.failing;
2+
3+
import java.util.*;
4+
5+
import com.fasterxml.jackson.annotation.JsonValue;
6+
import com.fasterxml.jackson.databind.ObjectMapper;
7+
import com.fasterxml.jackson.module.jsonSchema.JsonSchema;
8+
import com.fasterxml.jackson.module.jsonSchema.JsonSchemaGenerator;
9+
import com.fasterxml.jackson.module.jsonSchema.SchemaTestBase;
10+
11+
public class TestEnumWithJsonValue57 extends SchemaTestBase
12+
{
13+
// for [jsonSchema#57]
14+
public enum EnumViaJsonValue {
15+
A, B, C;
16+
17+
@JsonValue
18+
public String asJson() { return name().toLowerCase(); }
19+
}
20+
21+
/*
22+
/**********************************************************
23+
/* Test methods
24+
/**********************************************************
25+
*/
26+
27+
private final ObjectMapper MAPPER = new ObjectMapper();
28+
JsonSchemaGenerator SCHEMA_GEN = new JsonSchemaGenerator(MAPPER);
29+
30+
31+
// for [jsonSchema#57]
32+
@SuppressWarnings("unchecked")
33+
public void testEnumWithJsonValue() throws Exception
34+
{
35+
JsonSchema schema = SCHEMA_GEN.generateSchema(EnumViaJsonValue.class);
36+
37+
Map<String, Object> result = (Map<String, Object>) MAPPER.convertValue(schema, Map.class);
38+
assertEquals("string", result.get("type"));
39+
40+
Object values = result.get("enum");
41+
if (values == null) {
42+
fail("Expected 'enum' entry, not found; schema: "+ MAPPER.writerWithDefaultPrettyPrinter().writeValueAsString(result));
43+
}
44+
assertNotNull(values);
45+
assertTrue(values instanceof List<?>);
46+
List<?> enumValues = (List<?>) values;
47+
assertEquals(3, enumValues.size());
48+
assertEquals("a", enumValues.get(0));
49+
assertEquals("b", enumValues.get(1));
50+
assertEquals("c", enumValues.get(2));
51+
}
52+
}

0 commit comments

Comments
 (0)