package Ġio . br iones . gradle Ċ Ċ import Ġio . br iones . gradle . output . Output Writer Ċ import Ġio . br iones . gradle . render . Test Renderer Ċ import Ġorg . gradle . api . tasks . testing . Test Descriptor Ċ import Ġorg . gradle . api . tasks . testing . Test Listener Ċ import Ġorg . gradle . api . tasks . testing . TestResult Ċ Ċ /** Ċ Ġ* ĠEntry Ġpoint Ġinto Ġtest Ġreporting . Ċ Ġ* Ċ Ġ* ĠThis ĠListener Ġfilters Ġout Ġany Ġnull Ġevents Ġor Ġresults Ġbefore Ġdirect ing Ġthem Ċ Ġ* Ġto Ġthe Ġunderlying Ġreport ers . Ċ Ġ*/ Ċ class ĠPretty Print Listener < T Ġ: ĠOutput Writer >( ĊĠĠĠ Ġprivate Ġval Ġout : ĠT , ĊĠĠĠ Ġprivate Ġval Ġrender ers : ĠList < Test Renderer < T >> Ċ ) Ġ: ĠTest Listener Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġbefore Test ( test Descriptor : ĠTest Descriptor ?) Ġ{ Ġ/* Ġunused Ġ*/ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġafter Test ( test Descriptor : ĠTest Descriptor ?, Ġresult : ĠTest Result ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( test Descriptor Ġ== Ġnull Ġ|| Ġresult Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġrender ers . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . render TestResult ( out , Ġtest Descriptor , Ġresult ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġbefore Suite ( suite : ĠTest Descriptor ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( suite Ġ!= Ġnull Ġ&& Ġsuite . parent Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġout . println () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( suite Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrender ers . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . render Suite ( out , Ġsuite ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġafter Suite ( suite : ĠTest Descriptor ?, Ġresult : ĠTest Result ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( result Ġ== Ġnull Ġ|| Ġsuite Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġrender ers . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . render Suite Result ( out , Ġsuite , Ġresult ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ