Skip to content

Commit 8cd30cf

Browse files
committed
dart: add test for enums
1 parent 32a182b commit 8cd30cf

File tree

1 file changed

+100
-0
lines changed

1 file changed

+100
-0
lines changed
Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
package io.swagger.codegen.dart;
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.DartClientCodegen;
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+
import org.testng.Assert;
14+
import org.testng.annotations.Test;
15+
16+
import java.util.ArrayList;
17+
import java.util.Arrays;
18+
import java.util.HashMap;
19+
import java.util.Map;
20+
21+
@SuppressWarnings("static-method")
22+
public class DartModelEnumTest {
23+
24+
@Test(description = "convert a dart model with an enum")
25+
public void converterTest() {
26+
final StringProperty enumProperty = new StringProperty();
27+
enumProperty.setEnum(Arrays.asList("VALUE1", "VALUE2", "VALUE3"));
28+
final ModelImpl model = new ModelImpl().property("name", enumProperty);
29+
30+
final DefaultCodegen codegen = new DartClientCodegen();
31+
final CodegenModel cm = codegen.fromModel("sample", model);
32+
33+
Assert.assertEquals(cm.vars.size(), 1);
34+
35+
final CodegenProperty enumVar = cm.vars.get(0);
36+
Assert.assertEquals(enumVar.baseName, "name");
37+
Assert.assertEquals(enumVar.datatype, "String");
38+
Assert.assertEquals(enumVar.datatypeWithEnum, "NameEnum");
39+
Assert.assertEquals(enumVar.name, "name");
40+
Assert.assertEquals(enumVar.defaultValue, "null");
41+
Assert.assertEquals(enumVar.baseType, "String");
42+
Assert.assertTrue(enumVar.isEnum);
43+
}
44+
45+
@Test(description = "not override identical parent enums")
46+
public void overrideEnumTest() {
47+
final StringProperty identicalEnumProperty = new StringProperty();
48+
identicalEnumProperty.setEnum(Arrays.asList("VALUE1", "VALUE2", "VALUE3"));
49+
50+
final StringProperty subEnumProperty = new StringProperty();
51+
subEnumProperty.setEnum(Arrays.asList("SUB1", "SUB2", "SUB3"));
52+
53+
// Add one enum property to the parent
54+
final Map<String, Property> parentProperties = new HashMap<String, Property>();
55+
parentProperties.put("sharedThing", identicalEnumProperty);
56+
57+
// Add TWO enums to the subType model; one of which is identical to the one in parent class
58+
final Map<String, Property> subProperties = new HashMap<String, Property>();
59+
subProperties.put("sharedThing", identicalEnumProperty);
60+
subProperties.put("unsharedThing", identicalEnumProperty);
61+
62+
final ModelImpl parentModel = new ModelImpl();
63+
parentModel.setProperties(parentProperties);
64+
parentModel.name("parentModel");
65+
66+
final ModelImpl subModel = new ModelImpl();
67+
subModel.setProperties(subProperties);
68+
subModel.name("subModel");
69+
70+
final ComposedModel model = new ComposedModel()
71+
.parent(new RefModel(parentModel.getName()))
72+
.child(subModel)
73+
.interfaces(new ArrayList<RefModel>());
74+
75+
final DefaultCodegen codegen = new DartClientCodegen();
76+
final Map<String, Model> allModels = new HashMap<String, Model>();
77+
allModels.put(parentModel.getName(), parentModel);
78+
allModels.put(subModel.getName(), subModel);
79+
80+
final CodegenModel cm = codegen.fromModel("sample", model, allModels);
81+
82+
Assert.assertEquals(cm.name, "sample");
83+
Assert.assertEquals(cm.classname, "Sample");
84+
Assert.assertEquals(cm.parent, "ParentModel");
85+
Assert.assertTrue(cm.imports.contains("ParentModel"));
86+
87+
Assert.assertEquals(cm.vars.size(), 2);
88+
System.out.println(cm.vars);
89+
CodegenProperty enumVar = cm.vars.get(0);
90+
Assert.assertEquals(enumVar.baseName, "sharedThing");
91+
Assert.assertEquals(enumVar.datatype, "String");
92+
Assert.assertEquals(enumVar.datatypeWithEnum, "SharedThingEnum");
93+
Assert.assertTrue(enumVar.isEnum);
94+
enumVar = cm.vars.get(1);
95+
Assert.assertEquals(enumVar.baseName, "unsharedThing");
96+
Assert.assertEquals(enumVar.datatype, "String");
97+
Assert.assertEquals(enumVar.datatypeWithEnum, "UnsharedThingEnum");
98+
Assert.assertTrue(enumVar.isEnum);
99+
}
100+
}

0 commit comments

Comments
 (0)