forked from loafle/openapi-generator-original
Fix bugs in camelcase lambda, add tests for pascalcase (#12639)
* fix bugs in lambda, add tests for pascalcase * add tests for empty string to confirm no npe
This commit is contained in:
+1
-1
@@ -62,7 +62,7 @@ public class CamelCaseLambda implements Mustache.Lambda {
|
||||
|
||||
@Override
|
||||
public void execute(Template.Fragment fragment, Writer writer) throws IOException {
|
||||
String text = camelize(fragment.execute(), lowercaseFirstLetter);
|
||||
String text = camelize(fragment.execute().replace(" ", "_"), lowercaseFirstLetter);
|
||||
if (generator != null) {
|
||||
text = generator.sanitizeName(text);
|
||||
if (generator.reservedWords().contains(text)) {
|
||||
|
||||
+9
@@ -33,6 +33,15 @@ public class CamelCaseLambdaTest extends LambdaTest {
|
||||
test("inputText", "{{#camelcase}}Input-text{{/camelcase}}", ctx);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void camelCaseSpaceTest() {
|
||||
// Given
|
||||
Map<String, Object> ctx = context("camelcase", new CamelCaseLambda());
|
||||
|
||||
// When & Then
|
||||
test("inputTextApi", "{{#camelcase}}Input text api{{/camelcase}}", ctx);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void camelCaseReservedWordTest() {
|
||||
// Given
|
||||
|
||||
+75
@@ -0,0 +1,75 @@
|
||||
package org.openapitools.codegen.templating.mustache;
|
||||
|
||||
import static org.mockito.AdditionalAnswers.returnsFirstArg;
|
||||
import static org.mockito.ArgumentMatchers.anyString;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.HashSet;
|
||||
import java.util.Map;
|
||||
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
import org.openapitools.codegen.CodegenConfig;
|
||||
import org.testng.annotations.BeforeMethod;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
public class PascalCaseLambdaTest extends LambdaTest {
|
||||
|
||||
@Mock
|
||||
CodegenConfig generator;
|
||||
|
||||
@BeforeMethod
|
||||
public void setup() {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void pascalCaseTest() {
|
||||
// Given
|
||||
Map<String, Object> ctx = context("pascalcase", new CamelCaseLambda(false));
|
||||
|
||||
// When & Then
|
||||
test("InputText", "{{#pascalcase}}Input-text{{/pascalcase}}", ctx);
|
||||
test("InputText", "{{#pascalcase}}Input_text{{/pascalcase}}", ctx);
|
||||
test("", "{{#pascalcase}}{{/pascalcase}}", ctx);
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void pascalCaseSpaceTest() {
|
||||
// Given
|
||||
Map<String, Object> ctx = context("pascalcase", new CamelCaseLambda(false));
|
||||
|
||||
// When & Then
|
||||
test("InputTextApi", "{{#pascalcase}}Input text api{{/pascalcase}}", ctx);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void pascalCaseReservedWordTest() {
|
||||
// Given
|
||||
Map<String, Object> ctx = context("pascalcase", new CamelCaseLambda(false).generator(generator));
|
||||
|
||||
when(generator.sanitizeName(anyString())).then(returnsFirstArg());
|
||||
when(generator.reservedWords()).thenReturn(new HashSet<String>(Arrays.asList("ReservedWord")));
|
||||
when(generator.escapeReservedWord("ReservedWord")).thenReturn("escapedReservedWord");
|
||||
|
||||
// When & Then
|
||||
test("escapedReservedWord", "{{#pascalcase}}reserved-word{{/pascalcase}}", ctx);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void pascalCaseEscapeParamTest() {
|
||||
// Given
|
||||
Map<String, Object> ctx = context("pascalcase", new CamelCaseLambda(false)
|
||||
.generator(generator).escapeAsParamName(true));
|
||||
|
||||
when(generator.sanitizeName(anyString())).then(returnsFirstArg());
|
||||
when(generator.reservedWords()).thenReturn(new HashSet<String>());
|
||||
when(generator.toParamName("InputText")).thenReturn("inputTextAsParam");
|
||||
|
||||
// When & Then
|
||||
test("inputTextAsParam", "{{#pascalcase}}Input_text{{/pascalcase}}", ctx);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user