// ĠCopyright Ġ 2 0 1 9 ĠAmazon . com , ĠInc . Ġor Ġits Ġaffiliates . ĠAll ĠRights ĠReserved . Ċ // ĠSPDX - License - Identifier : ĠApache - 2 . 0 Ċ Ċ package Ġsoftware . aws . tool k its . jetbrains . services . ecs Ċ Ċ import Ġcom . intellij . openapi . application . Path Manager Ċ import Ġcom . intellij . openapi . vfs . impl . http . Http Virtual File Ċ import Ġcom . intellij . openapi . vfs . new vfs . impl . V fs Root Access Ċ import Ġcom . intellij . test Framework . Disposable Rule Ċ import Ġcom . intellij . test Framework . run In Ed t AndGet Ċ import Ġcom . intellij . test Framework . run In Ed t And Wait Ċ import Ġcom . jetbrains . json Schema . ide . Json Schema Service Ċ import Ġcom . jetbrains . json Schema . impl . ins pe ctions . Json Schema Compliance Inspection Ċ import Ġorg . junit . Rule Ċ import Ġorg . junit . Test Ċ import Ġsoftware . aws . tool k its . jetbrains . utils . rules . Java Code Insight TestFixture Rule Ċ import Ġsoftware . aws . tool k its . jetbrains . utils . rules . open File Ċ import Ġjava . util . concurrent . Count DownLatch Ċ import Ġjava . util . concurrent . TimeUnit Ċ Ċ class ĠTask Schema Provider Factory Test Ġ{ ĊĠĠĠ Ġ@ Rule ĊĠĠĠ Ġ@ Jvm Field ĊĠĠĠ Ġval Ġproject Rule Ġ= ĠJava Code Insight TestFixture Rule () ĊĊĠĠĠ Ġ@ Rule ĊĠĠĠ Ġ@ Jvm Field ĊĠĠĠ Ġval Ġdis posable Rule Ġ= ĠDis posable Rule () ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Schema Is Applied () Ġ{ ĊĠĠĠĠĠĠĠ ĠV fs Root Access . allow Root Access ( dis posable Rule . dis posable , ĠPath Manager . getSystem Path ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġfixture Ġ= Ġproject Rule . fixture ĊĊĠĠĠĠĠĠĠ Ġval Ġjson Schema Compliance Inspection Ġ= ĠJson Schema Compliance Inspection () ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfixture . enable Ins pe ctions ( json Schema Compliance Inspection ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfixture . open File ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ecs - task - def . json ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< warning Ġdescr =" Missing Ġrequired Ġproperties Ġ' container Definitions ', Ġ' family '"> {} </ warning > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġschema Service Ġ= ĠJson Schema Service . Impl . get ( project Rule . project ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠGet Ġthe Ġschema Ġand Ġforce Ġthe Ġdownload Ġsince Ġthe Ġframework Ġdisables ĠHTTP Ġbased Ġschemas ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġschemas Ġ= Ġrun In Ed t AndGet Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġschema Service . getSchema Files For File ( fixture . file . virtual File ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwait Ġ= ĠCount DownLatch ( schemas . size ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġschemas . filter Is Instance < Http Virtual File >(). forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . refresh ( false , Ġfalse ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwait . count Down () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġwait . await ( 5 , ĠTimeUnit . SECONDS ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun In Ed t And Wait Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfixture . check Highlighting () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfixture . disable Ins pe ctions ( json Schema Compliance Inspection ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ