use of com.sun.codemodel.JPackage in project jsonschema2pojo by joelittlejohn.
the class SchemaMapperTest method generateCreatesSchemaFromSchemaAsStringInput.
@Test
public void generateCreatesSchemaFromSchemaAsStringInput() throws IOException {
String schemaContent = IOUtils.toString(this.getClass().getResourceAsStream("/schema/address.json"));
final SchemaRule mockSchemaRule = mock(SchemaRule.class);
final RuleFactory mockRuleFactory = mock(RuleFactory.class);
when(mockRuleFactory.getSchemaRule()).thenReturn(mockSchemaRule);
when(mockRuleFactory.getGenerationConfig()).thenReturn(new DefaultGenerationConfig());
new SchemaMapper(mockRuleFactory, new SchemaGenerator()).generate(new JCodeModel(), "Address", "com.example.package", schemaContent);
ArgumentCaptor<JPackage> capturePackage = ArgumentCaptor.forClass(JPackage.class);
ArgumentCaptor<JsonNode> captureNode = ArgumentCaptor.forClass(JsonNode.class);
verify(mockSchemaRule).apply(eq("Address"), captureNode.capture(), capturePackage.capture(), Mockito.isA(Schema.class));
assertThat(capturePackage.getValue().name(), is("com.example.package"));
assertThat(captureNode.getValue(), is(notNullValue()));
}
use of com.sun.codemodel.JPackage in project jsonschema2pojo by joelittlejohn.
the class SchemaMapperTest method generateCreatesSchemaFromExampleJSONAsStringInput.
@Test
public void generateCreatesSchemaFromExampleJSONAsStringInput() throws IOException {
String jsonContent = IOUtils.toString(this.getClass().getResourceAsStream("/example-json/user.json"));
ObjectNode schemaNode = JsonNodeFactory.instance.objectNode();
final SchemaRule mockSchemaRule = mock(SchemaRule.class);
final GenerationConfig mockGenerationConfig = mock(GenerationConfig.class);
when(mockGenerationConfig.getSourceType()).thenReturn(SourceType.JSON);
final SchemaGenerator mockSchemaGenerator = mock(SchemaGenerator.class);
when(mockSchemaGenerator.schemaFromExample(new ObjectMapper().readTree(jsonContent))).thenReturn(schemaNode);
final RuleFactory mockRuleFactory = mock(RuleFactory.class);
when(mockRuleFactory.getSchemaRule()).thenReturn(mockSchemaRule);
when(mockRuleFactory.getGenerationConfig()).thenReturn(mockGenerationConfig);
new SchemaMapper(mockRuleFactory, mockSchemaGenerator).generate(new JCodeModel(), "User", "com.example.package", jsonContent);
ArgumentCaptor<JPackage> capturePackage = ArgumentCaptor.forClass(JPackage.class);
verify(mockSchemaRule).apply(eq("User"), eq(schemaNode), capturePackage.capture(), Mockito.isA(Schema.class));
assertThat(capturePackage.getValue().name(), is("com.example.package"));
}
use of com.sun.codemodel.JPackage in project jsonschema2pojo by joelittlejohn.
the class SchemaMapperTest method generateCreatesSchemaFromExampleJsonWhenInJsonMode.
@Test
public void generateCreatesSchemaFromExampleJsonWhenInJsonMode() throws IOException {
URL schemaContent = this.getClass().getResource("/schema/address.json");
ObjectNode schemaNode = JsonNodeFactory.instance.objectNode();
final SchemaRule mockSchemaRule = mock(SchemaRule.class);
final GenerationConfig mockGenerationConfig = mock(GenerationConfig.class);
when(mockGenerationConfig.getSourceType()).thenReturn(SourceType.JSON);
final SchemaGenerator mockSchemaGenerator = mock(SchemaGenerator.class);
when(mockSchemaGenerator.schemaFromExample(schemaContent)).thenReturn(schemaNode);
final RuleFactory mockRuleFactory = mock(RuleFactory.class);
when(mockRuleFactory.getSchemaRule()).thenReturn(mockSchemaRule);
when(mockRuleFactory.getGenerationConfig()).thenReturn(mockGenerationConfig);
new SchemaMapper(mockRuleFactory, mockSchemaGenerator).generate(new JCodeModel(), "Address", "com.example.package", schemaContent);
ArgumentCaptor<JPackage> capturePackage = ArgumentCaptor.forClass(JPackage.class);
verify(mockSchemaRule).apply(eq("Address"), eq(schemaNode), capturePackage.capture(), Mockito.isA(Schema.class));
assertThat(capturePackage.getValue().name(), is("com.example.package"));
}
use of com.sun.codemodel.JPackage in project jsonschema2pojo by joelittlejohn.
the class ArrayRuleTest method arrayOfPrimitivesProducesCollectionOfWrapperTypes.
@Test
public void arrayOfPrimitivesProducesCollectionOfWrapperTypes() {
JCodeModel codeModel = new JCodeModel();
JPackage jpackage = codeModel._package(getClass().getPackage().getName());
ObjectMapper mapper = new ObjectMapper();
ObjectNode itemsNode = mapper.createObjectNode();
itemsNode.put("type", "number");
ObjectNode propertyNode = mapper.createObjectNode();
propertyNode.set("uniqueItems", BooleanNode.FALSE);
propertyNode.set("items", itemsNode);
Schema schema = mock(Schema.class);
when(schema.getId()).thenReturn(URI.create("http://example/nonUniqueArray"));
when(config.isUsePrimitives()).thenReturn(true);
when(config.isUseDoubleNumbers()).thenReturn(true);
JClass propertyType = rule.apply("fooBars", propertyNode, jpackage, schema);
assertThat(propertyType, notNullValue());
assertThat(propertyType.erasure(), is(codeModel.ref(List.class)));
assertThat(propertyType.getTypeParameters().get(0).fullName(), is(Double.class.getName()));
}
use of com.sun.codemodel.JPackage in project jsonschema2pojo by joelittlejohn.
the class ArrayRuleTest method arrayDefaultsToNonUnique.
@Test
public void arrayDefaultsToNonUnique() {
JCodeModel codeModel = new JCodeModel();
JPackage jpackage = codeModel._package(getClass().getPackage().getName());
ObjectMapper mapper = new ObjectMapper();
ObjectNode itemsNode = mapper.createObjectNode();
itemsNode.put("type", "boolean");
ObjectNode propertyNode = mapper.createObjectNode();
propertyNode.set("uniqueItems", BooleanNode.FALSE);
propertyNode.set("items", itemsNode);
Schema schema = mock(Schema.class);
when(schema.getId()).thenReturn(URI.create("http://example/defaultArray"));
JClass propertyType = rule.apply("fooBars", propertyNode, jpackage, schema);
assertThat(propertyType.erasure(), is(codeModel.ref(List.class)));
}
Aggregations