package Ġde . ma ib orn w ol ff . its . builder generator . actions Ċ Ċ import Ġcom . intellij . openapi . ui . Messages Ċ import Ġcom . intellij . openapi . ui . Test Dialog Ċ import Ġcom . intellij . openapi . ui . Test Dialog Manager Ċ import Ġcom . intellij . test Framework . He avy Platform TestCase Ċ import Ġcom . intellij . test Framework . builders . Java Module Fixture Builder Ċ import Ġcom . intellij . test Framework . fixtures . Java Code Insight TestFixture Ċ import Ġcom . intellij . test Framework . fixtures . Java TestFixture Factory Ċ import Ġorg . assertj . core . api . Assertions . assertThat Ċ import Ġorg . jetbrains . kotlin . idea . core . move Caret Ċ import Ġorg . junit . After Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Ignore Ċ import Ġorg . junit . Test Ċ import Ġjava . io . File Ċ Ċ @ Ignore (" WIP : ĠThis Ġ_ almost _ Ġworks , Ġbut Ġfor Ġsome Ġreason , Ġthe ĠK t Class Ġpassed Ġthrough ĠEvent . data Context . psi Element Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" does Ġnot Ġhave Ġa Ġreference Ġto Ġits Ġmodule Ġ( data Class . module Ġ== Ġnull ), Ġand Ġso Ġthe ĠSource Root Choice " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" skip s Ġover Ġall Ġthe Ġlogic Ġstraight Ġto Ġline Ġ 4 5 .") Ċ class ĠMultiple Source Root Test : ĠHe avy Platform TestCase () Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest _ Present s Source Root Choice Dialog _ Over writes Existing Builder In Test Source Root ByDefault () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġarrange ĊĠĠĠĠĠĠĠ Ġval Ġinput File Ġ= Ġ" main / Simple Data Class . kt " ĊĠĠĠĠĠĠĠ Ġval Ġcaret Offset On Data ClassName Ġ= Ġ 4 0 ĊĠĠĠĠĠĠĠ Ġmy Fixture . configure By File ( inputFile ) ĊĊĠĠĠĠĠĠĠ Ġvar Ġoverwrite Dialog Shown Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġvar Ġsource Root Choice Shown Ġ= Ġfalse ĊĠĠĠĠĠĠĠ ĠTest Dialog Manager . set Test Dialog Ġ{ Ġmessage Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( message ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Target Ġfile Ġ' Simple Data Class Builder . kt ' Ġalready Ġexists Ġand Ġwill Ġbe Ġoverwritten . ĠContinue ?" Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMessages . OK . also Ġ{ Ġoverwrite Dialog Shown Ġ= Ġtrue Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Choose Ġtarget Ġsource Ġroot Ġfor Ġthe Ġbuilder Ġclass :" ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMessages . OK . also Ġ{ Ġsource Root Choice Shown Ġ= Ġtrue Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalStateException (" Unexpected Ġmessage Ġbox : Ġ$ message ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġact ĊĠĠĠĠĠĠĠ Ġmy Fixture . editor . move Caret ( caret Offset On Data ClassName ) ĊĠĠĠĠĠĠĠ Ġmy Fixture . test Action ( Generate Builder Action ()) ĊĊĠĠĠĠĠĠĠ Ġ// Ġassert ĊĠĠĠĠĠĠĠ ĠassertThat ( source Root Choice Shown ). isTrue ĊĊĠĠĠĠĠĠĠ ĠassertThat ( overwrite Dialog Shown ). isTrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġmy Fixture : ĠJava Code Insight TestFixture ĊĊĠĠĠ Ġprivate Ġval ĠtestData Path : ĠString Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFile ( this :: class . java . getResource ("/ testdata / Simple Data Class . kt "). to URI ()). parent Ġ+ Ġ"/ multi root " ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġpublic Ġoverride Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġproject Builder Ġ= ĠJava TestFixture Factory . create Fixture Builder ( name ) ĊĠĠĠĠĠĠĠ Ġmy Fixture Ġ= ĠJava TestFixture Factory . get Fixture Factory (). create Code Insight Fixture ( project Builder . fixture ) ĊĠĠĠĠĠĠĠ Ġmy Fixture . testData Path Ġ= ĠtestData Path ĊĊĠĠĠĠĠĠĠ Ġval Ġproject Builder With Module Ġ= Ġproject Builder . add Module ( Java Module Fixture Builder :: class . java ) ĊĊĠĠĠĠĠĠĠ Ġval Ġmodule Fixture Ġ= Ġproject Builder With Module ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Content Root ( testData Path ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Source Root (" main ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Source Root (" test ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fixture ĊĊĠĠĠĠĠĠĠ Ġmy Fixture . setUp () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ After ĊĠĠĠ Ġfun Ġreset Test Dialog () Ġ{ ĊĠĠĠĠĠĠĠ ĠTest Dialog Manager . set Test Dialog ( Test Dialog . DEFAULT ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠtearDown () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . te ar Down () ĊĠĠĠĠĠĠĠ Ġmy Fixture . te ar Down () ĊĠĠĠ Ġ} Ċ }