package Ġcom . mat tm ik . rap ira . interpreter Ċ Ċ import Ġio . kot est . core . spec . style . Word Spec Ċ import Ġio . kot est . matchers . shouldBe Ċ import Ġio . mock k . mock k Ċ import Ġio . mock k . verify Ċ import Ġorg . antlr . v 4 . runtime . CharStream Ċ import Ġorg . antlr . v 4 . runtime . misc . Interval Ċ import Ġjava . io . ByteArray InputStream Ċ Ċ private Ġconst Ġval ĠTEST _ STRING Ġ= Ġ" Hello , Ġworld !" Ċ Ċ class ĠInputStream Interpreter Test Ġ: ĠWord Spec ({ ĊĊĠĠĠ Ġ" interpret " Ġshould Ġ{ ĊĠĠĠĠĠĠĠ Ġ" invoke Ġinterpret Ġon Ġwrapped ĠChar Stream Ġinterpreter " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmock CharStream Interpreter Ġ= Ġmock k < Interpreter < CharStream >>( relax ed Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtest InputStream Ġ= ĠByteArrayInputStream ( TEST _ STRING . encode To ByteArray ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠInputStream Interpreter ( mock CharStream Interpreter ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. interpret ( test InputStream ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmock CharStream Interpreter . interpret ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith Arg Ġ{ Ġcaptured Char Set Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcaptured Char Set . getText ( Interval ( 0 , ĠTEST _ STRING . length )) ĠshouldBe ĠTEST _ STRING ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }) Ċ