package org.rf.ide.core.testdata.text.write.tables.variables.creation; import java.util.ArrayList; import java.util.List; import org.junit.Test; import org.rf.ide.core.testdata.model.RobotFile; import org.rf.ide.core.testdata.model.table.VariableTable; import org.rf.ide.core.testdata.model.table.variables.AVariable; import org.rf.ide.core.testdata.text.read.recognizer.RobotToken; import org.rf.ide.core.testdata.text.write.NewRobotFileTestHelper; public abstract class ACreationOfScalarVariableTest { public static final String PRETTY_NEW_DIR_LOCATION = "variables//scalar//new//"; private final String extension; public ACreationOfScalarVariableTest(final String extension) { this.extension = extension; } public String getExtension() { return extension; } @Test public void test_emptyFile_and_thanCreateScalarVariable() throws Exception { // prepare final String fileName = PRETTY_NEW_DIR_LOCATION + "EmptyScalarVariableDeclarationOnly." + getExtension(); final RobotFile modelFile = NewRobotFileTestHelper.getModelFileToModify("2.9"); // test data prepare modelFile.includeVariableTableSection(); final VariableTable variableTable = modelFile.getVariableTable(); variableTable.createScalarVariable(0, "scalar", new ArrayList<String>()); // verify NewRobotFileTestHelper.assertNewModelTheSameAsInFile(fileName, modelFile); } @Test public void test_emptyFile_and_thanCreateScalarVariable_andComment() throws Exception { // prepare final String fileName = PRETTY_NEW_DIR_LOCATION + "ScalarVariableDeclarationWithCommentOnly." + getExtension(); final RobotFile modelFile = NewRobotFileTestHelper.getModelFileToModify("2.9"); // test data prepare modelFile.includeVariableTableSection(); final VariableTable variableTable = modelFile.getVariableTable(); final AVariable aVariable = variableTable.createScalarVariable(0, "scalar", new ArrayList<String>()); final RobotToken cmTok1 = new RobotToken(); cmTok1.setText("cm1"); final RobotToken cmTok2 = new RobotToken(); cmTok2.setText("cm2"); final RobotToken cmTok3 = new RobotToken(); cmTok3.setText("cm3"); aVariable.addCommentPart(cmTok1); aVariable.addCommentPart(cmTok2); aVariable.addCommentPart(cmTok3); // verify NewRobotFileTestHelper.assertNewModelTheSameAsInFile(fileName, modelFile); } @Test public void test_emptyFile_and_thanCreateScalarVariable_andOneValue() throws Exception { // prepare final String fileName = PRETTY_NEW_DIR_LOCATION + "ScalarVariableDeclarationAndOneValueOnly." + getExtension(); final RobotFile modelFile = NewRobotFileTestHelper.getModelFileToModify("2.9"); // test data prepare modelFile.includeVariableTableSection(); final VariableTable variableTable = modelFile.getVariableTable(); final List<String> values = new ArrayList<>(); values.add("value1"); variableTable.createScalarVariable(0, "scalar", values); // verify NewRobotFileTestHelper.assertNewModelTheSameAsInFile(fileName, modelFile); } @Test public void test_emptyFile_and_thanCreateScalarVariable_andOneValue_andComment() throws Exception { // prepare final String fileName = PRETTY_NEW_DIR_LOCATION + "ScalarVariableDeclarationAndOneValueAndCommentOnly." + getExtension(); final RobotFile modelFile = NewRobotFileTestHelper.getModelFileToModify("2.9"); // test data prepare modelFile.includeVariableTableSection(); final VariableTable variableTable = modelFile.getVariableTable(); final List<String> values = new ArrayList<>(); values.add("value1"); final AVariable aVariable = variableTable.createScalarVariable(0, "scalar", values); final RobotToken cmTok1 = new RobotToken(); cmTok1.setText("cm1"); final RobotToken cmTok2 = new RobotToken(); cmTok2.setText("cm2"); final RobotToken cmTok3 = new RobotToken(); cmTok3.setText("cm3"); aVariable.addCommentPart(cmTok1); aVariable.addCommentPart(cmTok2); aVariable.addCommentPart(cmTok3); // verify NewRobotFileTestHelper.assertNewModelTheSameAsInFile(fileName, modelFile); } @Test public void test_emptyFile_and_thanCreateScalarVariable_andThreeValues() throws Exception { // prepare final String fileName = PRETTY_NEW_DIR_LOCATION + "ScalarVariableDeclarationAnd3ValueOnly." + getExtension(); final RobotFile modelFile = NewRobotFileTestHelper.getModelFileToModify("2.9"); // test data prepare modelFile.includeVariableTableSection(); final VariableTable variableTable = modelFile.getVariableTable(); final List<String> values = new ArrayList<>(); values.add("value1"); values.add("value2"); values.add("value3"); variableTable.createScalarVariable(0, "scalar", values); // verify NewRobotFileTestHelper.assertNewModelTheSameAsInFile(fileName, modelFile); } @Test public void test_emptyFile_and_thanCreateScalarVariable_andThreeValues_andComment() throws Exception { // prepare final String fileName = PRETTY_NEW_DIR_LOCATION + "ScalarVariableDeclarationAnd3ValueAndCommentOnly." + getExtension(); final RobotFile modelFile = NewRobotFileTestHelper.getModelFileToModify("2.9"); // test data prepare modelFile.includeVariableTableSection(); final VariableTable variableTable = modelFile.getVariableTable(); final List<String> values = new ArrayList<>(); values.add("value1"); values.add("value2"); values.add("value3"); final AVariable aVariable = variableTable.createScalarVariable(0, "scalar", values); final RobotToken cmTok1 = new RobotToken(); cmTok1.setText("cm1"); final RobotToken cmTok2 = new RobotToken(); cmTok2.setText("cm2"); final RobotToken cmTok3 = new RobotToken(); cmTok3.setText("cm3"); aVariable.addCommentPart(cmTok1); aVariable.addCommentPart(cmTok2); aVariable.addCommentPart(cmTok3); // verify NewRobotFileTestHelper.assertNewModelTheSameAsInFile(fileName, modelFile); } @Test public void test_emptyFile_and_thanCreateDictionaryVariable_andEmptyValue_andComment() throws Exception { // prepare final String fileName = PRETTY_NEW_DIR_LOCATION + "ScalarVariableDeclarationAndEmptyValueAndCommentOnly." + getExtension(); final RobotFile modelFile = NewRobotFileTestHelper.getModelFileToModify("2.9"); // test data prepare modelFile.includeVariableTableSection(); final VariableTable variableTable = modelFile.getVariableTable(); final List<String> values = new ArrayList<>(); values.add(""); final AVariable aVariable = variableTable.createScalarVariable(0, "scalar", values); final RobotToken cmTok1 = new RobotToken(); cmTok1.setText("cm1"); final RobotToken cmTok2 = new RobotToken(); cmTok2.setText("cm2"); final RobotToken cmTok3 = new RobotToken(); cmTok3.setText("cm3"); aVariable.addCommentPart(cmTok1); aVariable.addCommentPart(cmTok2); aVariable.addCommentPart(cmTok3); // verify NewRobotFileTestHelper.assertNewModelTheSameAsInFile(fileName, modelFile); } }