/*
* 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.settings.creation;
import org.junit.Test;
import org.rf.ide.core.testdata.model.RobotFile;
import org.rf.ide.core.testdata.model.table.SettingTable;
import org.rf.ide.core.testdata.model.table.setting.Metadata;
import org.rf.ide.core.testdata.text.read.recognizer.RobotToken;
import org.rf.ide.core.testdata.text.write.NewRobotFileTestHelper;
public abstract class ACreationOfSettingsMetadataTest {
public static final String PRETTY_NEW_DIR_LOCATION = "settings//metadata//new//";
private final String extension;
public ACreationOfSettingsMetadataTest(final String extension) {
this.extension = extension;
}
public String getExtension() {
return extension;
}
@Test
public void test_emptyFile_and_thanCreateMetadataDeclarationOnly() throws Exception {
// prepare
final String fileName = PRETTY_NEW_DIR_LOCATION + "EmptyMetadataDeclarationOnly." + getExtension();
final RobotFile modelFile = NewRobotFileTestHelper.getModelFileToModify("2.9");
// test data prepare
modelFile.includeSettingTableSection();
final SettingTable settingTable = modelFile.getSettingTable();
settingTable.newMetadata();
// verify
NewRobotFileTestHelper.assertNewModelTheSameAsInFile(fileName, modelFile);
}
@Test
public void test_emptyFile_and_thanCreateMetadata_with_ThreeCommentTokens() throws Exception {
// prepare
final String fileName = PRETTY_NEW_DIR_LOCATION + "MetadataWithThreeCommentOnly." + getExtension();
final RobotFile modelFile = NewRobotFileTestHelper.getModelFileToModify("2.9");
// test data prepare
modelFile.includeSettingTableSection();
final SettingTable settingTable = modelFile.getSettingTable();
final Metadata meta = settingTable.newMetadata();
RobotToken cm1 = new RobotToken();
cm1.setText("cm1");
RobotToken cm2 = new RobotToken();
cm2.setText("cm2");
RobotToken cm3 = new RobotToken();
cm3.setText("cm3");
meta.addCommentPart(cm1);
meta.addCommentPart(cm2);
meta.addCommentPart(cm3);
// verify
NewRobotFileTestHelper.assertNewModelTheSameAsInFile(fileName, modelFile);
}
@Test
public void test_emptyFile_and_CreateMetadata_withKeyOnly() throws Exception {
// prepare
final String fileName = PRETTY_NEW_DIR_LOCATION + "MetadataWithKeyOnly." + getExtension();
final RobotFile modelFile = NewRobotFileTestHelper.getModelFileToModify("2.9");
// test data prepare
modelFile.includeSettingTableSection();
final SettingTable settingTable = modelFile.getSettingTable();
final Metadata meta = settingTable.newMetadata();
final RobotToken key = new RobotToken();
key.setText("key");
meta.setKey(key);
// verify
NewRobotFileTestHelper.assertNewModelTheSameAsInFile(fileName, modelFile);
}
@Test
public void test_emptyFile_and_CreateMetadata_withKey_andThreeValues() throws Exception {
// prepare
final String fileName = PRETTY_NEW_DIR_LOCATION + "MetadataWithKeyAndThreeValuesOnly." + getExtension();
final RobotFile modelFile = NewRobotFileTestHelper.getModelFileToModify("2.9");
// test data prepare
modelFile.includeSettingTableSection();
final SettingTable settingTable = modelFile.getSettingTable();
final Metadata meta = settingTable.newMetadata();
final RobotToken key = new RobotToken();
key.setText("key");
meta.setKey(key);
RobotToken val1 = new RobotToken();
val1.setText("val1");
RobotToken val2 = new RobotToken();
val2.setText("val2");
RobotToken val3 = new RobotToken();
val3.setText("val3");
meta.addValue(val1);
meta.addValue(val2);
meta.addValue(val3);
// verify
NewRobotFileTestHelper.assertNewModelTheSameAsInFile(fileName, modelFile);
}
@Test
public void test_emptyFile_and_CreateMetadata_withKey_andComments() throws Exception {
// prepare
final String fileName = PRETTY_NEW_DIR_LOCATION + "MetadataWithKeyAndCommentsOnly." + getExtension();
final RobotFile modelFile = NewRobotFileTestHelper.getModelFileToModify("2.9");
// test data prepare
modelFile.includeSettingTableSection();
final SettingTable settingTable = modelFile.getSettingTable();
final Metadata meta = settingTable.newMetadata();
final RobotToken key = new RobotToken();
key.setText("key");
meta.setKey(key);
RobotToken cm1 = new RobotToken();
cm1.setText("cm1");
RobotToken cm2 = new RobotToken();
cm2.setText("cm2");
RobotToken cm3 = new RobotToken();
cm3.setText("cm3");
meta.addCommentPart(cm1);
meta.addCommentPart(cm2);
meta.addCommentPart(cm3);
// verify
NewRobotFileTestHelper.assertNewModelTheSameAsInFile(fileName, modelFile);
}
@Test
public void test_emptyFile_and_CreateMetadata_withKey_andThreeValuesAndComments() throws Exception {
// prepare
final String fileName = PRETTY_NEW_DIR_LOCATION + "MetadataWithKeyAndThreeValuesCommentOnly." + getExtension();
final RobotFile modelFile = NewRobotFileTestHelper.getModelFileToModify("2.9");
// test data prepare
modelFile.includeSettingTableSection();
final SettingTable settingTable = modelFile.getSettingTable();
final Metadata meta = settingTable.newMetadata();
final RobotToken key = new RobotToken();
key.setText("key");
meta.setKey(key);
RobotToken val1 = new RobotToken();
val1.setText("val1");
RobotToken val2 = new RobotToken();
val2.setText("val2");
RobotToken val3 = new RobotToken();
val3.setText("val3");
meta.addValue(val1);
meta.addValue(val2);
meta.addValue(val3);
RobotToken cm1 = new RobotToken();
cm1.setText("cm1");
RobotToken cm2 = new RobotToken();
cm2.setText("cm2");
RobotToken cm3 = new RobotToken();
cm3.setText("cm3");
meta.addCommentPart(cm1);
meta.addCommentPart(cm2);
meta.addCommentPart(cm3);
// verify
NewRobotFileTestHelper.assertNewModelTheSameAsInFile(fileName, modelFile);
}
}