/*
* 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.keywords.creation;
import org.rf.ide.core.testdata.model.RobotFile;
import org.rf.ide.core.testdata.model.table.IExecutableStepsHolder;
import org.rf.ide.core.testdata.model.table.KeywordTable;
import org.rf.ide.core.testdata.model.table.RobotExecutableRow;
import org.rf.ide.core.testdata.model.table.keywords.UserKeyword;
import org.rf.ide.core.testdata.text.read.recognizer.RobotToken;
import org.rf.ide.core.testdata.text.write.NewRobotFileTestHelper;
import org.rf.ide.core.testdata.text.write.tables.execution.creation.ACreationOfExecutionRowTest;
public abstract class ACreationOfKeywordExecutableOneStepTest extends ACreationOfExecutionRowTest {
public static final String PRETTY_NEW_DIR_LOCATION = "keywords//exec//new//oneKw//oneExec//";
private final String extension;
public ACreationOfKeywordExecutableOneStepTest(final String extension) {
this.extension = extension;
}
@SuppressWarnings({ "rawtypes", "unchecked" })
@Override
public IExecutableStepsHolder getExecutableWithName() {
final UserKeyword execUnit = createModelWithOneKeywordInside();
execUnit.getKeywordName().setText("UserKeyword");
return execUnit;
}
@SuppressWarnings({ "rawtypes", "unchecked" })
@Override
public IExecutableStepsHolder getExecutableWithoutName() {
return createModelWithOneKeywordInside();
}
private UserKeyword createModelWithOneKeywordInside() {
final RobotFile modelFile = NewRobotFileTestHelper.getModelFileToModify("2.9");
modelFile.includeKeywordTableSection();
final KeywordTable keywordTable = modelFile.getKeywordTable();
final RobotToken keywordName = new RobotToken();
final UserKeyword execUnit = new UserKeyword(keywordName);
execUnit.addKeywordExecutionRow(new RobotExecutableRow<UserKeyword>());
keywordTable.addKeyword(execUnit);
return execUnit;
}
@Override
public TestFilesCompareStore getCompareFilesStoreForExecutableWithName() {
final TestFilesCompareStore store = new TestFilesCompareStore();
store.setActionOnlyCmpFile(convert("ExecActionOnly"));
store.setActionWithCommentCmpFile(convert("ExecActionWithComment"));
store.setActionWithOneArgCmpFile(convert("ExecActionWithOneArg"));
store.setActionWithOneArgAndCommentCmpFile(convert("ExecActionWithOneArgAndComment"));
store.setActionWithThreeArgCmpFile(convert("ExecActionWithThreeArg"));
store.setActionWithThreeArgAndCommentCmpFile(convert("ExecActionWithThreeArgAndComment"));
store.setCommentOnlyCmpFile(convert("ExecCommentOnly"));
store.setEmptyLineCmpFile(convert("ExecEmptyLine"));
return store;
}
@Override
public TestFilesCompareStore getCompareFilesStoreForExecutableWithoutName() {
final TestFilesCompareStore store = new TestFilesCompareStore();
store.setActionOnlyCmpFile(convert("ExecActionOnlyWithoutKeywordName"));
store.setActionWithCommentCmpFile(convert("ExecActionWithCommentWithoutKeywordName"));
store.setActionWithOneArgCmpFile(convert("ExecActionWithOneArgWithoutKeywordName"));
store.setActionWithOneArgAndCommentCmpFile(convert("ExecActionWithOneArgAndCommentWithoutKeywordName"));
store.setActionWithThreeArgCmpFile(convert("ExecActionWithThreeArgWithoutKeywordName"));
store.setActionWithThreeArgAndCommentCmpFile(convert("ExecActionWithThreeArgAndCommentWithoutKeywordName"));
store.setCommentOnlyCmpFile(convert("ExecCommentOnlyWithoutKeywordName"));
store.setEmptyLineCmpFile(convert("ExecEmptyLineWithoutKeywordName"));
return store;
}
public String convert(final String fileName) {
return PRETTY_NEW_DIR_LOCATION + fileName + "." + getExtension();
}
public String getExtension() {
return extension;
}
}