LazyOpenInterpreter extends Interpreter implements WrappedInterpreter { public boolean isOpen() { synchronized (intp) { return opened; } } LazyOpenInterpreter(Interpreter intp); @Override Interpreter getInnerInterpreter(); @Override void setProperty(Properties property); @Override Properties getProperty(); @Override String getProperty(String key); @Override void open(); @Override void close(); boolean isOpen(); @Override InterpreterResult interpret(String st, InterpreterContext context); @Override void cancel(InterpreterContext context); @Override FormType getFormType(); @Override int getProgress(InterpreterContext context); @Override Scheduler getScheduler(); @Override List<InterpreterCompletion> completion(String buf, int cursor); @Override String getClassName(); @Override InterpreterGroup getInterpreterGroup(); @Override void setInterpreterGroup(InterpreterGroup interpreterGroup); @Override URL [] getClassloaderUrls(); @Override void setClassloaderUrls(URL [] urls);  }
@Test public void isOpenTest() { InterpreterResult interpreterResult = new InterpreterResult(InterpreterResult.Code.SUCCESS, ""); when(interpreter.interpret(any(String.class), any(InterpreterContext.class))).thenReturn(interpreterResult); LazyOpenInterpreter lazyOpenInterpreter = new LazyOpenInterpreter(interpreter); assertFalse("Interpreter is not open", lazyOpenInterpreter.isOpen()); InterpreterContext interpreterContext = new InterpreterContext("note", "id", "title", "text", null, null, null, null, null, null, null); lazyOpenInterpreter.interpret("intp 1", interpreterContext); assertTrue("Interpeter is open", lazyOpenInterpreter.isOpen()); }