Skip to content

Commit 053af7a

Browse files
committed
Merge pull request #1305 from iushankin/issue-1304
Fixed #1304: Migrate tests from the Scala to the plain Java. Part 1
2 parents d9bfb88 + 4db8600 commit 053af7a

File tree

13 files changed

+655
-679
lines changed

13 files changed

+655
-679
lines changed
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package io.swagger.codegen;
2+
3+
import io.swagger.models.auth.AuthorizationValue;
4+
5+
import org.testng.Assert;
6+
import org.testng.annotations.Test;
7+
8+
import java.util.List;
9+
10+
public class ClientAuthInputTest {
11+
12+
@Test(description = "read a file upload param from a 2.0 spec")
13+
public void clientAuthInputTest() {
14+
final ClientOptInput input = new ClientOptInput();
15+
16+
final String header = "api_key:special-key,api_key:hello,X-AUTHORIZATION:0e6c11d79a,Authorization:Basic 1jz0";
17+
input.setAuth(header);
18+
final List<AuthorizationValue> authValues = input.getAuthorizationValues();
19+
Assert.assertEquals(authValues.size(), 4);
20+
21+
final AuthorizationValue a1 = authValues.get(0);
22+
Assert.assertEquals(a1.getKeyName(), "api_key");
23+
Assert.assertEquals(a1.getValue(), "special-key");
24+
Assert.assertEquals(a1.getType(), "header");
25+
26+
final AuthorizationValue a2 = authValues.get(1);
27+
Assert.assertEquals(a2.getKeyName(), "api_key");
28+
Assert.assertEquals(a2.getValue(), "hello");
29+
Assert.assertEquals(a2.getType(), "header");
30+
31+
final AuthorizationValue a3 = authValues.get(2);
32+
Assert.assertEquals(a3.getKeyName(), "X-AUTHORIZATION");
33+
Assert.assertEquals(a3.getValue(), "0e6c11d79a");
34+
Assert.assertEquals(a3.getType(), "header");
35+
36+
final AuthorizationValue a4 = authValues.get(3);
37+
Assert.assertEquals(a4.getKeyName(), "Authorization");
38+
Assert.assertEquals(a4.getValue(), "Basic 1jz0");
39+
Assert.assertEquals(a4.getType(), "header");
40+
}
41+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package io.swagger.codegen;
2+
3+
import io.swagger.models.Swagger;
4+
import io.swagger.parser.SwaggerParser;
5+
6+
import org.testng.annotations.Test;
7+
8+
public class SwaggerMigratorTest {
9+
10+
@Test(description = "read a 1.2 spec")
11+
public void swaggerMigratorTest() {
12+
final SwaggerParser loader = new SwaggerParser();
13+
final Swagger swagger = loader.read("src/test/resources/1_2/petstore-1.2/api-docs");
14+
}
15+
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package io.swagger.codegen.java;
2+
3+
import io.swagger.codegen.CodegenModel;
4+
import io.swagger.codegen.DefaultCodegen;
5+
import io.swagger.codegen.languages.JavaClientCodegen;
6+
import io.swagger.models.ComposedModel;
7+
import io.swagger.models.Model;
8+
import io.swagger.models.ModelImpl;
9+
import io.swagger.models.RefModel;
10+
import io.swagger.models.properties.StringProperty;
11+
12+
import com.google.common.collect.Sets;
13+
import org.testng.Assert;
14+
import org.testng.annotations.Test;
15+
16+
public class JavaInheritanceTest {
17+
18+
@Test(description = "convert a composed model")
19+
public void javaInheritanceTest() {
20+
final Model model = new ComposedModel().parent(new RefModel("Base"))
21+
.child(new ModelImpl().additionalProperties(new StringProperty()));
22+
23+
final DefaultCodegen codegen = new JavaClientCodegen();
24+
final CodegenModel cm = codegen.fromModel("sample", model);
25+
26+
Assert.assertEquals(cm.name, "sample");
27+
Assert.assertEquals(cm.classname, "Sample");
28+
Assert.assertEquals(cm.parent, "Base");
29+
Assert.assertEquals(cm.imports, Sets.newHashSet("Base"));
30+
}
31+
}
Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
package io.swagger.codegen.java;
2+
3+
import io.swagger.codegen.CodegenModel;
4+
import io.swagger.codegen.CodegenProperty;
5+
import io.swagger.codegen.DefaultCodegen;
6+
import io.swagger.codegen.languages.JavaClientCodegen;
7+
import io.swagger.models.ComposedModel;
8+
import io.swagger.models.Model;
9+
import io.swagger.models.ModelImpl;
10+
import io.swagger.models.RefModel;
11+
import io.swagger.models.properties.Property;
12+
import io.swagger.models.properties.StringProperty;
13+
14+
import org.testng.Assert;
15+
import org.testng.annotations.Test;
16+
17+
import java.util.ArrayList;
18+
import java.util.Arrays;
19+
import java.util.Collections;
20+
import java.util.HashMap;
21+
import java.util.Map;
22+
23+
public class JavaModelEnumTest {
24+
25+
@Test(description = "convert a java model with an enum")
26+
public void converterTest() {
27+
final StringProperty enumProperty = new StringProperty();
28+
enumProperty.setEnum(Arrays.asList("VALUE1", "VALUE2", "VALUE3"));
29+
final ModelImpl model = new ModelImpl().property("name", enumProperty);
30+
31+
final DefaultCodegen codegen = new JavaClientCodegen();
32+
final CodegenModel cm = codegen.fromModel("sample", model);
33+
34+
Assert.assertEquals(cm.vars.size(), 1);
35+
36+
final CodegenProperty enumVar = cm.vars.get(0);
37+
Assert.assertEquals(enumVar.baseName, "name");
38+
Assert.assertEquals(enumVar.datatype, "String");
39+
Assert.assertEquals(enumVar.datatypeWithEnum, "NameEnum");
40+
Assert.assertEquals(enumVar.name, "name");
41+
Assert.assertEquals(enumVar.defaultValue, "null");
42+
Assert.assertEquals(enumVar.baseType, "String");
43+
Assert.assertTrue(enumVar.isEnum);
44+
}
45+
46+
@Test(description = "not override identical parent enums")
47+
public void overrideEnumTest() {
48+
final StringProperty identicalEnumProperty = new StringProperty();
49+
identicalEnumProperty.setEnum(Arrays.asList("VALUE1", "VALUE2", "VALUE3"));
50+
51+
final StringProperty subEnumProperty = new StringProperty();
52+
subEnumProperty.setEnum(Arrays.asList("SUB1", "SUB2", "SUB3"));
53+
54+
// Add one enum property to the parent
55+
final Map<String, Property> parentProperties = new HashMap<String, Property>();
56+
parentProperties.put("sharedThing", identicalEnumProperty);
57+
58+
// Add TWO enums to the subType model; one of which is identical to the one in parent class
59+
final Map<String, Property> subProperties = new HashMap<String, Property>();
60+
subProperties.put("sharedThing", identicalEnumProperty);
61+
subProperties.put("unsharedThing", identicalEnumProperty);
62+
63+
final ModelImpl parentModel = new ModelImpl();
64+
parentModel.setProperties(parentProperties);
65+
parentModel.name("parentModel");
66+
67+
final ModelImpl subModel = new ModelImpl();
68+
subModel.setProperties(subProperties);
69+
subModel.name("subModel");
70+
71+
final ComposedModel model = new ComposedModel()
72+
.parent(new RefModel(parentModel.getName()))
73+
.child(subModel)
74+
.interfaces(new ArrayList<RefModel>());
75+
76+
final DefaultCodegen codegen = new JavaClientCodegen();
77+
final Map<String, Model> allModels = new HashMap<String, Model>();
78+
allModels.put(codegen.toModelName(parentModel.getName()), parentModel);
79+
allModels.put(codegen.toModelName(subModel.getName()), subModel);
80+
81+
final CodegenModel cm = codegen.fromModel("sample", model, allModels);
82+
83+
Assert.assertEquals(cm.name, "sample");
84+
Assert.assertEquals(cm.classname, "Sample");
85+
Assert.assertEquals(cm.parent, "ParentModel");
86+
Assert.assertEquals(cm.imports, Collections.singletonList("ParentModel"));
87+
88+
// Assert that only the unshared/uninherited enum remains
89+
Assert.assertEquals(cm.vars.size(), 1);
90+
final CodegenProperty enumVar = cm.vars.get(0);
91+
Assert.assertEquals(enumVar.baseName, "unsharedThing");
92+
Assert.assertEquals(enumVar.datatype, "String");
93+
Assert.assertEquals(enumVar.datatypeWithEnum, "UnsharedThingEnum");
94+
Assert.assertTrue(enumVar.isEnum);
95+
}
96+
}

0 commit comments

Comments
 (0)