private void assertOneCorrectAndOneWrongVariable_ifAllWasReadAndWillBePresented( final String filename) throws Exception { // prepare final RobotRuntimeEnvironment runtime = mock(RobotRuntimeEnvironment.class); when(runtime.getVersion()).thenReturn("2.9"); final RobotProjectHolder projectHolder = spy(RobotProjectHolder.class); when(projectHolder.getRobotRuntime()).thenReturn(runtime); final RobotParser parser = spy(RobotParser.create(projectHolder, RobotParserConfig.allImportsLazy())); //// prepare paths final File startFile = new File(this.getClass().getResource(filename).toURI()); // execute final List<RobotFileOutput> output = parser.parse(startFile); // verify assertThat(output).hasSize(1); final RobotFileOutput file = output.get(0); final RobotFile robotModel = file.getFileModel(); assertThatVariableTableIsIncluded(robotModel); final VariableTable variableTable = robotModel.getVariableTable(); final List<AVariable> variables = variableTable.getVariables(); assertThat(variables).hasSize(2); final AVariable varCorrect = variables.get(0); assertThat(varCorrect).isInstanceOf(ScalarVariable.class); assertThat(varCorrect.getDeclaration().getText()).isEqualTo("${var_ok}"); assertThat(varCorrect.getDeclaration().getRaw()).isEqualTo("${var_ok}"); assertThat(varCorrect.getType()).isEqualTo(VariableType.SCALAR); assertThat(varCorrect.getName()).isEqualTo("var_ok"); final AVariable varIncorrect = variables.get(1); assertThat(varIncorrect).isInstanceOf(UnknownVariable.class); assertThat(varIncorrect.getDeclaration().getText()).isEqualTo("${var} data"); assertThat(varIncorrect.getDeclaration().getRaw()).isEqualTo("${var} data"); assertThat(varIncorrect.getType()).isEqualTo(VariableType.INVALID); assertThat(varIncorrect.getName()).isEqualTo("${var} data"); }