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);
}
}