package Ġca . n 4 dev . o ak . core . interceptor Ċ Ċ import Ġca . n 4 dev . o ak . core . context . HttpContext Ċ import Ġca . n 4 dev . o ak . core . http . Header Ċ import Ġca . n 4 dev . o ak . core . http . HttpMethod Ċ import Ġca . n 4 dev . o ak . core . http . HttpRequest Ċ import Ġca . n 4 dev . o ak . core . http . HttpResponse Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġkotlin . test . assertNotNull Ċ import Ġkotlin . test . assertNull Ċ Ċ /** Ċ Ġ* ĠCopyright Ġ 2 0 2 1 ĠRem i ĠGu ille met te Ċ Ġ* ĠSPDX - License - Identifier : ĠApache - 2 . 0 Ċ Ġ*/ Ċ internal Ġclass ĠInter ceptor Chain Test Ġ{ ĊĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġtraverse Ġall Ġintercept ors `() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġintercept ors Ġ= Ġ( 1 .. 3 ). map Ġ{ Ġcreate Interceptor ( it . toString ()) Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġhttp Context Ġ= ĠHttp Context ( HttpRequest ( HttpMethod . GET , Ġ"/ test ")) ĊĠĠĠĠĠĠĠ Ġval Ġinterceptor Chain Ġ= ĠInter ceptor Chain ( intercept ors ) ĊĊĠĠĠĠĠĠĠ Ġval ĠhttpResponse Ġ= Ġinterceptor Chain . next ( http Context ) ĊĊĠĠĠĠĠĠĠ ĠassertNull ( httpResponse ) ĊĠĠĠĠĠĠĠ ĠassertNotNull ( http Context . httpResponse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġstop Ġwhen Ġone Ġinterceptor Ġreturn Ġa Ġresponse `() Ġ{ ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġhandle Ġexception Ġduring Ġchain `() Ġ{ ĊĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġcreate Interceptor ( name : ĠString ): ĠInter ceptor Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġobject Ġ: ĠInter ceptor Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġval Ġname : ĠString ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġname ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġintercept ( http Context : ĠHttp Context , Ġchain : ĠInter ceptor Chain ): ĠHttpResponse ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġhttp Context . httpResponse Ġ?: ĠHttpResponse () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . headers . add ( Header (" X - Filter ", Ġname )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhttp Context . httpResponse Ġ= Ġresponse ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġchain . next ( http Context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }