/* Ċ Ġ* ĠCopyright Ġ 2 0 1 0 - 2 0 1 9 ĠJetBrains Ġs . r . o . Ġand ĠKotlin ĠProgramming ĠLanguage Ġcontributors . Ċ Ġ* ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense Ġthat Ġcan Ġbe Ġfound Ġin Ġthe Ġlicense / LICENSE . txt Ġfile . Ċ Ġ*/ Ċ Ċ package Ġorg . jetbrains . kotlin . idea . completion . test . handlers Ċ Ċ import Ġcom . intellij . code Insight . completion . Completion Type Ċ import Ġcom . intellij . code Insight . lookup . Lookup Ċ import Ġcom . intellij . code Insight . lookup . Lookup Element Ċ import Ġcom . intellij . code Insight . lookup . Lookup Element Presentation Ċ import Ġcom . intellij . test Framework . fixtures . Light Java Code Insight Fixture TestCase Ċ import Ġorg . jetbrains . kotlin . idea . completion . test . COMP LE TION _ TEST _ DATA _ BASE _ PATH Ċ import Ġorg . jetbrains . kotlin . idea . completion . test . Kotlin Fixture Completion Base TestCase Ċ import Ġorg . jetbrains . kotlin . platform . Target Platform Ċ import Ġorg . jetbrains . kotlin . platform . jvm . Jvm Platforms Ċ import Ġorg . jetbrains . kotlin . test . JUnit 3 With Ide a Configuration Runner Ċ import Ġorg . junit . runner . RunWith Ċ import Ġjava . io . File Ċ Ċ @ RunWith ( JUnit 3 With Ide a Configuration Runner :: class ) Ċ class ĠSmart Completion Mult if ile Handler Test Ġ: ĠKotlin Fixture Completion Base TestCase () Ġ{ ĊĠĠĠ Ġfun Ġtest Import Extension Function () Ġ{ ĊĠĠĠĠĠĠĠ Ġdo Test () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Import Extension Property () Ġ{ ĊĠĠĠĠĠĠĠ Ġdo Test () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Anonymous Object Generic Java () Ġ{ ĊĠĠĠĠĠĠĠ Ġdo Test () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Import Anonymous Object () Ġ{ ĊĠĠĠĠĠĠĠ Ġdo Test () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Nested Sam Adapter () Ġ{ ĊĠĠĠĠĠĠĠ Ġdo Test ( lookup String Ġ= Ġ" Nested ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdo Test ( lookup String : ĠString ? Ġ= Ġnull , Ġitem Text : ĠString ? Ġ= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠfileName Ġ= Ġget Test Name ( false ) ĊĊĠĠĠĠĠĠĠ Ġval Ġfile Names Ġ= ĠlistOf ("$ fileName - 1 . kt ", Ġ"$ fileName - 2 . kt ", Ġ"$ fileName . java ") ĊĊĠĠĠĠĠĠĠ Ġmy Fixture . configure By Files (* file Names . filter Ġ{ ĠFile ( testData Path Ġ+ Ġit ). exists () Ġ}. to Typed Array ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġitems Ġ= Ġcomplete ( Completion Type . SM ART , Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġif Ġ( items Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġis Matching ( lookup Element : ĠLookup Element ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( lookup String Ġ!= Ġnull Ġ&& Ġlookup Element . lookup String Ġ!= Ġlookup String ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpresentation Ġ= ĠLookup Element Presentation () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlookup Element . render Element ( presentation ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( item Text Ġ!= Ġnull Ġ&& Ġpresentation . item Text Ġ!= Ġitem Text ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmatched Items Ġ= Ġitems . filter (:: is Matching ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( matched Items . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 Ġ-> Ġfail (" No Ġmatching Ġitems Ġfound ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> ĠCompletion Handler TestBase . select Item ( my Fixture , Ġitems [ 0 ], ĠLookup . NORMAL _ SELECT _ CHAR ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġfail (" Multiple Ġmatching Ġitems Ġfound ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġmy Fixture . check Result By File ("$ fileName . kt . after ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget TestData Path () Ġ= ĠFile ( COMP LE TION _ TEST _ DATA _ BASE _ PATH , Ġ"/ handlers / mult if ile / smart / "). path Ġ+ ĠFile . separator ĊĊĠĠĠ Ġoverride Ġfun Ġdefault Completion Type (): ĠCompletion Type Ġ= ĠCompletion Type . BASIC ĊĠĠĠ Ġoverride Ġfun Ġget Platform (): ĠTarget Platform Ġ= ĠJ vm Platforms . un specified Jvm Platform ĊĠĠĠ Ġoverride Ġfun Ġget Project Descriptor () Ġ= ĠLight Java Code Insight Fixture TestCase . JAVA _ LATE ST Ċ } Ċ