/* Ċ Ġ* ĠCopyright Ġ 2 0 0 2 - 2 0 1 9 Ġthe Ġoriginal Ġauthor Ġor Ġauthors . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ Ġhttps :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġio . spring . no http . gradle Ċ Ċ import Ġorg . assertj . core . api . Assertions . assertThat Ċ import Ġorg . gradle . test kit . runner . Build Result Ċ import Ġorg . gradle . test kit . runner . Gradle Runner Ċ import Ġorg . gradle . test kit . runner . Task Outcome Ċ import Ġorg . gradle . util . Gradle Version Ċ import Ġorg . junit . Rule Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . rules . Temporary Folder Ċ import Ġorg . junit . runner . RunWith Ċ import Ġorg . junit . runners . Parameterized Ċ import Ġorg . junit . runners . Parameterized . Parameter Ċ import Ġorg . junit . runners . Parameterized . Parameters Ċ import Ġjava . io . File Ċ Ċ /** Ċ Ġ* Ġ@ author ĠRob ĠWin ch Ċ Ġ*/ Ċ @ RunWith ( Parameterized :: class ) Ċ class ĠNo Http Check style Plugin ITest Ġ{ ĊĠĠĠ Ġ@ Rule ĊĠĠĠ Ġ@ Jvm Field ĊĠĠĠ Ġval Ġtemp Build Ġ= ĠTemporary Folder () ĊĊĠĠĠ Ġ@ Rule ĊĠĠĠ Ġ@ Jvm Field ĊĠĠĠ Ġval Ġtemp Build 2 Ġ= ĠTemporary Folder () ĊĊĠĠĠ Ġ@ Rule ĊĠĠĠ Ġ@ Jvm Field ĊĠĠĠ Ġval Ġshared Test Kit Dir Ġ= ĠTemporary Folder () ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Parameters ( name Ġ= Ġ"{ 0 }") ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġgradle Versions () Ġ= ĠlistOf (" 6 . 0 . 1 ", Ġ" 6 . 8 . 3 ", Ġ" 7 . 0 ", Ġ" 7 . 0 . 1 "). map ( Gradle Version :: version ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Parameter ĊĠĠĠ Ġlateinit Ġvar Ġgradle Version : ĠGradle Version ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġhttps Is Success () Ġ{ ĊĠĠĠĠĠĠĠ Ġbuild File () ĊĊĠĠĠĠĠĠĠ Ġtemp Build . new File (" has - https . txt ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. write Text (""" https :// example . com """) ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġrunner (). build () ĊĠĠĠĠĠĠĠ ĠassertThat ( check style No http Task Outcome ( result )). isEqualTo ( Task Outcome . SUCCESS ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġhttp Is Failed () Ġ{ ĊĠĠĠĠĠĠĠ Ġbuild File () ĊĊĠĠĠĠĠĠĠ Ġtemp Build . new File (" has - http . txt ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. write Text (""" http :// example . com """) ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġrunner (). build And Fail () ĊĠĠĠĠĠĠĠ ĠassertThat ( result . output ). contains (" Check style Ġfiles Ġwith Ġviolations : Ġ 1 ") ĊĠĠĠĠĠĠĠ ĠassertThat ( check style No http Task Outcome ( result )). isEqualTo ( Task Outcome . FAILED ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġup ToDate () Ġ{ ĊĠĠĠĠĠĠĠ Ġbuild File () ĊĊĠĠĠĠĠĠĠ Ġtemp Build . new File (" has - https . txt ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. write Text (""" https :// example . com """) ĊĠĠĠĠĠĠĠ Ġrunner (). build () ĊĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠ Ġval Ġup ToDate Result Ġ= Ġrunner (). build () ĊĠĠĠĠĠĠĠ ĠassertThat ( check style No http Task Outcome ( up ToDate Result )). isEqualTo ( Task Outcome . UP _ TO _ DATE ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġfrom Cache () Ġ{ ĊĠĠĠĠĠĠĠ Ġbuild File () ĊĊĠĠĠĠĠĠĠ Ġtemp Build . new File (" has - https . txt ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. write Text (""" https :// example . com """) ĊĠĠĠĠĠĠĠ Ġrunner ( test Kit Dir Ġ= Ġshared Test Kit Dir . root ). build () ĊĠĠĠĠĠĠĠ ĠFile ( temp Build . root , Ġ" build "). delete Re cursively () ĊĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠ Ġval Ġfrom Cache Result Ġ= Ġrunner ( test Kit Dir Ġ= Ġshared Test Kit Dir . root ). build () ĊĠĠĠĠĠĠĠ ĠassertThat ( check style No http Task Outcome ( from Cache Result )). isEqualTo ( Task Outcome . FROM _ CACHE ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġfrom Cache When Switch Directories () Ġ{ ĊĠĠĠĠĠĠĠ Ġbuild File () ĊĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠ Ġtemp Build . new File (" has - https . txt ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. write Text (""" https :// example . com """) ĊĠĠĠĠĠĠĠ Ġtemp Build . root . copy Re cursively ( temp Build 2 . root ) ĊĠĠĠĠĠĠĠ Ġrunner ( test Kit Dir Ġ= Ġshared Test Kit Dir . root ). build () ĊĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠ Ġval Ġfrom Cache Result Ġ= Ġrunner ( project Dir Ġ= Ġtemp Build 2 . root , Ġtest Kit Dir Ġ= Ġshared Test Kit Dir . root ). build () ĊĠĠĠĠĠĠĠ ĠassertThat ( check style No http Task Outcome ( from Cache Result )). isEqualTo ( Task Outcome . FROM _ CACHE ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġuses Default Config Directory () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġconfig Directory Ġ= Ġtemp Build . new Folder (" config ", Ġ" no http ") ĊĠĠĠĠĠĠĠ Ġtemp Build . new File (" test . txt ") ĊĠĠĠĠĠĠĠ Ġbuild File (""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheck style No http Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdo First Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln Ġ" config _ loc Ġ= Ġ" Ġ+ Ġconfig Properties [' config _ loc '] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln Ġ" config Directory Ġ= Ġ" Ġ+ Ġconfig Directory . as File . getOrElse ( null )?. canonical Path ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ""" . trim Indent ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġrunner (). build () ĊĠĠĠĠĠĠĠ ĠassertThat ( check style No http Task Outcome ( result )). isEqualTo ( Task Outcome . SUCCESS ) ĊĠĠĠĠĠĠĠ ĠassertThat ( result . output . lines ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. contains (" config _ loc Ġ= Ġnull ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. contains (" config Directory Ġ= Ġ${ config Directory . canonical Path }") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġworks If Check style Config Is Present In Default Location () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġconfig Directory Ġ= Ġtemp Build . new Folder (" config ", Ġ" check style ") ĊĠĠĠĠĠĠĠ ĠFile ( config Directory , Ġ" check style . xml "). write Text (""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ<? xml Ġversion =" 1 . 0 "?> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ<! DOCTYPE Ġmodule ĠPUBLIC ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"-// Check style // DTD ĠCheck style ĠConfiguration Ġ 1 . 3 // EN " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" https :// check style . org / dtd s / configuration _ 1 _ 3 . dtd "> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< module Ġname =" Checker "> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< module Ġname =" New line At EndOf File "> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< property Ġname =" line Separator " Ġvalue =" lf "/> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ</ module > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ</ module > ĊĠĠĠĠĠĠĠ Ġ""" . trim Indent ()) ĊĠĠĠĠĠĠĠ Ġbuild File () ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġrunner (). build () ĊĠĠĠĠĠĠĠ ĠassertThat ( check style No http Task Outcome ( result )). isEqualTo ( Task Outcome . SUCCESS ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcheck style No http Task Outcome ( build : ĠBuild Result ): ĠTask Outcome ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġbuild . task (" :" Ġ+ ĠNo Http Check style Plugin . CHECK STYLE _ NO HTTP _ TASK _ NAME )?. outcome ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġrunner ( project Dir : ĠFile Ġ= Ġtemp Build . root , Ġtest Kit Dir : ĠFile ? Ġ= Ġnull ): ĠGradle Runner Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġgradle Runner Ġ= ĠGradle Runner . create () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Project Dir ( project Dir ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Plugin Classpath () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. forward Output () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Gradle Version ( gradle Version . version ) ĊĠĠĠĠĠĠĠ Ġval Ġargs Ġ= Ġmutable ListOf ( No Http Check style Plugin . CHECK STYLE _ NO HTTP _ TASK _ NAME , Ġ"-- stack trace ") ĊĠĠĠĠĠĠĠ Ġif Ġ( test Kit Dir Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġargs . add ("-- build - cache ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgradle Runner Ġ= Ġgradle Runner . with Test Kit Dir ( test Kit Dir ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġargs . addAll ( listOf ("-- warning - mode ", Ġ" fail ")) ĊĠĠĠĠĠĠĠ Ġreturn Ġgradle Runner . with Arguments ( args ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġbuild File ( content : ĠString Ġ= Ġ"") Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbuild Ġ= Ġtemp Build . new File (" build . gradle "); ĊĠĠĠĠĠĠĠ Ġval Ġworking Dir Ġ= ĠFile ( System . getProperty (" user . dir ")) ĊĠĠĠĠĠĠĠ Ġval Ġroot Dir Ġ= Ġworking Dir . parent File ĊĠĠĠĠĠĠĠ Ġval Ġno http Dir Ġ= ĠFile ( rootDir , Ġ" no http ") ĊĠĠĠĠĠĠĠ Ġval Ġno http Check style Dir Ġ= ĠFile ( rootDir , Ġ" no http - check style ") ĊĠĠĠĠĠĠĠ Ġbuild . write Text (""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplugins Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ' io . spring . no http ' ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepositories Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmaven Central () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġdependencies Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġno http Ġfile Tree ( dir : Ġ'${ no http Dir . absolute Path }', Ġinclude : Ġ' **/ build / libs /*. jar ') ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġno http Ġfile Tree ( dir : Ġ'${ no http Check style Dir . absolute Path }', Ġinclude : Ġ' **/ build / libs /*. jar ') ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ$ content ĊĠĠĠĠĠĠĠ Ġ""" . trim Indent ()) ĊĠĠĠ Ġ} Ċ } Ċ