// Ġ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 Ġcom . intellij . patterns . u ast Ċ Ċ import Ġcom . intellij . patterns . Element Pattern Ċ import Ġcom . intellij . patterns . Psi Java Patterns Ċ import Ġcom . intellij . psi . Psi Element Ċ import Ġcom . intellij . psi . util . Psi Tree Util Ċ import Ġcom . intellij . test Framework . fixtures . Light Java Code Insight Fixture TestCase Ċ import Ġorg . jetbrains . u ast . U Element Ċ import Ġorg . jetbrains . u ast . to U Element Ċ import Ġorg . junit . Test Ċ Ċ class ĠU ast Patterns Test Ġ: ĠLight Java Code Insight Fixture TestCase () Ġ{ ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġtest Call Parameters () Ġ{ ĊĊĠĠĠ Ġval Ġpsi Class Ġ= Ġmy Fixture . addClass (""" ĊĠĠĠĠĠ Ġclass ĠMy Class Ġ{ ĊĊĠĠĠĠĠĠĠĠĠ ĠMy Class ( String Ġa , ĠString Ġb , ĠString Ġc ){} ĊĊĠĠĠĠĠĠĠĠĠ ĠMy Class Ġfoo (){ ĊĠĠĠĠĠĠĠĠĠĠĠĠ ĠString Ġa Ġ= Ġ" just String "; ĊĠĠĠĠĠĠĠĠĠĠĠĠ ĠString Ġb Ġ= Ġnew ĠString (" string - ctor - param "); ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġjava . lang . System . out . println (" method - param "); ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnew ĠMy Class (" 1 ctor - pr m ", Ġ" 2 ctor - param ", Ġa ); ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ""" . trim Indent ()) ĊĊĠĠĠ Ġassert Accepted ( psi Class , Ġliteral Expression (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"\" method - param \"", Ġ"\" string - ctor - param \"", Ġ"\" just String \"", Ġ"\" 1 ctor - pr m \"", Ġ"\" 2 ctor - param \" ") ĊĠĠĠ Ġassert Accepted ( psi Class , Ġliteral Expression (). in Call ( call Expression ()), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"\" string - ctor - param \"", Ġ"\" method - param \"", Ġ"\" 1 ctor - pr m \"", Ġ"\" 2 ctor - param \" ") ĊĠĠĠ Ġassert Accepted ( psi Class , Ġliteral Expression (). in Call ( ĊĠĠĠĠĠ Ġcall Expression (). constructor ( Psi Java Patterns . psi Class ())), Ġ"\" string - ctor - param \"", Ġ"\" 1 ctor - pr m \"", Ġ"\" 2 ctor - param \" ") ĊĠĠĠ Ġassert Accepted ( psi Class , Ġliteral Expression (). call Parameter ( 0 , Ġcall Expression ()), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"\" string - ctor - param \"", Ġ"\" 1 ctor - pr m \"", Ġ"\" method - param \" ") ĊĠĠĠ Ġassert Accepted ( psi Class , Ġliteral Expression (). constructor Parameter ( 0 , Ġ" My Class "), Ġ"\" 1 ctor - pr m \" ") ĊĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġassert Accepted ( psi Class : ĠPsi Element , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpattern : ĠU Literal Expression Pattern , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar arg Ġexpected : ĠString ) Ġ{ ĊĠĠĠ ĠassertSame Elements ( get Accepted Elements ( psi Class , Ġpattern ). map Ġ{ Ġit . source Psi ?. text Ġ?: Ġ" null " Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* expected ) ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġget Accepted Elements ( psi Class : ĠPsi Element , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpattern : ĠElement Pattern < out ĠU Element >): ĠList < U Element > Ġ= ĊĠĠĠ ĠPsi Tree Util . collect Elements ( psi Class , Ġ{ Ġtrue Ġ}). map NotNull Ġ{ Ġit . to U Element () Ġ}. filter Ġ{ Ġpattern . accept s ( it ) Ġ} Ċ Ċ }