/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 8 ĠU ber ĠTechnologies , ĠInc . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġcom . uber . mot if . intellij Ċ Ċ import Ġcom . intellij . code Insight . daemon . Line Marker Info Ċ import Ġcom . intellij . code Insight . daemon . impl . Daemon Code Analyzer Impl Ċ import Ġcom . intellij . openapi . editor . Document Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġcom . intellij . psi .* Ċ import Ġcom . intellij . test Framework . Use ful TestCase Ċ import Ġcom . intellij . test Framework . builders . Empty Module Fixture Builder Ċ import Ġcom . intellij . test Framework . builders . Java Module Fixture Builder Ċ import Ġcom . intellij . test Framework . fixtures . Code Insight TestFixture Ċ import Ġcom . intellij . test Framework . fixtures . Ide a TestFixture Factory Ċ import Ġcom . intellij . test Framework . fixtures . Java TestFixture Factory Ċ import Ġmot if . intellij . Mot if Component Ċ import Ġorg . junit . Test Ċ import Ġkotlin . system . measure Nano Time Ċ import Ġkotlin . system . measure Time Millis ĊĊ Ċ class ĠPlugin Test Ġ: ĠUseful TestCase () Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġpsi Document Manager : ĠPsi Document Manager ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġfixture : ĠCode Insight TestFixture ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġproject : ĠProject ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcomponent : ĠMot if Component ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtest Psi Files : ĠArray < Psi File > Ġ= Ġfixture . configure By Files ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" src / a / Test . java ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" src / a / Test 2 . java ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" src / a / Test 3 . java ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" src / a / Test 4 . java ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" src / com / uber / mot if / Scope . java ") ĊĠĠĠĠĠĠĠ Ġval Ġtest Document : ĠDocument Ġ= Ġpsi Document Manager . getDocument ( test Psi Files [ 0 ]) !! ĊĠĠĠĠĠĠĠ Ġtest Psi Files . map Ġ{ Ġit Ġas ĠPsi Java File Ġ}. forEach Ġ{ Ġfile Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpsi Class Ġ= Ġfile . classes [ 0 ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" NAN O : Ġ$ psi Class Ġ======= =") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( measure Nano Time Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpsi Class . visible Signatures ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( measure Nano Time Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpsi Class . visible Signatures ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( measure Nano Time Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpsi Class . visible Signatures ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfixture . do Highlighting () ĊĊĠĠĠĠĠĠĠ Ġval Ġline Markers : ĠList < Line Marker Info < Psi Element >> Ġ= ĠDa emon Code Analyzer Impl . getLine Markers ( test Document , Ġproject ) ĊĠĠĠĠĠĠĠ Ġprintln ( line Markers ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . setUp () ĊĊĠĠĠĠĠĠĠ Ġval Ġproject Builder Ġ= ĠIde a TestFixture Factory . get Fixture Factory (). create Fixture Builder ( java Class . name Ġ+ Ġ"." Ġ+ Ġname ) ĊĠĠĠĠĠĠĠ Ġfixture Ġ= ĠJava TestFixture Factory . get Fixture Factory (). create Code Insight Fixture ( project Builder . fixture ) ĊĊĠĠĠĠĠĠĠ Ġval Ġmodule Fixture Builder Ġ= Ġproject Builder . add Module ( Java Module Fixture Builder :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add J dk ("/ Library / Java / Java Virtual Machines / jdk 1 . 8 . 0 _ 1 5 1 . jdk / Contents / Home ") ĊĠĠĠĠĠĠĠ Ġmodule Fixture Builder . add Source Content Root ( fixture . temp DirPath ) ĊĊĠĠĠĠĠĠĠ Ġfixture . setUp () ĊĠĠĠĠĠĠĠ Ġfixture . testData Path Ġ= Ġ" src / test / testdata " ĊĊĠĠĠĠĠĠĠ Ġproject Ġ= Ġfixture . project ĊĊĠĠĠĠĠĠĠ Ġcomponent Ġ= ĠMot if Component . get ( project ) ĊĠĠĠĠĠĠĠ Ġpsi Document Manager Ġ= ĠPsi Document Manager . getInstance ( project ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠtearDown () Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfixture . te ar Down () ĊĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . te ar Down () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }