add new tests for naming model class

fix #2191
PR #2192
This commit is contained in:
Antonio Spinelli 2016-02-21 01:47:04 -03:00
parent 1446f4a13e
commit 43f917493d
2 changed files with 46 additions and 13 deletions

View File

@ -20,6 +20,7 @@ import io.swagger.models.properties.StringProperty;
import com.google.common.collect.Sets;
import org.testng.Assert;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import java.util.List;
@ -456,4 +457,28 @@ public class JavaModelTest {
Assert.assertNull(cm.allowableValues);
}
@DataProvider(name = "modelNames")
public static Object[][] primeNumbers() {
return new Object[][] {
{"sample", "Sample"},
{"sample_name", "SampleName"},
{"sample__name", "SampleName"},
{"/sample", "Sample"},
{"\\sample", "Sample"},
{"sample.name", "SampleName"},
{"_sample", "Sample"},
{"Sample", "Sample"},
};
}
@Test(dataProvider = "modelNames", description = "avoid inner class")
public void modelNameTest(String name, String expectedName) {
final Model model = new ModelImpl();
final DefaultCodegen codegen = new JavaClientCodegen();
final CodegenModel cm = codegen.fromModel(name, model);
Assert.assertEquals(cm.name, name);
Assert.assertEquals(cm.classname, expectedName);
}
}

View File

@ -16,6 +16,7 @@ import io.swagger.models.properties.StringProperty;
import com.google.common.collect.Sets;
import org.testng.Assert;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
@SuppressWarnings("static-method")
@ -242,19 +243,26 @@ public class PhpModelTest {
Assert.assertEquals(Sets.intersection(cm.imports, Sets.newHashSet("Children")).size(), 1);
}
@Test(description = "avoid $ in class and file name, cased by two underscore in the model name.")
public void ModelTest() {
final Model model = new ModelImpl()
.description("a map model")
.additionalProperties(new RefProperty("#/definitions/Children"));
final DefaultCodegen codegen = new PhpClientCodegen();
final CodegenModel cm = codegen.fromModel("sample__model", model);
@DataProvider(name = "modelNames")
public static Object[][] primeNumbers() {
return new Object[][] {
{"sample", "Sample"},
{"sample_name", "SampleName"},
{"sample__name", "SampleName"},
{"/sample", "Sample"},
{"\\sample", "\\Sample"},
{"sample.name", "SampleName"},
{"_sample", "Sample"},
};
}
Assert.assertEquals(cm.name, "sample__model");
Assert.assertEquals(cm.classname, "SampleModel");
Assert.assertEquals(cm.description, "a map model");
Assert.assertEquals(cm.vars.size(), 0);
Assert.assertEquals(cm.imports.size(), 2);
Assert.assertEquals(Sets.intersection(cm.imports, Sets.newHashSet("Children")).size(), 1);
@Test(dataProvider = "modelNames", description = "avoid inner class")
public void modelNameTest(String name, String expectedName) {
final Model model = new ModelImpl();
final DefaultCodegen codegen = new PhpClientCodegen();
final CodegenModel cm = codegen.fromModel(name, model);
Assert.assertEquals(cm.name, name);
Assert.assertEquals(cm.classname, expectedName);
}
}