/*
* Copyright 2016 Nokia Solutions and Networks
* Licensed under the Apache License, Version 2.0,
* see license.txt file for details.
*/
package org.rf.ide.core.testdata.text.write.tables.variables.update;
import java.nio.file.Path;
import java.util.List;
import org.junit.Test;
import org.rf.ide.core.execution.context.RobotModelTestProvider;
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.model.table.variables.ListVariable;
import org.rf.ide.core.testdata.model.table.variables.ScalarVariable;
import org.rf.ide.core.testdata.text.read.recognizer.RobotToken;
import org.rf.ide.core.testdata.text.write.DumperTestHelper;
import org.rf.ide.core.testdata.text.write.NewRobotFileTestHelper;
/**
* @author wypych
*/
public abstract class AListVariablesUpdateTest {
public static final String PRETTY_NEW_DIR_LOCATION_NEW_UNITS = "variables//list//update//";
private final String extension;
public AListVariablesUpdateTest(final String extension) {
this.extension = extension;
}
@Test
public void test_givenTestCaseAndSettingsAndVariableTablesWithOneScalarVariableAndOneCommentAsList_whenAddCorrectNameForList_thenCheckIfTableIsCorrectlyDumped()
throws Exception {
// prepare
final String inFileName = PRETTY_NEW_DIR_LOCATION_NEW_UNITS
+ "Input_SingleListVarAndComment_updateNameToBeCorrect." + getExtension();
final String outputFileName = PRETTY_NEW_DIR_LOCATION_NEW_UNITS
+ "Output_SingleListVarAndComment_updateNameToBeCorrect." + getExtension();
final Path inputFile = DumperTestHelper.getINSTANCE().getFile(inFileName);
final RobotFile modelFile = RobotModelTestProvider.getModelFile(inputFile, RobotModelTestProvider.getParser());
// test data prepare
final VariableTable variableTable = modelFile.getVariableTable();
final List<AVariable> variables = variableTable.getVariables();
((ListVariable) variables.get(1)).setName("list");
// verify
NewRobotFileTestHelper.assertNewModelTheSameAsInFile(outputFileName, modelFile);
}
@Test
public void test_givenTestCaseAndSettingsAndVariableTablesWithOneScalarVariableAndOneCommentAsList_whenAddCorrectNameForList_andAddValueForFirstScalar_thenCheckIfTableIsCorrectlyDumped()
throws Exception {
// prepare
final String inFileName = PRETTY_NEW_DIR_LOCATION_NEW_UNITS
+ "Input_SingleListVarAndComment_updateNameToBeCorrect_andPutValueToScalar."
+ getExtension();
final String outputFileName = PRETTY_NEW_DIR_LOCATION_NEW_UNITS
+ "Output_SingleListVarAndComment_updateNameToBeCorrect_andPutValueToScalar."
+ getExtension();
final Path inputFile = DumperTestHelper.getINSTANCE().getFile(inFileName);
final RobotFile modelFile = RobotModelTestProvider.getModelFile(inputFile, RobotModelTestProvider.getParser());
// test data prepare
final VariableTable variableTable = modelFile.getVariableTable();
final List<AVariable> variables = variableTable.getVariables();
((ScalarVariable) variables.get(0)).addValue(RobotToken.create("ok"));
((ListVariable) variables.get(1)).setName("list");
// verify
NewRobotFileTestHelper.assertNewModelTheSameAsInFile(outputFileName, modelFile);
}
public String getExtension() {
return this.extension;
}
}