package Ġcom . g gl . openapi . linter . plugin Ċ Ċ import Ġcom . g gl . openapi . linter . plugin . model . L inter . Z ALLY Ċ import Ġcom . g gl . openapi . linter . plugin . model . Severity . MAY Ċ import Ġcom . g gl . openapi . linter . plugin . model . Severity . MUST Ċ import Ġcom . github . tom ake hur st . wire mock . junit 5 . Wire Mock Runtime Info Ċ import Ġcom . github . tom ake hur st . wire mock . junit 5 . Wire Mock Test Ċ import Ġorg . am sh ove . k lu ent .` should Ġbe Ġequal Ġto ` Ċ import Ġorg . am sh ove . k lu ent .` should Ġthrow ` Ċ import Ġorg . am sh ove . k lu ent .` with Ġmessage ` Ċ import Ġorg . apache . maven . monitor . logging . Default Log Ċ import Ġorg . apache . maven . plugin . Mojo FailureException Ċ import Ġorg . junit . jupiter . api . BeforeEach Ċ import Ġorg . junit . jupiter . api . Test Ċ Ċ @ Wire Mock Test Ċ internal Ġclass ĠOpenAPI L inter Mojo IT Ġ{ ĊĊĠĠĠ Ġprivate Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠS CHE MA Ġ= Ġ" src / test / resources / schema / sample - api . yaml " ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġlinter Ġ= ĠZ ALLY ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġmemory Log Ġ= ĠMemory Log ( 1 ) ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġlog Ġ= ĠDefault Log ( memory Log ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ BeforeEach ĊĠĠĠ Ġprivate Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ Ġmemory Log . clear () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġinternal Ġfun Ġ` It Ġshould Ġvalidate Ġschema `( wire Mock Runtime Info : ĠWire Mock Runtime Info ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠGiven ĊĠĠĠĠĠĠĠ Ġval Ġserver Ġ= Ġwire Mock Runtime Info . http BaseUrl ĊĠĠĠĠĠĠĠ Ġval Ġmo jo Ġ= ĠOpenAPI L inter Mojo () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. reset Field (" server ", Ġserver ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. reset Field (" schema ", ĠS CHE MA ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. reset Field (" linter ", Ġlinter . name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. reset Field (" display Vi olations ", Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. reset Field (" threshold s ", Ġmap Of ( MUST . name Ġto Ġ" 1 5 9 ", ĠMAY . name Ġto Ġ" 1 6 ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. also Ġ{ Ġit . log Ġ= Ġlog Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠWhen ĊĠĠĠĠĠĠĠ Ġmo jo . execute () ĊĊĠĠĠĠĠĠĠ Ġ// ĠThen ĊĠĠĠĠĠĠĠ Ġmemory Log . toString () Ġ` should Ġbe Ġequal Ġto ` Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ INFO ] ĠValidate Ġplugin Ġconfiguration ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ INFO ] ĠProcessing Ġwith Ġthresholds Ġ( MUST , Ġ 1 5 9 ), Ġ( MAY , Ġ 1 6 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ INFO ] ĠReading Ġfile Ġ`$ SCHEMA ` ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ INFO ] ĠProcess Ġschema Ġvalidation Ġwith Ġ$ linter ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ INFO ] ĠValidate Ġschema Ġon Ġserver Ġ$ server ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ INFO ] ĠComp aring Ġviolations Ġto Ġthresholds ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ WARNING ] ĠMUST : Ġ 1 1 Ġerrors Ġ[ 1 5 9 Ġmaximum ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ WARNING ] ĠMAY : Ġ 1 Ġerrors Ġ[ 1 6 Ġmaximum ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ INFO ] ĠVi olations Ġper Ġthreshold ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ WARNING ] Ġ---------------- --------------- ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ WARNING ] Ġ 1 1 Ġviolations Ġfound Ġfor Ġseverity Ġ` MUST `: ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ WARNING ] Ġ# 1 Ġhttps :// z al ando . github . io / rest ful - api - guidelines /# 2 1 9 Ġ[ 1 Ġviolations ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ WARNING ] Ġ/ info / x - audience ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ WARNING ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ WARNING ] Ġ# 2 Ġhttps :// z al ando . github . io / rest ful - api - guidelines /# 2 1 5 Ġ[ 1 Ġviolations ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ WARNING ] Ġ/ info / x - api - id ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ WARNING ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ WARNING ] Ġ# 3 Ġhttps :// z al ando . github . io / rest ful - api - guidelines /# 2 1 8 Ġ[ 3 Ġviolations ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ WARNING ] Ġ/ info / contact / url ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ WARNING ] Ġ/ info / contact / name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ WARNING ] Ġ/ info / contact / email ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ WARNING ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ WARNING ] Ġ# 4 Ġhttps :// z al ando . github . io / rest ful - api - guidelines /# 1 1 5 Ġ[ 1 Ġviolations ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ WARNING ] Ġ/ servers / 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ WARNING ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ WARNING ] Ġ# 5 Ġhttps :// z al ando . github . io / rest ful - api - guidelines /# 1 0 5 Ġ[ 1 Ġviolations ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ WARNING ] Ġ/ paths /~ 1 users / get ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ WARNING ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ WARNING ] Ġ# 6 Ġhttps :// z al ando . github . io / rest ful - api - guidelines /# 1 0 4 Ġ[ 1 Ġviolations ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ WARNING ] Ġ/ components / security Schemes ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ WARNING ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ WARNING ] Ġ# 7 Ġhttps :// z al ando . github . io / rest ful - api - guidelines /# 1 1 0 Ġ[ 1 Ġviolations ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ WARNING ] Ġ/ paths /~ 1 users / get / responses / 2 0 0 / content / application ~ 1 json / schema ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ WARNING ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ WARNING ] Ġ# 8 Ġhttps :// z al ando . github . io / rest ful - api - guidelines /# 1 0 1 Ġ[ 1 Ġviolations Ġfor Ġ 0 Ġpaths ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ WARNING ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ WARNING ] Ġ# 9 Ġhttps :// github . com / z al ando / z ally / blob / master / server / rules . md # m 0 1 1 - tag - all - operations Ġ[ 1 Ġviolations ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ WARNING ] Ġ/ paths /~ 1 users / get ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ WARNING ] Ġ---------------- --------------- ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ WARNING ] Ġ 1 Ġviolations Ġfound Ġfor Ġseverity Ġ` MAY `: ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ WARNING ] Ġ# 1 Ġhttps :// z al ando . github . io / rest ful - api - guidelines /# 1 5 1 Ġ[ 1 Ġviolations ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ WARNING ] Ġ/ paths /~ 1 users / get ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ INFO ] ĠSchema Ġvalidated ! ĊĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġinternal Ġfun Ġ` It Ġshould Ġnot Ġvalidate Ġschema Ġwhen Ġtoo Ġmany Ġviolations `( wire Mock Runtime Info : ĠWire Mock Runtime Info ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠGiven ĊĠĠĠĠĠĠĠ Ġval Ġserver Ġ= Ġwire Mock Runtime Info . http BaseUrl ĊĠĠĠĠĠĠĠ Ġval Ġmo jo Ġ= ĠOpenAPI L inter Mojo () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. reset Field (" server ", Ġserver ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. reset Field (" schema ", ĠS CHE MA ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. reset Field (" linter ", Ġlinter . name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. reset Field (" display Vi olations ", Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. reset Field (" threshold s ", Ġmap Of ( MUST . name Ġto Ġ" 2 ", ĠMAY . name Ġto Ġ" 1 ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. also Ġ{ Ġit . log Ġ= Ġlog Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠWhen ĊĠĠĠĠĠĠĠ Ġval Ġaction Ġ= Ġmo jo :: execute ĊĊĠĠĠĠĠĠĠ Ġ// ĠThen ĊĠĠĠĠĠĠĠ Ġaction Ġ` should Ġthrow ` ĠMo jo FailureException :: class Ġ` with Ġmessage ` ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSchema Ġnot Ġvalidated . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMUST : Ġ 1 1 Ġerrors Ġ[ 2 Ġmaximum ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĊĠĠĠĠĠĠĠ Ġmemory Log . toString () Ġ` should Ġbe Ġequal Ġto ` Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ INFO ] ĠValidate Ġplugin Ġconfiguration ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ INFO ] ĠProcessing Ġwith Ġthresholds Ġ( MUST , Ġ 2 ), Ġ( MAY , Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ INFO ] ĠReading Ġfile Ġ`$ SCHEMA ` ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ INFO ] ĠProcess Ġschema Ġvalidation Ġwith Ġ$ linter ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ INFO ] ĠValidate Ġschema Ġon Ġserver Ġ$ server ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ INFO ] ĠComp aring Ġviolations Ġto Ġthresholds ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ ERROR ] ĠMUST : Ġ 1 1 Ġerrors Ġ[ 2 Ġmaximum ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ WARNING ] ĠMAY : Ġ 1 Ġerrors Ġ[ 1 Ġmaximum ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ INFO ] ĠVi olations Ġper Ġthreshold ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ WARNING ] Ġ---------------- --------------- ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ WARNING ] Ġ 1 1 Ġviolations Ġfound Ġfor Ġseverity Ġ` MUST `: ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ WARNING ] Ġ# 1 Ġhttps :// z al ando . github . io / rest ful - api - guidelines /# 2 1 9 Ġ[ 1 Ġviolations ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ WARNING ] Ġ/ info / x - audience ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ WARNING ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ WARNING ] Ġ# 2 Ġhttps :// z al ando . github . io / rest ful - api - guidelines /# 2 1 5 Ġ[ 1 Ġviolations ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ WARNING ] Ġ/ info / x - api - id ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ WARNING ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ WARNING ] Ġ# 3 Ġhttps :// z al ando . github . io / rest ful - api - guidelines /# 2 1 8 Ġ[ 3 Ġviolations ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ WARNING ] Ġ/ info / contact / url ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ WARNING ] Ġ/ info / contact / name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ WARNING ] Ġ/ info / contact / email ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ WARNING ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ WARNING ] Ġ# 4 Ġhttps :// z al ando . github . io / rest ful - api - guidelines /# 1 1 5 Ġ[ 1 Ġviolations ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ WARNING ] Ġ/ servers / 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ WARNING ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ WARNING ] Ġ# 5 Ġhttps :// z al ando . github . io / rest ful - api - guidelines /# 1 0 5 Ġ[ 1 Ġviolations ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ WARNING ] Ġ/ paths /~ 1 users / get ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ WARNING ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ WARNING ] Ġ# 6 Ġhttps :// z al ando . github . io / rest ful - api - guidelines /# 1 0 4 Ġ[ 1 Ġviolations ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ WARNING ] Ġ/ components / security Schemes ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ WARNING ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ WARNING ] Ġ# 7 Ġhttps :// z al ando . github . io / rest ful - api - guidelines /# 1 1 0 Ġ[ 1 Ġviolations ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ WARNING ] Ġ/ paths /~ 1 users / get / responses / 2 0 0 / content / application ~ 1 json / schema ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ WARNING ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ WARNING ] Ġ# 8 Ġhttps :// z al ando . github . io / rest ful - api - guidelines /# 1 0 1 Ġ[ 1 Ġviolations Ġfor Ġ 0 Ġpaths ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ WARNING ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ WARNING ] Ġ# 9 Ġhttps :// github . com / z al ando / z ally / blob / master / server / rules . md # m 0 1 1 - tag - all - operations Ġ[ 1 Ġviolations ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ WARNING ] Ġ/ paths /~ 1 users / get ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ ERROR ] Ġtoo Ġmany ĠMUST Ġviolations : Ġ 1 1 Ġis Ġgreater Ġthan Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ WARNING ] Ġ---------------- --------------- ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ WARNING ] Ġ 1 Ġviolations Ġfound Ġfor Ġseverity Ġ` MAY `: ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ WARNING ] Ġ# 1 Ġhttps :// z al ando . github . io / rest ful - api - guidelines /# 1 5 1 Ġ[ 1 Ġviolations ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ WARNING ] Ġ/ paths /~ 1 users / get ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ ERROR ] Ġtoo Ġmany ĠMAY Ġviolations : Ġ 1 Ġis Ġgreater Ġthan Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ[ ERROR ] ĠSchema Ġnot Ġvalidated ĊĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠ Ġ} Ċ } Ċ