package Ġio . gitlab . art urb os ch . de te kt . core . rules Ċ Ċ import Ġio . gitlab . art urb os ch . de te kt . api . Rule Set Provider Ċ import Ġio . gitlab . art urb os ch . de te kt . core . create Null Logging Spec Ċ import Ġio . gitlab . art urb os ch . de te kt . core . tool ing . with Settings Ċ import Ġorg . assertj . core . api . Assertions . assertThat Ċ import Ġorg . assertj . core . api . Assertions . fail Ċ import Ġorg . reflection s . Reflection s Ċ import Ġorg . spe k framework . spe k 2 . Spe k Ċ import Ġorg . spe k framework . spe k 2 . style . specification . describe Ċ import Ġjava . lang . reflect . Modifier Ċ Ċ class ĠRule Set Locator Test Ġ: ĠSpe k ({ ĊĊĠĠĠ Ġfun Ġget Provider Classes (): ĠList < Class < out ĠRule Set Provider >> Ġ= ĊĠĠĠĠĠĠĠ ĠReflection s (" io . gitlab . art urb os ch . de te kt . rules ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. getSub Types Of ( Rule Set Provider :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġ! Modifier . is Abstract ( it . modifiers ) Ġ} ĊĊĠĠĠ Ġdescribe (" loc ating ĠRule Set Provider 's ") Ġ{ ĊĊĠĠĠĠĠĠĠ Ġit (" contains Ġall ĠRule Set Providers ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġproviders Ġ= Ġcreate Null Logging Spec (). with Settings Ġ{ ĠRule Set Locator ( this ). load () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprovider Classes Ġ= Ġget Provider Classes () ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( provider Classes ). isNotEmpty ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprovider Classes ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġclazz Ġ-> Ġproviders . first OrNull Ġ{ Ġit . java Class Ġ== Ġclazz Ġ} Ġ== Ġnull Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. forEach Ġ{ Ġfail ("$ it Ġrule Ġset Ġis Ġnot Ġloaded Ġby Ġthe ĠRule Set Locator ") Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġit (" does Ġnot Ġload Ġany Ġdefault Ġrule Ġset Ġprovider Ġwhen Ġopt Ġout ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġproviders Ġ= Ġcreate Null Logging Spec Ġ{ Ġextensions Ġ{ Ġdisable Default Rule Sets Ġ= Ġtrue Ġ} Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Settings Ġ{ ĠRule Set Locator ( this ). load () Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdefault Providers Ġ= Ġget Provider Classes (). toSet () ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( providers ). none Match Ġ{ Ġit . java Class Ġin Ġdefault Providers Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }) Ċ