/*
* 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.model.table.setting.views;
import static org.assertj.core.api.Assertions.assertThat;
import static org.rf.ide.core.testdata.model.table.setting.views.ModelTokenTestHelper.createToken;
import static org.rf.ide.core.testdata.model.table.setting.views.ModelTokenTestHelper.getText;
import java.util.Optional;
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.TestSetup;
public class TestSetupViewTest {
@Test
public void test_twoTestSetupDeclarations_shouldReturn_commonView() {
// prepare
final RobotFile robotFile = new RobotFile(null);
robotFile.includeSettingTableSection();
final SettingTable settingTable = robotFile.getSettingTable();
final TestSetup setupOne = new TestSetup(createToken(""));
setupOne.setKeywordName(createToken("key1"));
setupOne.addArgument(createToken("arg1"));
final TestSetup setupTwo = new TestSetup(createToken(""));
setupTwo.setKeywordName(createToken("key2"));
setupTwo.addArgument(createToken("arg2"));
settingTable.addTestSetup(setupOne);
settingTable.addTestSetup(setupTwo);
// execute
final Optional<TestSetup> suiteSetup = settingTable.testSetup();
// verify
assertThat(suiteSetup.isPresent()).isTrue();
final TestSetup common = suiteSetup.get();
assertThat(getText(common)).containsExactly("key1", "arg1", "key2", "arg2");
assertThat(settingTable.getTestSetups()).hasSize(2);
}
@Test
public void test_twoTestSetupDeclarations_addOneArgument_shouldReturn_singleElement() {
// prepare
final RobotFile robotFile = new RobotFile(null);
robotFile.includeSettingTableSection();
final SettingTable settingTable = robotFile.getSettingTable();
final TestSetup setupOne = new TestSetup(createToken(""));
setupOne.setKeywordName(createToken("key1"));
setupOne.addArgument(createToken("arg1"));
final TestSetup setupTwo = new TestSetup(createToken(""));
setupTwo.setKeywordName(createToken("key2"));
setupTwo.addArgument(createToken("arg2"));
settingTable.addTestSetup(setupOne);
settingTable.addTestSetup(setupTwo);
// execute
final Optional<TestSetup> suiteSetup = settingTable.testSetup();
assertThat(suiteSetup.isPresent()).isTrue();
final TestSetup common = suiteSetup.get();
common.addArgument(createToken("newArg"));
// verify
assertThat(getText(common)).containsExactly("key1", "arg1", "key2", "arg2", "newArg");
assertThat(settingTable.getTestSetups()).hasSize(1);
assertThat(settingTable.getTestSetups().get(0)).isSameAs(common);
}
@Test
public void test_twoTestSetupDeclarations_modificationOfOneArgument_shouldReturn_twoElementsStill() {
// prepare
final RobotFile robotFile = new RobotFile(null);
robotFile.includeSettingTableSection();
final SettingTable settingTable = robotFile.getSettingTable();
final TestSetup setupOne = new TestSetup(createToken(""));
setupOne.setKeywordName(createToken("key1"));
setupOne.addArgument(createToken("arg1"));
final TestSetup setupTwo = new TestSetup(createToken(""));
setupTwo.setKeywordName(createToken("key2"));
setupTwo.addArgument(createToken("arg2"));
settingTable.addTestSetup(setupOne);
settingTable.addTestSetup(setupTwo);
// execute
final Optional<TestSetup> suiteSetup = settingTable.testSetup();
assertThat(suiteSetup.isPresent()).isTrue();
final TestSetup common = suiteSetup.get();
common.getArguments().get(2).setText("mod");
// verify
assertThat(getText(common)).containsExactly("key1", "arg1", "key2", "mod");
assertThat(settingTable.getTestSetups()).hasSize(2);
}
}