package Ġlinking Ċ Ċ import Ġorg . jetbrains . dok ka . base . test Api . test Runner . Base Abstract Test Ċ import Ġorg . jetbrains . dok ka . links . DR I Extra Container Ċ import Ġorg . jetbrains . dok ka . links . Enum Entry DR I Extra Ċ import Ġorg . jetbrains . dok ka . model . dfs Ċ import Ġorg . jetbrains . dok ka . model . doc . Documentation Link Ċ import Ġorg . jetbrains . dok ka . pages . Content DR IL ink Ċ import Ġorg . jetbrains . dok ka . pages . Content Page Ċ import Ġorg . jetbrains . kotlin . utils . addTo Std lib . safe As Ċ import Ġorg . js oup . J soup Ċ import Ġorg . junit . jupiter . api . Assertions .* Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġjava . nio . file . Paths Ċ import Ġutils . Test Output Writer Plugin Ċ import Ġkotlin . AssertionError Ċ Ċ class ĠEnum Values Link ing Test Ġ: ĠBase Abstract Test () Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` check Ġif Ġenum Ġvalues Ġare Ġcorrectly Ġlinked `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġwriter Plugin Ġ= ĠTest Output Writer Plugin () ĊĠĠĠĠĠĠĠ Ġval ĠtestData Dir Ġ= Ġget TestData Dir (" linking "). to AbsolutePath () ĊĠĠĠĠĠĠĠ Ġtest From Data ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdok ka Configuration Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Sets Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Set Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Roots Ġ= ĠlistOf ( Paths . get ("$ testData Dir / jvm Main / kotlin "). toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġanalysis Platform Ġ= Ġ" jvm " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" jvm " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplugin Overrides Ġ= ĠlistOf ( writer Plugin ) ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdocument ables Transformation Stage Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġclass likes Ġ= Ġit . packages . single (). children ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 4 , Ġclass likes . size ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġjava Link er Ġ= Ġclass likes . single Ġ{ Ġit . name Ġ== Ġ" Java Link er " Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjava Link er . documentation . values . single (). children . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( val Ġkotlin Link Ġ= Ġthis [ 0 ]. children [ 1 ]. children [ 1 ]) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠDocumentation Link Ġ-> Ġkotlin Link . d ri . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals (" Kotlin Enum . ON _ CREATE ", Ġthis . class Names ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( null , Ġthis . callable ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertNotNull ( DR I Extra Container ( extra )[ Enum Entry DR I Extra ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠAssertionError (" Link Ġnode Ġis Ġnot ĠDocumentation Link Ġtype ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( val Ġjava Link Ġ= Ġthis [ 0 ]. children [ 2 ]. children [ 1 ]) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠDocumentation Link Ġ-> Ġjava Link . d ri . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals (" Java Enum . ON _ DE CE IT ", Ġthis . class Names ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( null , Ġthis . callable ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertNotNull ( DR I Extra Container ( extra )[ Enum Entry DR I Extra ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠAssertionError (" Link Ġnode Ġis Ġnot ĠDocumentation Link Ġtype ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġkotlin Link er Ġ= Ġclass likes . single Ġ{ Ġit . name Ġ== Ġ" Kotlin Link er " Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkotlin Link er . documentation . values . single (). children . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( val Ġkotlin Link Ġ= Ġthis [ 0 ]. children [ 0 ]. children [ 5 ]) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠDocumentation Link Ġ-> Ġkotlin Link . d ri . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals (" Kotlin Enum . ON _ CREATE ", Ġthis . class Names ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( null , Ġthis . callable ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertNotNull ( DR I Extra Container ( extra )[ Enum Entry DR I Extra ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠAssertionError (" Link Ġnode Ġis Ġnot ĠDocumentation Link Ġtype ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( val Ġjava Link Ġ= Ġthis [ 0 ]. children [ 0 ]. children [ 9 ]) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠDocumentation Link Ġ-> Ġjava Link . d ri . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals (" Java Enum . ON _ DE CE IT ", Ġthis . class Names ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( null , Ġthis . callable ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertNotNull ( DR I Extra Container ( extra )[ Enum Entry DR I Extra ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠAssertionError (" Link Ġnode Ġis Ġnot ĠDocumentation Link Ġtype ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjava Link er . documentation . values . single (). children [ 0 ]. children [ 1 ]. children [ 1 ]. safe As < Documentation Link >() ?. d ri , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkotlin Link er . documentation . values . single (). children [ 0 ]. children [ 0 ]. children [ 5 ]. safe As < Documentation Link >() ?. d ri ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjava Link er . documentation . values . single (). children [ 0 ]. children [ 2 ]. children [ 1 ]. safe As < Documentation Link >() ?. d ri , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkotlin Link er . documentation . values . single (). children [ 0 ]. children [ 0 ]. children [ 9 ]. safe As < Documentation Link >() ?. d ri ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġrendering Stage Ġ= Ġ{ Ġroot Page Node , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġclass likes Ġ= Ġroot Page Node . children . single (). children ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 4 , Ġclass likes . size ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġjava Link er Ġ= Ġclass likes . single Ġ{ Ġit . name Ġ== Ġ" Java Link er " Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( java Link er Ġas ĠContent Page ). run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertNotNull ( content . dfs Ġ{ Ġit Ġis ĠContent DR IL ink Ġ&& Ġit . address . class Names Ġ== Ġ" Kotlin Enum . ON _ CREATE " Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertNotNull ( content . dfs Ġ{ Ġit Ġis ĠContent DR IL ink Ġ&& Ġit . address . class Names Ġ== Ġ" Java Enum . ON _ DE CE IT " Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġkotlin Link er Ġ= Ġclass likes . single Ġ{ Ġit . name Ġ== Ġ" Kotlin Link er " Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( kotlin Link er Ġas ĠContent Page ). run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertNotNull ( content . dfs Ġ{ Ġit Ġis ĠContent DR IL ink Ġ&& Ġit . address . class Names Ġ== Ġ" Kotlin Enum . ON _ CREATE " Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertNotNull ( content . dfs Ġ{ Ġit Ġis ĠContent DR IL ink Ġ&& Ġit . address . class Names Ġ== Ġ" Java Enum . ON _ DE CE IT " Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠJ soup ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. parse ( writer Plugin . writer . contents . getValue (" root / linking . source /- java - linker / index . html ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. select (" a [ href =\" ../ - kotlin - enum /- o - n _- c - r - e - a - t - e / index . html \"] ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. assert Only One Element () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠJ soup ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. parse ( writer Plugin . writer . contents . getValue (" root / linking . source /- java - linker / index . html ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. select (" a [ href =\" ../ - java - enum /- o - n _- d - e - c - e - i - t / index . html \"] ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. assert Only One Element () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠJ soup ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. parse ( writer Plugin . writer . contents . getValue (" root / linking . source /- kotlin - linker / index . html ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. select (" a [ href =\" ../ - kotlin - enum /- o - n _- c - r - e - a - t - e / index . html \"] ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. assert Only One Element () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠJ soup ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. parse ( writer Plugin . writer . contents . getValue (" root / linking . source /- kotlin - linker / index . html ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. select (" a [ href =\" ../ - java - enum /- o - n _- d - e - c - e - i - t / index . html \"] ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. assert Only One Element () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġ< T > ĠList < T >. assert Only One Element () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( isEmpty () Ġ|| Ġsize Ġ> Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠAssertionError (" Single Ġelement Ġexpected Ġin Ġlist : Ġ$ this ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ