package Ġio . github . po esch l . bukkit . log clean er Ċ Ċ import Ġcom . n ha ar man . mockito _ kotlin .* Ċ import Ġio . github . po esch l . bukkit . log clean er . helper . File Helper Ċ import Ġio . github . po esch l . bukkit . log clean er . managers . Settings Manager Ċ import Ġio . github . po esch l . bukkit . log clean er . threads . Log Clean er Runnable Ċ import Ġio . github . po esch l . bukkit . log clean er . utils . Instance Factory Ċ import Ġorg . assertj . core . api . Assertions Ċ import Ġorg . bukkit . configuration . file . File Configuration Ċ import Ġorg . bukkit . plugin . Plugin Description File Ċ import Ġorg . junit . Test Ċ import Ġjava . util .* Ċ import Ġjava . util . logging . Logger ĊĊ Ċ class ĠLog Clean er Plugin Test Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġon Enable () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// WHEN ĊĠĠĠĠĠĠĠ Ġval Ġmocked Config : ĠFile Configuration Ġ= Ġmock Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Ġ{ Ġget Keys ( any ()) Ġ} Ġdo Return Ġset Of (" dummy ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġplugin To Test : ĠLog Clean er Plugin Ġ= Ġmock Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Ġ{ Ġconfig Ġ} Ġdo Return Ġmocked Config ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Ġ{ Ġinfo Ġ} Ġdo Return ĠPlugin Description File ("", Ġ"", Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Ġ{ Ġon Enable () Ġ}. then Call Real Method () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġplugin To Test . plugin Logger Ġ= Ġmock () ĊĊĠĠĠĠĠĠĠ Ġ// THEN ĊĠĠĠĠĠĠĠ Ġplugin To Test . on Enable () ĊĊĠĠĠĠĠĠĠ Ġ// VERIFY ĊĠĠĠĠĠĠĠ Ġverify ( plugin To Test ). init Fields () ĊĠĠĠĠĠĠĠ Ġverify ( plugin To Test ). activate Log Clean er () ĊĠĠĠĠĠĠĠ Ġverify ( plugin To Test , Ġnever ()). save Default Config () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġtest Ġtest Ġthe Ġfirst Ġtime Ġinitialization , Ġwhen Ġno e Ġkey Ġis Ġavailable Ġfrom Ġthe ĠSettings manager ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġon Enable First Time () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// WHEN ĊĠĠĠĠĠĠĠ Ġval Ġmocked Config : ĠFile Configuration Ġ= Ġmock () ĊĊĠĠĠĠĠĠĠ Ġval Ġplugin To Test : ĠLog Clean er Plugin Ġ= Ġmock Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Ġ{ Ġconfig Ġ} Ġdo Return Ġmocked Config ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Ġ{ Ġinfo Ġ} Ġdo Return ĠPlugin Description File ("", Ġ"", Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Ġ{ Ġon Enable () Ġ}. then Call Real Method () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġplugin To Test . plugin Logger Ġ= Ġmock () ĊĊĠĠĠĠĠĠĠ Ġ// THEN ĊĠĠĠĠĠĠĠ Ġplugin To Test . on Enable () ĊĊĠĠĠĠĠĠĠ Ġ// VERIFY ĊĠĠĠĠĠĠĠ Ġverify ( plugin To Test ). init Fields () ĊĠĠĠĠĠĠĠ Ġverify ( plugin To Test ). activate Log Clean er () ĊĠĠĠĠĠĠĠ Ġverify ( plugin To Test ). save Default Config () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġactivate Log Clean er () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// WHEN ĊĠĠĠĠĠĠĠ Ġval Ġmock Log : ĠLogger Ġ= Ġmock () ĊĠĠĠĠĠĠĠ Ġval Ġmocked Runnable : ĠLog Clean er Runnable Ġ= Ġmock () ĊĠĠĠĠĠĠĠ Ġval Ġplugin To Test : ĠLog Clean er Plugin Ġ= Ġmock Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Ġ{ Ġactivate Log Clean er () Ġ}. then Call Real Method () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġplugin To Test . plugin Logger Ġ= Ġmock Log ĊĠĠĠĠĠĠĠ Ġplugin To Test . log Clean er Runnable Ġ= Ġmocked Runnable ĊĊĠĠĠĠĠĠĠ Ġ// THEN ĊĠĠĠĠĠĠĠ Ġplugin To Test . activate Log Clean er () ĊĊĠĠĠĠĠĠĠ Ġ// VERIFY ĊĠĠĠĠĠĠĠ Ġverify ( mocked Runnable ). set Now ( arg That Ġ{ Ġjava Class Ġ== ĠDate :: class . java Ġ}) ĊĠĠĠĠĠĠĠ Ġverify ( mocked Runnable ). run () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġinit Fields Of Log Clean er () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// WHEN ĊĠĠĠĠĠĠĠ Ġval Ġmocked Instances Ġ= Ġcreate Mock ed Instance Factory () ĊĠĠĠĠĠĠĠ Ġval Ġplugin To Test : ĠLog Clean er Plugin Ġ= Ġmock Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Ġ{ Ġinit Fields () Ġ}. then Call Real Method () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Ġ{ Ġcreate Instance Factory () Ġ} Ġdo Return Ġmocked Instances ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Ġ{ Ġconfig Ġ} Ġdo Return Ġmock < File Configuration >() ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// THEN ĊĠĠĠĠĠĠĠ Ġplugin To Test . init Fields () ĊĊĠĠĠĠĠĠĠ Ġ// VERIFY ĊĠĠĠĠĠĠĠ ĠAssertions . assertThat ( plugin To Test . instance Factory ). isNotNull () ĊĠĠĠĠĠĠĠ ĠAssertions . assertThat ( plugin To Test . plugin Logger ). isNotNull () ĊĠĠĠĠĠĠĠ ĠAssertions . assertThat ( plugin To Test . setting Manager ). isNotNull () ĊĠĠĠĠĠĠĠ ĠAssertions . assertThat ( plugin To Test . file Helper ). isNotNull () ĊĠĠĠĠĠĠĠ ĠAssertions . assertThat ( plugin To Test . log Clean er Runnable ). isNotNull () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Mock ed Instance Factory (): ĠInstance Factory Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġmock Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Ġ{ Ġcreate Settings Manager ( any (), Ġany ()) Ġ} Ġdo Return Ġmock < Settings Manager >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Ġ{ Ġget Logger ( any ()) Ġ} Ġdo Return Ġmock < Logger >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Ġ{ Ġcreate File Helper ( any ()) Ġ} Ġdo Return Ġmock < File Helper >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Ġ{ Ġcreate Log Clean er Runnable ( any (), Ġany (), Ġany ()) Ġ} Ġdo Return Ġmock < Log Clean er Runnable >() ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }