|
1 | 1 | package com.yelp.codegen |
2 | 2 |
|
3 | 3 | import io.swagger.codegen.CodegenModel |
| 4 | +import io.swagger.codegen.CodegenOperation |
| 5 | +import io.swagger.codegen.CodegenParameter |
4 | 6 | import io.swagger.codegen.CodegenProperty |
5 | 7 | import io.swagger.models.Info |
6 | 8 | import io.swagger.models.Operation |
@@ -353,4 +355,89 @@ class KotlinGeneratorTest { |
353 | 355 | assertEquals("42.0.0", swagger.info.version) |
354 | 356 | assertEquals("/v2", generator.basePath) |
355 | 357 | } |
| 358 | + |
| 359 | + @Test |
| 360 | + fun processTopLevelHeaders_withNoHeaders_hasOperationHeadersIsFalse() { |
| 361 | + val generator = KotlinGenerator() |
| 362 | + val operation = CodegenOperation() |
| 363 | + operation.vendorExtensions = mutableMapOf() |
| 364 | + |
| 365 | + generator.processTopLevelHeaders(operation) |
| 366 | + |
| 367 | + assertEquals(false, operation.vendorExtensions["hasOperationHeaders"]) |
| 368 | + } |
| 369 | + |
| 370 | + @Test |
| 371 | + fun processTopLevelHeaders_withOperationId_hasXOperationIdHeader() { |
| 372 | + val testOperationId = "aTestOperationId" |
| 373 | + val generator = KotlinGenerator() |
| 374 | + val operation = CodegenOperation() |
| 375 | + operation.vendorExtensions = mutableMapOf(X_OPERATION_ID to (testOperationId as Any)) |
| 376 | + |
| 377 | + generator.processTopLevelHeaders(operation) |
| 378 | + |
| 379 | + assertEquals(true, operation.vendorExtensions["hasOperationHeaders"]) |
| 380 | + val headerMap = operation.vendorExtensions["operationHeaders"] as List<*> |
| 381 | + assertEquals(1, headerMap.size) |
| 382 | + val firstPair = headerMap[0] as Pair<*, *> |
| 383 | + assertEquals(HEADER_X_OPERATION_ID, firstPair.first as String) |
| 384 | + assertEquals(testOperationId, firstPair.second as String) |
| 385 | + } |
| 386 | + |
| 387 | + @Test |
| 388 | + fun processTopLevelHeaders_withConsumes_hasContentTypeHeader() { |
| 389 | + val generator = KotlinGenerator() |
| 390 | + val operation = CodegenOperation() |
| 391 | + operation.vendorExtensions = mutableMapOf() |
| 392 | + operation.consumes = listOf( |
| 393 | + mapOf("mediaType" to "application/json") |
| 394 | + ) |
| 395 | + |
| 396 | + generator.processTopLevelHeaders(operation) |
| 397 | + |
| 398 | + assertEquals(true, operation.vendorExtensions["hasOperationHeaders"]) |
| 399 | + val headerMap = operation.vendorExtensions["operationHeaders"] as List<*> |
| 400 | + assertEquals(1, headerMap.size) |
| 401 | + val firstPair = headerMap[0] as Pair<*, *> |
| 402 | + assertEquals(HEADER_CONTENT_TYPE, firstPair.first as String) |
| 403 | + assertEquals("application/json", firstPair.second as String) |
| 404 | + } |
| 405 | + |
| 406 | + @Test |
| 407 | + fun processTopLevelHeaders_withFormParams_hasNoContentTypeHeader() { |
| 408 | + val generator = KotlinGenerator() |
| 409 | + val operation = CodegenOperation() |
| 410 | + operation.vendorExtensions = mutableMapOf() |
| 411 | + operation.formParams = listOf(CodegenParameter()) |
| 412 | + operation.consumes = listOf( |
| 413 | + mapOf("mediaType" to "application/json") |
| 414 | + ) |
| 415 | + |
| 416 | + generator.processTopLevelHeaders(operation) |
| 417 | + |
| 418 | + assertEquals(false, operation.vendorExtensions["hasOperationHeaders"]) |
| 419 | + } |
| 420 | + |
| 421 | + @Test |
| 422 | + fun processTopLevelHeaders_withConsumesAndOperationId_hasTwoHeaders() { |
| 423 | + val testOperationId = "aTestOperationId" |
| 424 | + val generator = KotlinGenerator() |
| 425 | + val operation = CodegenOperation() |
| 426 | + operation.vendorExtensions = mutableMapOf(X_OPERATION_ID to (testOperationId as Any)) |
| 427 | + operation.consumes = listOf( |
| 428 | + mapOf("mediaType" to "application/json") |
| 429 | + ) |
| 430 | + |
| 431 | + generator.processTopLevelHeaders(operation) |
| 432 | + |
| 433 | + assertEquals(true, operation.vendorExtensions["hasOperationHeaders"]) |
| 434 | + val headerMap = operation.vendorExtensions["operationHeaders"] as List<*> |
| 435 | + assertEquals(2, headerMap.size) |
| 436 | + val firstPair = headerMap[0] as Pair<*, *> |
| 437 | + assertEquals(HEADER_X_OPERATION_ID, firstPair.first as String) |
| 438 | + assertEquals(testOperationId, firstPair.second as String) |
| 439 | + val secondPair = headerMap[1] as Pair<*, *> |
| 440 | + assertEquals(HEADER_CONTENT_TYPE, secondPair.first as String) |
| 441 | + assertEquals("application/json", secondPair.second as String) |
| 442 | + } |
356 | 443 | } |
0 commit comments