/* Ċ Ġ* ĠCopyright Ġ 2 0 0 0 - 2 0 1 8 ĠJetBrains Ġs . r . o . ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense Ġthat Ġcan Ġbe Ġfound Ġin Ġthe ĠLICENSE Ġfile . Ċ Ġ*/ Ċ package Ġorg . jetbrains . u ast . test . common Ċ Ċ import Ġcom . intellij . psi . Psi Code Block Ċ import Ġcom . intellij . psi . Psi Element Ċ import Ġcom . intellij . psi . Psi Element Visitor Ċ import Ġcom . intellij . psi . Psi File Ċ import Ġorg . jetbrains . u ast . U File Ċ import Ġorg . jetbrains . u ast . U Identifier Ċ import Ġorg . jetbrains . u ast . source Psi Element Ċ import Ġorg . jetbrains . u ast . test . env . assertEquals ToFile Ċ import Ġorg . jetbrains . u ast . to U Element OfType Ċ import Ġjava . io . File Ċ Ċ interface ĠIdent ifiers TestBase Ġ{ ĊĠ Ġfun Ġget Identifiers File ( test Name : ĠString ): ĠFile ĊĊĠ Ġprivate Ġfun ĠU File . as Identifiers (): ĠString Ġ{ ĊĠĠĠ Ġval Ġbuilder Ġ= ĠStringBuilder () ĊĠĠĠ Ġvar Ġlevel Ġ= Ġ 0 ĊĠĠĠ Ġ( this . source Psi Ġas ĠPsi File ). accept ( object Ġ: ĠPsi Element Visitor () Ġ{ ĊĠĠĠĠĠ Ġoverride Ġfun Ġvisit Element ( element : ĠPsi Element ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġu Identifier Ġ= Ġelement . to U Element OfType < U Identifier >() ĊĠĠĠĠĠĠĠ Ġif Ġ( u Identifier Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġbuilder . append (" ĠĠĠ Ġ". repeat ( level )) ĊĠĠĠĠĠĠĠĠĠ Ġbuilder . append ( u Identifier . source Psi Element !!. text ) ĊĠĠĠĠĠĠĠĠĠ Ġbuilder . append (" Ġ-> Ġ") ĊĠĠĠĠĠĠĠĠĠ Ġbuilder . append ( u Identifier . u ast Parent ?. as Log String ()) ĊĠĠĠĠĠĠĠĠĠ Ġbuilder . append ln () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( element Ġis ĠPsi Code Block ) Ġlevel ++ ĊĠĠĠĠĠĠĠ Ġelement . accept Children ( this ) ĊĠĠĠĠĠĠĠ Ġif Ġ( element Ġis ĠPsi Code Block ) Ġlevel -- ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}) ĊĠĠĠ Ġreturn Ġbuilder . toString () ĊĠ Ġ} ĊĊĠ Ġfun Ġcheck ( test Name : ĠString , Ġfile : ĠU File ) Ġ{ ĊĠĠĠ Ġval Ġvalues File Ġ= Ġget Identifiers File ( test Name ) ĊĊĠĠĠ ĠassertEquals ToFile (" Identifiers ", Ġvalues File , Ġfile . as Identifiers ()) ĊĠ Ġ} Ċ Ċ } Ċ