remove $ from class name

it is cased because the property start with underscore and
object is created on th fly

fix #2191
This commit is contained in:
Antonio Spinelli 2016-02-19 22:56:06 -02:00
parent 9ecea4b1f8
commit bab40566bc
2 changed files with 20 additions and 0 deletions

View File

@ -372,6 +372,10 @@ public class PhpClientCodegen extends DefaultCodegen implements CodegenConfig {
return camelize(name);
}
public static String camelize(String word) {
return DefaultCodegen.camelize(word).replaceAll("\\$", "");
}
@Override
public String toModelFilename(String name) {
// should be the same as the model name

View File

@ -241,4 +241,20 @@ public class PhpModelTest {
Assert.assertEquals(cm.imports.size(), 2);
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);
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);
}
}