Skip to content

Commit

Permalink
Merge branch 'master' into nested_classes
Browse files Browse the repository at this point in the history
  • Loading branch information
wigbam authored Jul 12, 2023
2 parents 12ec7db + 1e51d0f commit 007b9de
Show file tree
Hide file tree
Showing 4 changed files with 55 additions and 3 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/android-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ jobs:
java_version: [8]
steps:
- name: Setup Maven Action
uses: s4u/setup-maven-action@v1.7.0
uses: s4u/setup-maven-action@v1.8.0
with:
checkout-fetch-depth: 0
java-version: ${{ matrix.java_version }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
name: Test JDK ${{ matrix.java_version }}
steps:
- name: Setup Maven Action
uses: s4u/setup-maven-action@v1.7.0
uses: s4u/setup-maven-action@v1.8.0
with:
checkout-fetch-depth: 0
java-version: ${{ matrix.java_version }}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ public JDefinedClass apply(String nodeName, JsonNode node, JsonNode parent, JDef
JType propertyType;
if (node != null && node.size() != 0) {
String pathToAdditionalProperties;
if (schema.getId().getFragment() == null) {
if (schema.getId() == null || schema.getId().getFragment() == null) {
pathToAdditionalProperties = "#/additionalProperties";
} else {
pathToAdditionalProperties = "#" + schema.getId().getFragment() + "/additionalProperties";
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
/**
* Copyright © 2010-2020 Nokia
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package org.jsonschema2pojo.rules;

import static org.junit.Assert.assertEquals;

import org.jsonschema2pojo.Schema;
import org.junit.Test;

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.sun.codemodel.JClass;
import com.sun.codemodel.JCodeModel;
import com.sun.codemodel.JDefinedClass;
import com.sun.codemodel.JMethod;
import com.sun.codemodel.JType;

public class AdditionalPropertiesRuleTest {

@Test
public void testSchemaWithNullURI() throws Exception {
ObjectMapper mapper = new ObjectMapper();
ObjectNode node = (ObjectNode) mapper
.readTree("{\"type\":\"integer\",\"maximum\":9}");
ObjectNode parent = (ObjectNode) mapper
.readTree("{\"type\":\"object\",\"additionalProperties\":{\"type\":\"integer\",\"maximum\":9}}");
Schema schema = new Schema(null, parent, null);

JDefinedClass jclass = new JCodeModel()._class("org.jsonschema2pojo.rules.ExampleClass");
AdditionalPropertiesRule rule = new AdditionalPropertiesRule(new RuleFactory());

JDefinedClass result = rule.apply("node", node, parent, jclass, schema);
JMethod method = result.getMethod("getAdditionalProperties", new JType[0]);
JClass returnType = (JClass) method.type();
assertEquals("Map<String,Integer>", returnType.name());
}

}

0 comments on commit 007b9de

Please sign in to comment.