package Ġcom . cluster Ċ Ċ import Ġcom . amazonaws . services . apigateway . Amazon Api Gateway Ċ import Ġcom . amazonaws . services . apigateway . model .* Ċ import Ġjunit . framework . TestCase .* Ċ import Ġorg . junit . Test Ċ import Ġorg . mockito . Mockito Ċ Ċ class ĠAws Resource Finder API Gateway Test Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġbuild Ġappropriate Ġrelationships Ġfor Ġapi Ġresources ` (){ ĊĠĠĠĠĠĠĠ Ġval Ġapi Gateway Client Ġ= ĠMockito . mock ( Amazon Api Gateway :: class . java ) ĊĊĊĠĠĠĠĠĠĠ Ġval Ġlist Rest API s Result Ġ= ĠGet Rest Apis Result (). with Items ( listOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRest Api (). with Id (" api 1 "). with Name (" my - api ") ĊĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠĠĠĠĠ ĠMockito .` when `( api Gateway Client . get Rest Apis ( Mockito . any ())). thenReturn ( list Rest API s Result ) ĊĊĠĠĠĠĠĠĠ Ġval Ġlist Resources Result Ġ= ĠGet Resources Result (). with Items ( listOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResource (). with Id (" path 1 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Path ("/ path 1 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Resource Methods ( map Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" method 1 ", ĠMethod (). with HttpMethod (" GET "). with Method Integration ( Integration (). with Type (" AWS _ PROXY "). with Uri (" arn : aws :: lambda : us - east - 1 : account : function : first lambda ")) ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" method 2 ", ĠMethod (). with HttpMethod (" POST "). with Method Integration ( Integration (). with Type (" AWS _ PROXY "). with Uri (" arn : aws :: lambda : us - east - 1 : account : function : second lambda ")) ))), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResource (). with Id (" path 2 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Path ("/ path 2 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Resource Methods ( map Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" method 3 ", ĠMethod (). with HttpMethod (" GET "). with Method Integration ( Integration (). with Type (" AWS _ PROXY "). with Uri (" arn : aws :: lambda : us - east - 1 : account : function : th ir dl ambda ")) ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" method 4 ", ĠMethod (). with HttpMethod (" POST "). with Method Integration ( Integration (). with Type (" AWS _ PROXY "). with Uri (" arn : aws :: lambda : us - east - 1 : account : function : th ir dl ambda ")) ))) ĊĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠĠĠĠĠ ĠMockito .` when `( api Gateway Client . getResources ( Mockito . any ())). thenReturn ( list Resources Result ) ĊĊĊĊĠĠĠĠĠĠĠ Ġval Ġresources Ġ= ĠAws Resource Finder API Gateway ({ Ġapi Gateway Client Ġ}). find In ("-- ", ĠlistOf (" us - east - 1 ")) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( 6 , Ġresources . size ) Ċ // ĠĠĠĠĠĠĠ Ġwith ( resources [ 0 ]){ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( this . resource ){ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals (" arn : aws : apigateway : us - east - 1 :: / rest apis / api 1 ", Ġthis . arn . arn ()) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals (" my - api ", Ġthis . info . title ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals (" AWS :: Api Gateway :: RestApi ", Ġthis . info . type ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( this . related Ar ns ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 2 , Ġthis . size ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( listOf (" arn : aws : apigateway : us - east - 1 :: / rest apis / api 1 / resources / path 1 "," arn : aws : apigateway : us - east - 1 :: / rest apis / api 1 / resources / path 2 "), Ġthis . map Ġ{ Ġit . arn () }) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġwith ( resources [ 1 ]){ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( this . resource ){ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals (" arn : aws : apigateway : us - east - 1 :: / rest apis / api 1 / resources / path 1 ", Ġthis . arn . arn ()) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ("/ path 1 ", Ġthis . info . title ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals (" AWS :: Api Gateway :: Resource ", Ġthis . info . type ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( this . related Ar ns ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 2 , Ġthis . size ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( listOf (" arn : aws : apigateway : us - east - 1 :: / rest apis / api 1 / resources / path 1 / methods / GET "," arn : aws : apigateway : us - east - 1 :: / rest apis / api 1 / resources / path 1 / methods / POST "), Ġthis . map Ġ{ Ġit . arn () }) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // Ċ // ĠĠĠĠĠĠĠ Ġwith ( resources [ 2 ]){ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( this . resource ){ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals (" arn : aws : apigateway : us - east - 1 :: / rest apis / api 1 / resources / path 2 ", Ġthis . arn . arn ()) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ("/ path 2 ", Ġthis . info . title ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals (" AWS :: Api Gateway :: Resource ", Ġthis . info . type ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( this . related Ar ns ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 2 , Ġthis . size ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( listOf (" arn : aws : apigateway : us - east - 1 :: / rest apis / api 1 / resources / path 2 / methods / GET "," arn : aws : apigateway : us - east - 1 :: / rest apis / api 1 / resources / path 2 / methods / POST "), Ġthis . map Ġ{ Ġit . arn () }) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // Ċ // ĠĠĠĠĠĠĠ Ġwith ( resources [ 3 ]){ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( this . resource ){ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals (" arn : aws : apigateway : us - east - 1 :: / rest apis / api 1 / resources / path 1 / methods / GET ", Ġthis . arn . arn ()) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals (" GET ", Ġthis . info . title ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals (" AWS :: Api Gateway :: Method ", Ġthis . info . type ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( this . related Ar ns ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġthis . size ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( listOf (" arn : aws ::: lambda : us - east - 1 : account : function : first lambda "), Ġthis . map Ġ{ Ġit . arn () }) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // Ċ // ĠĠĠĠĠĠĠ Ġwith ( resources [ 4 ]){ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( this . resource ){ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals (" arn : aws : apigateway : us - east - 1 :: / rest apis / api 1 / resources / path 1 / methods / POST ", Ġthis . arn . arn ()) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals (" POST ", Ġthis . info . title ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals (" AWS :: Api Gateway :: Method ", Ġthis . info . type ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( this . related Ar ns ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġthis . size ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( listOf (" arn : aws ::: lambda : us - east - 1 : account : function : second lambda "), Ġthis . map Ġ{ Ġit . arn () }) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // Ċ // ĠĠĠĠĠĠĠ Ġwith ( resources [ 5 ]){ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( this . resource ){ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals (" arn : aws : apigateway : us - east - 1 :: / rest apis / api 1 / resources / path 2 / methods / GET ", Ġthis . arn . arn ()) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals (" GET ", Ġthis . info . title ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals (" AWS :: Api Gateway :: Method ", Ġthis . info . type ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( this . related Ar ns ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġthis . size ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( listOf (" arn : aws ::: lambda : us - east - 1 : account : function : th ir dl ambda "), Ġthis . map Ġ{ Ġit . arn () }) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ Ċ // ĠĠĠĠĠĠĠ Ġwith ( resources [ 6 ]){ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( this . resource ){ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals (" arn : aws : apigateway : us - east - 1 :: / rest apis / api 1 / resources / path 2 / methods / POST ", Ġthis . arn . arn ()) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals (" POST ", Ġthis . info . title ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals (" AWS :: Api Gateway :: Method ", Ġthis . info . type ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( this . related Ar ns ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġthis . size ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( listOf (" arn : aws ::: lambda : us - east - 1 : account : function : th ir dl ambda "), Ġthis . map Ġ{ Ġit . arn () }) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }