Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions docs/generators/scala-akka-http-server.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
<li>Any</li>
<li>Array</li>
<li>Boolean</li>
<li>Byte</li>
<li>Double</li>
<li>Float</li>
<li>Int</li>
Expand Down
1 change: 1 addition & 0 deletions docs/generators/scala-akka.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
<li>Any</li>
<li>Array</li>
<li>Boolean</li>
<li>Byte</li>
<li>Double</li>
<li>Float</li>
<li>Int</li>
Expand Down
1 change: 1 addition & 0 deletions docs/generators/scala-gatling.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
<li>Any</li>
<li>Array</li>
<li>Boolean</li>
<li>Byte</li>
<li>Double</li>
<li>Float</li>
<li>Int</li>
Expand Down
1 change: 1 addition & 0 deletions docs/generators/scala-httpclient-deprecated.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
<li>Any</li>
<li>Array</li>
<li>Boolean</li>
<li>Byte</li>
<li>Double</li>
<li>Float</li>
<li>Int</li>
Expand Down
1 change: 1 addition & 0 deletions docs/generators/scala-lagom-server.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
<li>Any</li>
<li>Array</li>
<li>Boolean</li>
<li>Byte</li>
<li>Double</li>
<li>Float</li>
<li>Int</li>
Expand Down
1 change: 1 addition & 0 deletions docs/generators/scala-play-server.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
<li>Any</li>
<li>Array</li>
<li>Boolean</li>
<li>Byte</li>
<li>Double</li>
<li>Float</li>
<li>Int</li>
Expand Down
1 change: 1 addition & 0 deletions docs/generators/scala-sttp.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
<li>Any</li>
<li>Array</li>
<li>Boolean</li>
<li>Byte</li>
<li>Double</li>
<li>Float</li>
<li>Int</li>
Expand Down
1 change: 1 addition & 0 deletions docs/generators/scalatra.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
<li>Any</li>
<li>Array</li>
<li>Boolean</li>
<li>Byte</li>
<li>Double</li>
<li>Float</li>
<li>Int</li>
Expand Down
1 change: 1 addition & 0 deletions docs/generators/scalaz.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
<li>Any</li>
<li>Array</li>
<li>Boolean</li>
<li>Byte</li>
<li>Double</li>
<li>Float</li>
<li>Int</li>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1580,6 +1580,7 @@ public DefaultCodegen() {
typeMapping.put("char", "String");
typeMapping.put("object", "Object");
typeMapping.put("integer", "Integer");
// FIXME: java specific type should be in Java Based Abstract Impl's
typeMapping.put("ByteArray", "byte[]");
typeMapping.put("binary", "File");
typeMapping.put("file", "File");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,8 @@ public AbstractScalaCodegen() {
"List",
"Seq",
"Map",
"Array"));
"Array",
"Byte"));

reservedWords.addAll(Arrays.asList(
"abstract",
Expand Down Expand Up @@ -118,6 +119,10 @@ public AbstractScalaCodegen() {
"yield"
));

// Scala specific openApi types mapping
typeMapping.put("ByteArray", "Array[Byte]");


importMapping = new HashMap<String, String>();
importMapping.put("ListBuffer", "scala.collection.mutable.ListBuffer");
// although Seq is a predef, before Scala 2.13, it _could_ refer to a mutable Seq in some cases.
Expand Down Expand Up @@ -344,17 +349,11 @@ public String getSchemaType(Schema p) {
if (ModelUtils.isSet(p)) {
openAPIType = "set";
}

String type;
// don't apply renaming on types from the typeMapping
if (typeMapping.containsKey(openAPIType)) {
type = typeMapping.get(openAPIType);
if (languageSpecificPrimitives.contains(type)) {
return toModelName(type);
}
} else {
type = openAPIType;
return typeMapping.get(openAPIType);
}
return toModelName(type);
return toModelName(openAPIType);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,7 @@ public ScalaSttpClientCodegen() {
importMapping.remove("Set");
importMapping.remove("Map");

// TODO: there is no specific sttp mapping. All Scala Type mappings should be in AbstractScala
typeMapping = new HashMap<>();
typeMapping.put("array", "Seq");
typeMapping.put("set", "Set");
Expand All @@ -144,7 +145,6 @@ public ScalaSttpClientCodegen() {
typeMapping.put("number", "Double");
typeMapping.put("decimal", "BigDecimal");
typeMapping.put("ByteArray", "Array[Byte]");
typeMapping.put("ArrayByte", "Array[Byte]");

instantiationTypes.put("array", "ListBuffer");
instantiationTypes.put("map", "Map");
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package org.openapitools.codegen.scala;

import io.swagger.v3.oas.models.media.ObjectSchema;
import io.swagger.v3.oas.models.media.Schema;
import org.openapitools.codegen.CodegenConstants;
import org.openapitools.codegen.languages.AbstractScalaCodegen;
import org.testng.Assert;
Expand Down Expand Up @@ -95,4 +97,21 @@ public void checkScalaTypeImportMapping() {
Assert.assertFalse(fakeScalaCodegen.importMapping().containsKey("BigInt"),
"BigInt is a Scala type and must not be imported");
}

@Test
void checkScalaTypeDeclaration() {

final AbstractScalaCodegen codegen = new P_AbstractScalaCodegen();

Schema<?> byteArraySchema = new ObjectSchema();
byteArraySchema.setType("string");
byteArraySchema.setFormat("byte");
byteArraySchema.setDescription("Schema with byte string");

Assert.assertEquals(codegen.getTypeDeclaration(byteArraySchema), "Array[Byte]",
"OpenApi File type represented as byte string should be represented as Array[Byte] scala type");

}


}
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package org.openapitools.codegen.scala;

import org.junit.Assert;
import org.junit.Test;
import org.testng.Assert;
import org.testng.annotations.Test;
import org.openapitools.codegen.languages.ScalaSttpClientCodegen;

import java.util.HashMap;
Expand All @@ -14,7 +14,7 @@ public void shouldUseDefaultValueIfAdditionalPropertiesAreEmpty() {
Map<String, Object> additionalProperties = new HashMap<>();
booleanProperty.updateAdditionalProperties(additionalProperties);

Assert.assertEquals(false, additionalProperties.get("k1"));
Assert.assertEquals(additionalProperties.get("k1"), false);
}

@Test
Expand All @@ -24,6 +24,6 @@ public void shouldUseGivenValueIfProvided() {
additionalProperties.put("k1", true);
booleanProperty.updateAdditionalProperties(additionalProperties);

Assert.assertEquals(true, additionalProperties.get("k1"));
Assert.assertEquals(additionalProperties.get("k1"), true);
}
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package org.openapitools.codegen.scala;

import org.openapitools.codegen.languages.ScalaSttpClientCodegen;
import org.junit.Assert;
import org.junit.Test;
import org.testng.Assert;
import org.testng.annotations.Test;

import io.swagger.v3.oas.models.media.Schema;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package org.openapitools.codegen.scala;

import org.junit.Assert;
import org.junit.Test;
import org.testng.Assert;
import org.testng.annotations.Test;
import org.openapitools.codegen.languages.ScalaSttpClientCodegen;

import java.util.HashMap;
Expand All @@ -13,8 +13,8 @@ public void shouldUseJson4sByDefault() {
ScalaSttpClientCodegen.JsonLibraryProperty property = new ScalaSttpClientCodegen.JsonLibraryProperty();
Map<String, Object> additionalProperties = new HashMap<>();
property.updateAdditionalProperties(additionalProperties);
Assert.assertEquals(true, additionalProperties.get("json4s"));
Assert.assertEquals(false, additionalProperties.get("circe"));
Assert.assertEquals(additionalProperties.get("json4s"), true);
Assert.assertEquals(additionalProperties.get("circe"), false);
}

@Test
Expand All @@ -23,8 +23,8 @@ public void shouldUseJson4sIfExplicitlyAskTo() {
Map<String, Object> additionalProperties = new HashMap<>();
additionalProperties.put("jsonLibrary", "json4s");
property.updateAdditionalProperties(additionalProperties);
Assert.assertEquals(true, additionalProperties.get("json4s"));
Assert.assertEquals(false, additionalProperties.get("circe"));
Assert.assertEquals(additionalProperties.get("json4s"), true);
Assert.assertEquals(additionalProperties.get("circe"), false);
}

@Test
Expand All @@ -33,7 +33,7 @@ public void shouldUseCirceIfExplicitlyAskTo() {
Map<String, Object> additionalProperties = new HashMap<>();
additionalProperties.put("jsonLibrary", "circe");
property.updateAdditionalProperties(additionalProperties);
Assert.assertEquals(false, additionalProperties.get("json4s"));
Assert.assertEquals(true, additionalProperties.get("circe"));
Assert.assertEquals(additionalProperties.get("json4s"), false);
Assert.assertEquals(additionalProperties.get("circe"), true);
}
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package org.openapitools.codegen.scala;

import org.junit.Assert;
import org.junit.Test;
import org.testng.Assert;
import org.testng.annotations.Test;
import org.openapitools.codegen.CodegenConstants;
import org.openapitools.codegen.languages.ScalaSttpClientCodegen;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package org.openapitools.codegen.scala;

import org.junit.Assert;
import org.junit.Test;
import org.testng.Assert;
import org.testng.annotations.Test;
import org.openapitools.codegen.languages.ScalaSttpClientCodegen;

import java.util.HashMap;
Expand All @@ -10,21 +10,21 @@
public class SttpStringPropertyTest {

@Test
public void shouldUseDefaultValueIfAdditionalPropertiesAreEmpty(){
public void shouldUseDefaultValueIfAdditionalPropertiesAreEmpty() {
ScalaSttpClientCodegen.StringProperty property = new ScalaSttpClientCodegen.StringProperty("k1", "desc", "default");
Map<String, Object> additionalProperties = new HashMap<>();
property.updateAdditionalProperties(additionalProperties);

Assert.assertEquals("default", additionalProperties.get("k1"));
Assert.assertEquals(additionalProperties.get("k1"), "default");
}

@Test
public void shouldUseGivenValueIfProvided(){
public void shouldUseGivenValueIfProvided() {
ScalaSttpClientCodegen.StringProperty property = new ScalaSttpClientCodegen.StringProperty("k1", "desc", "default");
Map<String, Object> additionalProperties = new HashMap<>();
additionalProperties.put("k1", "custom");
property.updateAdditionalProperties(additionalProperties);

Assert.assertEquals("custom", additionalProperties.get("k1"));
Assert.assertEquals(additionalProperties.get("k1"), "custom");
}
}
Loading