@@ -2,6 +2,7 @@ package com.yelp.codegen
22
33import io.swagger.codegen.CodegenModel
44import io.swagger.codegen.CodegenOperation
5+ import io.swagger.codegen.CodegenParameter
56import io.swagger.codegen.CodegenProperty
67import io.swagger.models.Info
78import 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