package Ġio . gitlab . art urb os ch . de te kt . rules . style Ċ Ċ import Ġio . gitlab . art urb os ch . de te kt . api . Config Ċ import Ġio . gitlab . art urb os ch . de te kt . api . Finding Ċ import Ġio . gitlab . art urb os ch . de te kt . rules . Case Ċ import Ġio . gitlab . art urb os ch . de te kt . test . lint Ċ import Ġorg . assertj . core . api . Assertions . assertThat Ċ import Ġorg . junit . jupiter . api . BeforeEach Ċ import Ġorg . junit . jupiter . api . Nested Ċ import Ġorg . junit . jupiter . api . Test Ċ Ċ class ĠUtility Class With Public Constructor Spec Ġ{ ĊĊĠĠĠ Ġval Ġsubject Ġ= ĠUtility Class With Public Constructor ( Config . empty ) ĊĊĠĠĠ Ġ@ Nested ĊĠĠĠ Ġinner Ġclass Ġ` Utility Class With Public Constructor Ġrule ` Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ@ Nested ĊĠĠĠĠĠĠĠ Ġinner Ġclass Ġ` se veral ĠUtility Class With Public Constructor Ġrule Ġviolations ` Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġfindings : ĠList < Finding > ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ BeforeEach ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun ĠbeforeEach Test () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfindings Ġ= Ġsubject . lint ( Case . Utility Classes Positive . path ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġ` reports Ġutility Ġclasses Ġwith Ġa Ġpublic Ġconstructor `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( find ings ). has Size ( 6 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġ` reports Ġutility Ġclasses Ġwhich Ġare Ġmarked Ġas Ġopen `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcount Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfindings . count Ġ{ Ġit . message . contains (" The Ġutility Ġclass ĠOpen Utility Class Ġshould Ġbe Ġfinal .") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( count ). isEqualTo ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Nested ĊĠĠĠĠĠĠĠ Ġinner Ġclass Ġ` se veral Ġclasses Ġwhich Ġad here Ġto Ġthe ĠUtility Class With Public Constructor Ġrule ` Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġ` does Ġnot Ġreport Ġgiven Ġclasses `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfindings Ġ= Ġsubject . lint ( Case . Utility Classes Negative . path ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( find ings ). isEmpty () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Nested ĊĠĠĠĠĠĠĠ Ġinner Ġclass Ġ` annotations Ġclass ` Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġ` should Ġnot Ġget Ġtriggered Ġfor Ġutility Ġclass `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcode Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Retention ( Annotation Retention . SOURCE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ String Def ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGender . M ALE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGender . F EM ALE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġannotation Ġclass ĠGender Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconst Ġval ĠM ALE Ġ= Ġ" male " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconst Ġval ĠF EM ALE Ġ= Ġ" female " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( subject . lint ( code )). isEmpty () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ