package Ġcom . my org Ċ Ċ import Ġorg . gradle . test kit . runner . Task Outcome Ċ import Ġorg . junit . Assert . assertEquals Ċ import Ġorg . junit . Assert . assertTrue Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ import Ġjava . io . File Ċ Ċ class ĠLibrary Plugin Test Ġ: ĠPlugin Test () Ġ{ ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun Ġinit () Ġ{ ĊĠĠĠĠĠĠĠ Ġbuild File . append Text (""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplugins Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid (" com . my org . library - con ventions ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ"" ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` can Ġdeclare Ġapi Ġdependencies `() Ġ{ ĊĠĠĠĠĠĠĠ Ġreadme Containing Mandatory Sections Exists () ĊĠĠĠĠĠĠĠ Ġbuild File . append Text (""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdependencies Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapi (" org . apache . commons : commons - lang 3 : 3 . 4 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ"" ") ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġrun Task (" build ") ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( Task Outcome . SUCCESS , Ġresult . task (": build ") ?. outcome ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` pub lishes Ġlibrary Ġwith Ġversion in `() Ġ{ ĊĠĠĠĠĠĠĠ Ġreadme Containing Mandatory Sections Exists () ĊĠĠĠĠĠĠĠ Ġsettings File . write Text (""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġroot Project . name Ġ= Ġ" my - library " ĊĠĠĠĠĠĠĠ Ġ""" . trim Indent ()) ĊĠĠĠĠĠĠĠ Ġbuild File . append Text (""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġversion Ġ= Ġ" 0 . 1 . 0 " ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublishing Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrepositories Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmaven Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" test Repo " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl Ġ= Ġuri (" build / test - repo ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ"" ") ĊĊĠĠĠĠĠĠĠ Ġtest Project Dir . new Folder (" src ", Ġ" main ", Ġ" java ", Ġ" com ", Ġ" my org ") ĊĠĠĠĠĠĠĠ Ġtest Project Dir . new File (" src / main / java / com / my org / Util . java "). write Text (""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġcom . my org ; ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġclass ĠUtil Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġstatic Ġvoid Ġsome Util () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ"" ") ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġrun Task (" publish Library Publication To Test Repo Repository ") ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( Task Outcome . SUCCESS , Ġresult . task (": jar ") ?. outcome ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( Task Outcome . SUCCESS , Ġresult . task (": publish Library Publication To Test Repo Repository ") ?. outcome ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( File ( test Project Dir . getRoot (), Ġ" build / test - repo / com / my org / my - library / 0 . 1 . 0 / my - library - 0 . 1 . 0 . jar "). exists ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` fails Ġwhen Ġno ĠREADME Ġexists `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġrun Task With Failure Ġ(" check ") ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( Task Outcome . FAILED , Ġresult . task (": readme Check ") ?. outcome ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` fails Ġwhen ĠREADME Ġdoes Ġnot Ġhave ĠAPI Ġsection `() Ġ{ ĊĠĠĠĠĠĠĠ Ġtest Project Dir . new File (" README . md "). write Text (""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ## ĠChangelog ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ- Ġchange Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ- Ġchange Ġ 2 ĊĠĠĠĠĠĠĠ Ġ""" . trim Indent ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġrun Task With Failure Ġ(" check ") ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( Task Outcome . FAILED , Ġresult . task (": readme Check ") ?. outcome ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( result . output . contains (" README Ġshould Ġcontain Ġsection : Ġ^ ## ĠAPI $ ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` fails Ġwhen ĠREADME Ġdoes Ġnot Ġhave ĠChangelog Ġsection `() Ġ{ ĊĠĠĠĠĠĠĠ Ġtest Project Dir . new File (" README . md "). write Text (""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ## ĠAPI ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic ĠAPI Ġdescription ĊĠĠĠĠĠĠĠ Ġ""" . trim Indent ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġrun Task With Failure Ġ(" check ") ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( Task Outcome . FAILED , Ġresult . task (": readme Check ") ?. outcome ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( result . output . contains (" README Ġshould Ġcontain Ġsection : Ġ^ ## ĠChangelog $ ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġreadme Containing Mandatory Sections Exists () Ġ{ ĊĠĠĠĠĠĠĠ Ġtest Project Dir . new File (" README . md "). write Text (""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ## ĠAPI ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic ĠAPI Ġdescription ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ## ĠChangelog ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ- Ġchange Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ- Ġchange Ġ 2 ĊĠĠĠĠĠĠĠ Ġ""" . trim Indent ()) ĊĠĠĠ Ġ} Ċ } Ċ