Skip to content

Commit 7b54ad9

Browse files
committed
Adding testing of multiple header scenarios
1 parent 568663a commit 7b54ad9

File tree

1 file changed

+77
-1
lines changed

1 file changed

+77
-1
lines changed

plugin/src/test/java/com/yelp/codegen/KotlinGeneratorTest.kt

Lines changed: 77 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package com.yelp.codegen
22

33
import io.swagger.codegen.CodegenModel
44
import io.swagger.codegen.CodegenOperation
5+
import io.swagger.codegen.CodegenParameter
56
import io.swagger.codegen.CodegenProperty
67
import io.swagger.models.Info
78
import io.swagger.models.Operation
@@ -356,12 +357,87 @@ class KotlinGeneratorTest {
356357
}
357358

358359
@Test
359-
fun processTopLevelHeaders_withNoHeaders() {
360+
fun processTopLevelHeaders_withNoHeaders_hasOperationHeadersIsFalse() {
360361
val generator = KotlinGenerator()
361362
val operation = CodegenOperation()
363+
operation.vendorExtensions = mutableMapOf()
362364

363365
generator.processTopLevelHeaders(operation)
364366

365367
assertEquals(false, operation.vendorExtensions["hasOperationHeaders"])
366368
}
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+
}
367443
}

0 commit comments

Comments
 (0)