package Ġcom . github . le om ill on . uuid generator . annot ator Ċ Ċ import Ġassert k . assertThat Ċ import Ġassert k . assertions . contains Only Ċ import Ġassert k . assertions . isEqualTo Ċ import Ġassert k . assertions . isNotEmpty Ċ import Ġcom . github . le om ill on . uuid generator . parser . text Range Ċ import Ġcom . intellij . ide . highlighter . Java FileType Ċ import Ġcom . intellij . psi . Psi Document Manager Ċ import Ġcom . intellij . psi . impl . source . tree . inject ed . changes Handler . range Ċ import Ġcom . intellij . test Framework . fixtures . Base Platform TestCase Ċ import Ġorg . intellij . lang . annotations . Language Ċ Ċ class ĠId Placeholder Annot ator Test Ġ: ĠBase Platform TestCase () Ġ{ ĊĊĠĠĠ Ġfun Ġ` test Ġshould Ġannotate Ġid Ġplaceholders Ġin Ġcode `() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ// ĠGiven ĊĠĠĠĠĠĠĠ Ġ@ Language (" Java ") ĊĠĠĠĠĠĠĠ Ġval Ġcode Ġ= Ġ""" ĊĠĠĠĠĠĠĠ Ġclass ĠSome Java Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġstatic Ġvoid Ġmain ( String [] Ġargs ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠID Ġplaceholders ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . out . println (" Here Ġis Ġsome ĠUUID Ġplaceholder Ġ: Ġ# gen . uuid # "); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . out . println (" Here Ġis Ġsome ĠU L ID Ġplaceholder Ġ: Ġ# gen . ul id # "); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . out . println (" Here Ġis Ġsome ĠC UID Ġplaceholder Ġ: Ġ# gen . c uid # "); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠL abeled Ġplaceholders ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . out . println ("# gen . uuid . label _ 1 # "); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . out . println ("# gen . ul id . label _ 1 # "); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . out . println ("# gen . c uid . label _ 1 # "); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSome Ġinvalid Ġplaceholders ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . out . println ("# gen . unknown # "); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . out . println ("# gen . uuid . invalid Ġlabel # "); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . out . println ("# gen . uuid . invalid . label # "); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠ Ġmy Fixture . configure By Text ( Java FileType . INSTANCE , Ġcode ) ĊĠĠĠĠĠĠĠ ĠPsi Document Manager . getInstance ( project ). commit All Documents () ĊĊĠĠĠĠĠĠĠ Ġ// ĠWhen ĊĠĠĠĠĠĠĠ Ġval Ġhighlighting Result Ġ= Ġmy Fixture . do Highlighting () ĊĊĠĠĠĠĠĠĠ Ġ// ĠThen ĊĠĠĠĠĠĠĠ ĠassertThat ( highlight ing Result ). isNotEmpty () ĊĊĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( 1 5 4 .. 1 6 3 ) Ġto Ġ" Random ĠUUID Ġplaceholder ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( 2 2 8 .. 2 3 7 ) Ġto Ġ" Random ĠU L ID Ġplaceholder ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( 3 0 2 .. 3 1 1 ) Ġto Ġ" Random ĠC UID Ġplaceholder ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( 3 8 5 .. 4 0 2 ) Ġto Ġ" Random ĠUUID Ġplaceholder Ġlabeled Ġ' label _ 1 '", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( 4 3 5 .. 4 5 2 ) Ġto Ġ" Random ĠU L ID Ġplaceholder Ġlabeled Ġ' label _ 1 '", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( 4 8 5 .. 5 0 2 ) Ġto Ġ" Random ĠC UID Ġplaceholder Ġlabeled Ġ' label _ 1 '" ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. forEach Ġ{ Ġ( range , Ġdescription ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( highlight ing Result . find Ġ{ Ġit . range Ġ== Ġrange . text Range () Ġ} ?. description ). isEqualTo ( description ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġplaceholders Highlight s Ġ= Ġhighlighting Result ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġit . description ?. startsWith (" Random Ġ") Ġ?: Ġfalse Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. toList () ĊĠĠĠĠĠĠĠ Ġplaceholders Highlight s ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. forEach Ġ{ Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( result . quick Fix Action Ranges . map Ġ{ Ġit . first . action . text Ġ}. toList ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. contains Only (" Replace Ġwith Ġnew Ġrandom Ġvalue ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠassertThat ( placeholders Highlight s . count ()). isEqualTo ( 6 ) ĊĠĠĠ Ġ} Ċ } Ċ