Search in sources :

Example 1 with SchemaRule

use of org.jsonschema2pojo.rules.SchemaRule in project jsonschema2pojo by joelittlejohn.

the class SchemaMapperTest method generateReadsSchemaAsObject.

@Test
public void generateReadsSchemaAsObject() throws IOException {
    final SchemaRule mockSchemaRule = mock(SchemaRule.class);
    final RuleFactory mockRuleFactory = mock(RuleFactory.class);
    when(mockRuleFactory.getSchemaRule()).thenReturn(mockSchemaRule);
    when(mockRuleFactory.getGenerationConfig()).thenReturn(new DefaultGenerationConfig());
    URL schemaContent = this.getClass().getResource("/schema/address.json");
    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()));
}
Also used : RuleFactory(org.jsonschema2pojo.rules.RuleFactory) JPackage(com.sun.codemodel.JPackage) SchemaRule(org.jsonschema2pojo.rules.SchemaRule) JsonNode(com.fasterxml.jackson.databind.JsonNode) JCodeModel(com.sun.codemodel.JCodeModel) URL(java.net.URL) Test(org.junit.Test)

Example 2 with SchemaRule

use of org.jsonschema2pojo.rules.SchemaRule 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()));
}
Also used : RuleFactory(org.jsonschema2pojo.rules.RuleFactory) JPackage(com.sun.codemodel.JPackage) SchemaRule(org.jsonschema2pojo.rules.SchemaRule) JsonNode(com.fasterxml.jackson.databind.JsonNode) JCodeModel(com.sun.codemodel.JCodeModel) Test(org.junit.Test)

Example 3 with SchemaRule

use of org.jsonschema2pojo.rules.SchemaRule 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"));
}
Also used : ObjectNode(com.fasterxml.jackson.databind.node.ObjectNode) RuleFactory(org.jsonschema2pojo.rules.RuleFactory) JPackage(com.sun.codemodel.JPackage) SchemaRule(org.jsonschema2pojo.rules.SchemaRule) JCodeModel(com.sun.codemodel.JCodeModel) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper) Test(org.junit.Test)

Example 4 with SchemaRule

use of org.jsonschema2pojo.rules.SchemaRule 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"));
}
Also used : ObjectNode(com.fasterxml.jackson.databind.node.ObjectNode) RuleFactory(org.jsonschema2pojo.rules.RuleFactory) JPackage(com.sun.codemodel.JPackage) SchemaRule(org.jsonschema2pojo.rules.SchemaRule) JCodeModel(com.sun.codemodel.JCodeModel) URL(java.net.URL) Test(org.junit.Test)

Aggregations

JCodeModel (com.sun.codemodel.JCodeModel)4 JPackage (com.sun.codemodel.JPackage)4 RuleFactory (org.jsonschema2pojo.rules.RuleFactory)4 SchemaRule (org.jsonschema2pojo.rules.SchemaRule)4 Test (org.junit.Test)4 JsonNode (com.fasterxml.jackson.databind.JsonNode)2 ObjectNode (com.fasterxml.jackson.databind.node.ObjectNode)2 URL (java.net.URL)2 ObjectMapper (com.fasterxml.jackson.databind.ObjectMapper)1