added apiToMap test

This commit is contained in:
Tony Tam 2012-09-25 11:30:33 -07:00
parent b0c15d1c9b
commit dd88a6b0ac
3 changed files with 48 additions and 48 deletions

View File

@ -320,11 +320,11 @@ class Codegen(config: CodegenConfig) {
"deprecated" -> op.deprecated, "deprecated" -> op.deprecated,
"bodyParam" -> bodyParam, "bodyParam" -> bodyParam,
"allParams" -> sp, "allParams" -> sp,
"bodyParams" -> bodyParams, "bodyParams" -> bodyParams.toList,
"pathParams" -> pathParams, "pathParams" -> pathParams.toList,
"queryParams" -> queryParams, "queryParams" -> queryParams.toList,
"headerParams" -> headerParams, "headerParams" -> headerParams.toList,
"requiredParams" -> requiredParams, "requiredParams" -> requiredParams.toList,
"httpMethod" -> op.httpMethod.toUpperCase, "httpMethod" -> op.httpMethod.toUpperCase,
op.httpMethod.toLowerCase -> "true") op.httpMethod.toLowerCase -> "true")
if (requiredParams.size > 0) properties += "requiredParamCount" -> requiredParams.size.toString if (requiredParams.size > 0) properties += "requiredParamCount" -> requiredParams.size.toString
@ -346,7 +346,7 @@ class Codegen(config: CodegenConfig) {
val ComplexTypeMatcher(basePart) = op.responseClass val ComplexTypeMatcher(basePart) = op.responseClass
properties += "returnType" -> config.processResponseDeclaration(op.responseClass.replaceAll(basePart, config.processResponseClass(basePart).get)) properties += "returnType" -> config.processResponseDeclaration(op.responseClass.replaceAll(basePart, config.processResponseClass(basePart).get))
properties += "returnContainer" -> (op.responseClass.substring(0, n)) properties += "returnContainer" -> (op.responseClass.substring(0, n))
properties += "returnBaseType" -> Some(config.processResponseClass(basePart)) properties += "returnBaseType" -> config.processResponseClass(basePart)
properties += "returnTypeIsPrimitive" -> { properties += "returnTypeIsPrimitive" -> {
(config.languageSpecificPrimitives.contains(basePart) || primitives.contains(basePart)) match { (config.languageSpecificPrimitives.contains(basePart) || primitives.contains(basePart)) match {
case true => Some("true") case true => Some("true")

View File

@ -38,26 +38,26 @@ class BasicGeneratorTest extends FlatSpec with ShouldMatchers {
val generator = new SampleGenerator val generator = new SampleGenerator
val ops = generator.extractOperations(subDocs, allModels) val ops = generator.extractOperations(subDocs, allModels)
allModels.size should be (5) allModels.size should be (5)
ops.size should be (16) ops.size should be (16)
val operations = ops.map(op => (op._2, op._3)).toMap val operations = ops.map(op => (op._2, op._3)).toMap
(operations.keys.toSet & (operations.keys.toSet &
Set("/pet.{format}/findByTags", "/user.{format}/createWithArray", "/user.{format}/createWithList", Set("/pet.{format}/findByTags", "/user.{format}/createWithArray", "/user.{format}/createWithList",
"/store.{format}/order", "/user.{format}", "/pet.{format}/findByStatus", "/user.{format}/{username}", "/store.{format}/order", "/user.{format}", "/pet.{format}/findByStatus", "/user.{format}/{username}",
"/user.{format}/logout", "/user.{format}/login", "/pet.{format}/{petId}", "/store.{format}/order/{orderId}", "/user.{format}/logout", "/user.{format}/login", "/pet.{format}/{petId}", "/store.{format}/order/{orderId}",
"/pet.{format}")).size should be (12) "/pet.{format}")).size should be (12)
// pick apart the /store/order api // pick apart the /store/order api
val orderApi = operations("/store.{format}/order") val orderApi = operations("/store.{format}/order")
orderApi.httpMethod should be ("POST") orderApi.httpMethod should be ("POST")
orderApi.summary should be ("Place an order for a pet") orderApi.summary should be ("Place an order for a pet")
orderApi.responseClass should be ("void") orderApi.responseClass should be ("void")
orderApi.nickname should be ("placeOrder") orderApi.nickname should be ("placeOrder")
orderApi.getParameters.size should be (1) orderApi.getParameters.size should be (1)
orderApi.getErrorResponses.size should be (1) orderApi.getErrorResponses.size should be (1)
} }
it should "verify ops are grouped by path correctly" in { it should "verify ops are grouped by path correctly" in {

View File

@ -18,21 +18,21 @@ class CodegenConfigTest extends FlatSpec with ShouldMatchers {
val json = ScalaJsonUtil.getJsonMapper val json = ScalaJsonUtil.getJsonMapper
class SampleCodegenConfig extends CodegenConfig with PathUtil { class SampleCodegenConfig extends CodegenConfig with PathUtil {
override def packageName = "com.test" override def packageName = "com.test"
override def templateDir = "src/test/resources/sampleConfigTemplates" override def templateDir = "src/test/resources/sampleConfigTemplates"
override def destinationDir = { override def destinationDir = {
val tmpFile = java.io.File.createTempFile("test",".tmp") val tmpFile = java.io.File.createTempFile("test",".tmp")
tmpFile.delete; tmpFile.mkdir tmpFile.delete; tmpFile.mkdir
tmpFile.deleteOnExit tmpFile.deleteOnExit
tmpFile.toString tmpFile.toString
} }
override def escapeReservedWord(word: String) = "`" + word + "`" override def escapeReservedWord(word: String) = "`" + word + "`"
override def typeMapping = Map("int" -> "integer") override def typeMapping = Map("int" -> "integer")
override def invokerPackage = Some("com.wordnik.something") override def invokerPackage = Some("com.wordnik.something")
override def apiPackage = Some("com.wordnik.api") override def apiPackage = Some("com.wordnik.api")
override def modelPackage = Some("com.wordnik.models") override def modelPackage = Some("com.wordnik.models")
override def reservedWords = Set("special") override def reservedWords = Set("special")
override def importMapping = super.importMapping ++ Map("User" -> "com.mypackage.User") override def importMapping = super.importMapping ++ Map("User" -> "com.mypackage.User")
} }
val config = new SampleCodegenConfig val config = new SampleCodegenConfig
@ -42,7 +42,7 @@ class CodegenConfigTest extends FlatSpec with ShouldMatchers {
* We will take an api in the spec and create an API name from it * We will take an api in the spec and create an API name from it
*/ */
it should "convert an api name" in { it should "convert an api name" in {
config.toApiName("fun") should be ("FunApi") config.toApiName("fun") should be ("FunApi")
} }
/* /*
@ -50,7 +50,7 @@ class CodegenConfigTest extends FlatSpec with ShouldMatchers {
* i.e. /foo will follow rules to become FooApi * i.e. /foo will follow rules to become FooApi
*/ */
it should "convert a path" in { it should "convert a path" in {
config.apiNameFromPath("/foo/bar/cats/dogs") should be ("FooApi") config.apiNameFromPath("/foo/bar/cats/dogs") should be ("FooApi")
} }
behavior of "CodegenConfig" behavior of "CodegenConfig"
@ -59,7 +59,7 @@ class CodegenConfigTest extends FlatSpec with ShouldMatchers {
* for the template generator * for the template generator
*/ */
it should "process a response declaration" in { it should "process a response declaration" in {
config.processResponseDeclaration("void") should be (None) config.processResponseDeclaration("void") should be (None)
} }
/* /*
@ -67,7 +67,7 @@ class CodegenConfigTest extends FlatSpec with ShouldMatchers {
* unchanged * unchanged
*/ */
it should "process an unchanged response" in { it should "process an unchanged response" in {
config.processResponseDeclaration("string") should be (Some("string")) config.processResponseDeclaration("string") should be (Some("string"))
} }
/* /*
@ -75,28 +75,28 @@ class CodegenConfigTest extends FlatSpec with ShouldMatchers {
* from a method should be translated * from a method should be translated
*/ */
it should "process an mapped response type" in { it should "process an mapped response type" in {
config.processResponseDeclaration("int") should be (Some("integer")) config.processResponseDeclaration("int") should be (Some("integer"))
} }
/* /*
* returns the invoker package from the config * returns the invoker package from the config
*/ */
it should "get the invoker package" in { it should "get the invoker package" in {
config.invokerPackage should be (Some("com.wordnik.something")) config.invokerPackage should be (Some("com.wordnik.something"))
} }
/* /*
* returns the api package * returns the api package
*/ */
it should "get the api package" in { it should "get the api package" in {
config.apiPackage should be (Some("com.wordnik.api")) config.apiPackage should be (Some("com.wordnik.api"))
} }
/* /*
* returns the model package * returns the model package
*/ */
it should "get the model package" in { it should "get the model package" in {
config.modelPackage should be (Some("com.wordnik.models")) config.modelPackage should be (Some("com.wordnik.models"))
} }
/* /*
@ -104,7 +104,7 @@ class CodegenConfigTest extends FlatSpec with ShouldMatchers {
* types * types
*/ */
it should "convert to a declared type" in { it should "convert to a declared type" in {
config.toDeclaredType("int") should be ("integer") config.toDeclaredType("int") should be ("integer")
} }
/* /*
@ -112,7 +112,7 @@ class CodegenConfigTest extends FlatSpec with ShouldMatchers {
* classes * classes
*/ */
it should "honor the import mapping" in { it should "honor the import mapping" in {
config.importMapping("User") should be ("com.mypackage.User") config.importMapping("User") should be ("com.mypackage.User")
} }
/* /*
@ -120,6 +120,6 @@ class CodegenConfigTest extends FlatSpec with ShouldMatchers {
* either by quoting or manipulating them with a prefix/suffix * either by quoting or manipulating them with a prefix/suffix
*/ */
it should "quote a reserved var name" in { it should "quote a reserved var name" in {
config.toVarName("special") should be ("`special`") config.toVarName("special") should be ("`special`")
} }
} }