Skip to content

Commit e67e179

Browse files
committed
Merge pull request #1305 from lugaru1234/issue1223
Fixes #1223: ReferenceTest has been migrated
2 parents da43333 + 8afd289 commit e67e179

File tree

14 files changed

+282
-178
lines changed

14 files changed

+282
-178
lines changed

modules/swagger-jaxrs/pom.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,12 @@
143143
<groupId>org.mockito</groupId>
144144
<artifactId>mockito-all</artifactId>
145145
</dependency>
146+
<dependency>
147+
<groupId>commons-io</groupId>
148+
<artifactId>commons-io</artifactId>
149+
<version>${commons-io-version}</version>
150+
<scope>test</scope>
151+
</dependency>
146152
</dependencies>
147153
<properties>
148154
<coverage.complexity.minimum>0.29</coverage.complexity.minimum>
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
package io.swagger;
2+
3+
import static org.testng.Assert.assertEquals;
4+
import static org.testng.Assert.assertTrue;
5+
6+
import io.swagger.converter.ModelConverters;
7+
import io.swagger.jaxrs.Reader;
8+
import io.swagger.matchers.SerializationMatchers;
9+
import io.swagger.models.Pet;
10+
import io.swagger.models.Swagger;
11+
import io.swagger.models.properties.Property;
12+
import io.swagger.models.properties.RefProperty;
13+
import io.swagger.resources.ResourceWithReferences;
14+
15+
import org.apache.commons.io.IOUtils;
16+
import org.testng.annotations.Test;
17+
18+
import java.io.IOException;
19+
import java.io.InputStream;
20+
import java.nio.charset.StandardCharsets;
21+
import java.util.Map;
22+
23+
public class ReferenceTest {
24+
25+
@Test(description = "Scan a model with common reference and reference with ApiModel")
26+
public void scanModel() {
27+
final Map<String, Property> props = ModelConverters.getInstance().readAll(Pet.class).get("Pet").getProperties();
28+
final RefProperty category = (RefProperty) props.get("category");
29+
assertEquals(category.getType(), "ref");
30+
assertEquals(category.get$ref(), "#/definitions/Category");
31+
32+
final RefProperty categoryWithApiModel = (RefProperty) props.get("categoryWithApiModel");
33+
assertEquals(categoryWithApiModel.getType(), "ref");
34+
assertEquals(categoryWithApiModel.get$ref(), "#/definitions/MyCategory");
35+
}
36+
37+
@Test(description = "Scan API with operation and response references")
38+
public void scanAPI() throws IOException {
39+
final Swagger swagger = new Reader(new Swagger()).read(ResourceWithReferences.class);
40+
final InputStream in = getClass().getClassLoader().getResourceAsStream("ResourceWithReferences.json");
41+
assertTrue(SerializationMatchers.compareAsJson(swagger, IOUtils.toString(in, StandardCharsets.UTF_8)));
42+
}
43+
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package io.swagger.matchers;
2+
3+
import io.swagger.util.Json;
4+
import io.swagger.util.Yaml;
5+
6+
import com.fasterxml.jackson.databind.ObjectMapper;
7+
import com.fasterxml.jackson.databind.node.ObjectNode;
8+
9+
import org.slf4j.Logger;
10+
import org.slf4j.LoggerFactory;
11+
12+
import java.io.IOException;
13+
14+
public class SerializationMatchers {
15+
private static final Logger LOGGER = LoggerFactory.getLogger(SerializationMatchers.class);
16+
17+
public static boolean compareAsYaml(Object objectToSerialize, String yamlStr) {
18+
return apply(objectToSerialize, yamlStr, Yaml.mapper());
19+
}
20+
21+
public static boolean compareAsJson(Object objectToSerialize, String jsonStr) {
22+
return apply(objectToSerialize, jsonStr, Json.mapper());
23+
}
24+
25+
private static boolean apply(Object objectToSerialize, String str, ObjectMapper mapper) {
26+
ObjectNode lhs = mapper.convertValue(objectToSerialize, ObjectNode.class);
27+
ObjectNode rhs = null;
28+
try {
29+
rhs = mapper.readValue(str, ObjectNode.class);
30+
} catch (IOException e) {
31+
LOGGER.error("Failed to read value", e);
32+
}
33+
return lhs.equals(rhs);
34+
}
35+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package io.swagger.models;
2+
3+
import javax.xml.bind.annotation.XmlElement;
4+
import javax.xml.bind.annotation.XmlRootElement;
5+
6+
@XmlRootElement(name = "Category")
7+
public class Category {
8+
private long id;
9+
private String name;
10+
11+
@XmlElement(name = "id")
12+
public long getId() {
13+
return id;
14+
}
15+
16+
public void setId(long id) {
17+
this.id = id;
18+
}
19+
20+
@XmlElement(name = "name")
21+
public String getName() {
22+
return name;
23+
}
24+
25+
public void setName(String name) {
26+
this.name = name;
27+
}
28+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package io.swagger.models;
2+
3+
import io.swagger.annotations.ApiModel;
4+
5+
import javax.xml.bind.annotation.XmlRootElement;
6+
7+
@ApiModel("MyCategory")
8+
@XmlRootElement(name = "CategoryWithApiModel")
9+
public class CategoryWithApiModel {
10+
}

modules/swagger-jaxrs/src/test/scala/models/ModelContainingModelWithReference.java renamed to modules/swagger-jaxrs/src/test/java/io/swagger/models/ModelContainingModelWithReference.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package models;
1+
package io.swagger.models;
22

33
import io.swagger.annotations.ApiModelProperty;
44

modules/swagger-jaxrs/src/test/scala/models/ModelWithReference.java renamed to modules/swagger-jaxrs/src/test/java/io/swagger/models/ModelWithReference.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package models;
1+
package io.swagger.models;
22

33
import io.swagger.annotations.ApiModel;
44
import io.swagger.annotations.ApiModelProperty;

modules/swagger-jaxrs/src/test/java/io/swagger/models/Pet.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
import models.Category;
66
import models.CategoryWithApiModel;
7-
import models.Tag;
7+
import io.swagger.models.duplicated.Tag;
88

99
import java.util.ArrayList;
1010
import java.util.List;
@@ -20,7 +20,7 @@ public class Pet {
2020
private CategoryWithApiModel categoryWithApiModel;
2121
private String name;
2222
private List<String> photoUrls = new ArrayList<String>();
23-
private List<models.Tag> tags = new ArrayList<models.Tag>();
23+
private List<Tag> tags = new ArrayList<Tag>();
2424
private String status;
2525

2626
@XmlElement(name = "id")
@@ -71,7 +71,7 @@ public void setPhotoUrls(List<String> photoUrls) {
7171

7272
@XmlElementWrapper(name = "tags")
7373
@XmlElement(name = "tag")
74-
public List<models.Tag> getTags() {
74+
public List<Tag> getTags() {
7575
return tags;
7676
}
7777

modules/swagger-jaxrs/src/test/scala/models/SubModelWithSelfReference.java renamed to modules/swagger-jaxrs/src/test/java/io/swagger/models/SubModelWithSelfReference.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package models;
1+
package io.swagger.models;
22

33
import io.swagger.annotations.ApiModelProperty;
44

modules/swagger-jaxrs/src/test/java/io/swagger/models/duplicated/Tag.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,4 +25,4 @@ public String getName() {
2525
public void setName(String name) {
2626
this.name = name;
2727
}
28-
}
28+
}

0 commit comments

Comments
 (0)