/*
* 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.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.SettingTable;
import org.rf.ide.core.testdata.model.table.setting.Metadata;
import org.rf.ide.core.testdata.text.write.DumperTestHelper;
import org.rf.ide.core.testdata.text.write.NewRobotFileTestHelper;
public abstract class AUpdateOfSettingsMetadataTest {
public static final String PRETTY_NEW_DIR_LOCATION = "settings//metadata//update//";
private final String extension;
public AUpdateOfSettingsMetadataTest(final String extension) {
this.extension = extension;
}
@Test
public void test_givenThreeMetadatas_whenUpdateMetadataByMovingLastElementUpper_emptyLinesInTheEnd()
throws Exception {
// prepare
final String inFileName = PRETTY_NEW_DIR_LOCATION + "Input_ThreeMetadatasAndEmptyLinesThenMoveUpLast."
+ getExtension();
final String outputFileName = PRETTY_NEW_DIR_LOCATION + "Output_ThreeMetadatasAndEmptyLinesThenMoveUpLast."
+ getExtension();
final Path inputFile = DumperTestHelper.getINSTANCE().getFile(inFileName);
final RobotFile modelFile = RobotModelTestProvider.getModelFile(inputFile, RobotModelTestProvider.getParser());
// test data prepare
final SettingTable settingTable = modelFile.getSettingTable();
// action
List<Metadata> metadatas = settingTable.getMetadatas();
settingTable.moveUpMetadata(metadatas.get(metadatas.size() - 1));
// verify
NewRobotFileTestHelper.assertNewModelTheSameAsInFile(outputFileName, modelFile);
}
@Test
public void test_UpdateMetadataDeclarationWithKeyAndValueAndCommentAfter_updateMetadata_withKeyAndValue()
throws Exception {
// prepare
final String inFileName = PRETTY_NEW_DIR_LOCATION + "Input_MetadataDeclarationWithKeyAndValueAndCommentAfter."
+ getExtension();
final String outputFileName = PRETTY_NEW_DIR_LOCATION
+ "Output_MetadataDeclarationWithKeyAndValueAndCommentAfter." + getExtension();
final Path inputFile = DumperTestHelper.getINSTANCE().getFile(inFileName);
final RobotFile modelFile = RobotModelTestProvider.getModelFile(inputFile, RobotModelTestProvider.getParser());
// test data prepare
final SettingTable settingTable = modelFile.getSettingTable();
int i = 1;
for (final Metadata meta : settingTable.getMetadatas()) {
meta.setKey("key" + i + "updated");
meta.setValues(0, "value" + i + "updated");
i++;
}
// verify
NewRobotFileTestHelper.assertNewModelTheSameAsInFile(outputFileName, modelFile);
}
@Test
public void test_threeMetdatasDeclarationOnly_updateMetadata_withKeyAndValue() throws Exception {
// prepare
final String inFileName = PRETTY_NEW_DIR_LOCATION + "Input_ThreeMetadatasDeclarationToUpdateKeyAndValue."
+ getExtension();
final String outputFileName = PRETTY_NEW_DIR_LOCATION + "Output_ThreeMetadatasDeclarationToUpdateKeyAndValue."
+ getExtension();
final Path inputFile = DumperTestHelper.getINSTANCE().getFile(inFileName);
final RobotFile modelFile = RobotModelTestProvider.getModelFile(inputFile, RobotModelTestProvider.getParser());
// test data prepare
final SettingTable settingTable = modelFile.getSettingTable();
int i = 1;
for (final Metadata meta : settingTable.getMetadatas()) {
meta.setKey("key" + i);
meta.setValues(0, "value" + i);
i++;
}
// verify
NewRobotFileTestHelper.assertNewModelTheSameAsInFile(outputFileName, modelFile);
}
@Test
public void test_metdataDeclarationOnly_updateMetadata_withKeyAndValue() throws Exception {
// prepare
final String inFileName = PRETTY_NEW_DIR_LOCATION + "Input_MetadataDeclarationToUpdateKeyAndValue."
+ getExtension();
final String outputFileName = PRETTY_NEW_DIR_LOCATION + "Output_MetadataDeclarationToUpdateKeyAndValue."
+ getExtension();
final Path inputFile = DumperTestHelper.getINSTANCE().getFile(inFileName);
final RobotFile modelFile = RobotModelTestProvider.getModelFile(inputFile, RobotModelTestProvider.getParser());
// test data prepare
final SettingTable settingTable = modelFile.getSettingTable();
final Metadata meta = settingTable.getMetadatas().get(0);
meta.setKey("key");
meta.setValues(0, "value");
// verify
NewRobotFileTestHelper.assertNewModelTheSameAsInFile(outputFileName, modelFile);
}
@Test
public void test_metdataDeclarationOnly_updateMetadata_withKeyAndValue_integrationTestWithSettingsAndVariables()
throws Exception {
// prepare
final String inFileName = PRETTY_NEW_DIR_LOCATION
+ "Input_MetadataDeclarationEmptyWithSettingsAndVariablesSection." + getExtension();
final String outputFileName = PRETTY_NEW_DIR_LOCATION
+ "Output_MetadataDeclarationEmptyWithSettingsAndVariablesSection." + getExtension();
final Path inputFile = DumperTestHelper.getINSTANCE().getFile(inFileName);
final RobotFile modelFile = RobotModelTestProvider.getModelFile(inputFile, RobotModelTestProvider.getParser());
// test data prepare
final SettingTable settingTable = modelFile.getSettingTable();
final Metadata meta = settingTable.getMetadatas().get(0);
meta.setKey("key");
meta.setValues(0, "value");
// verify
NewRobotFileTestHelper.assertNewModelTheSameAsInFile(outputFileName, modelFile);
}
public String getExtension() {
return extension;
}
}