/*
* 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.TestTeardown;
public class TestTeardownViewTest {
@Test
public void test_twoTestTeardownDeclarations_shouldReturn_commonView() {
// prepare
final RobotFile robotFile = new RobotFile(null);
robotFile.includeSettingTableSection();
final SettingTable settingTable = robotFile.getSettingTable();
final TestTeardown teardownOne = new TestTeardown(createToken(""));
teardownOne.setKeywordName(createToken("key1"));
teardownOne.addArgument(createToken("arg1"));
final TestTeardown teardownTwo = new TestTeardown(createToken(""));
teardownTwo.setKeywordName(createToken("key2"));
teardownTwo.addArgument(createToken("arg2"));
settingTable.addTestTeardown(teardownOne);
settingTable.addTestTeardown(teardownTwo);
// execute
final Optional<TestTeardown> suiteSetup = settingTable.testTeardown();
// verify
assertThat(suiteSetup.isPresent()).isTrue();
final TestTeardown common = suiteSetup.get();
assertThat(getText(common)).containsExactly("key1", "arg1", "key2", "arg2");
assertThat(settingTable.getTestTeardowns()).hasSize(2);
}
@Test
public void test_twoTestTeardownDeclarations_addOneArgument_shouldReturn_singleElement() {
// prepare
final RobotFile robotFile = new RobotFile(null);
robotFile.includeSettingTableSection();
final SettingTable settingTable = robotFile.getSettingTable();
final TestTeardown teardownOne = new TestTeardown(createToken(""));
teardownOne.setKeywordName(createToken("key1"));
teardownOne.addArgument(createToken("arg1"));
final TestTeardown teardownTwo = new TestTeardown(createToken(""));
teardownTwo.setKeywordName(createToken("key2"));
teardownTwo.addArgument(createToken("arg2"));
settingTable.addTestTeardown(teardownOne);
settingTable.addTestTeardown(teardownTwo);
// execute
final Optional<TestTeardown> suiteSetup = settingTable.testTeardown();
assertThat(suiteSetup.isPresent()).isTrue();
final TestTeardown common = suiteSetup.get();
common.addArgument(createToken("newArg"));
// verify
assertThat(getText(common)).containsExactly("key1", "arg1", "key2", "arg2", "newArg");
assertThat(settingTable.getTestTeardowns()).hasSize(1);
assertThat(settingTable.getTestTeardowns().get(0)).isSameAs(common);
}
@Test
public void test_twoTestTeardownDeclarations_modificationOfOneArgument_shouldReturn_twoElementsStill() {
// prepare
final RobotFile robotFile = new RobotFile(null);
robotFile.includeSettingTableSection();
final SettingTable settingTable = robotFile.getSettingTable();
final TestTeardown teardownOne = new TestTeardown(createToken(""));
teardownOne.setKeywordName(createToken("key1"));
teardownOne.addArgument(createToken("arg1"));
final TestTeardown teardownTwo = new TestTeardown(createToken(""));
teardownTwo.setKeywordName(createToken("key2"));
teardownTwo.addArgument(createToken("arg2"));
settingTable.addTestTeardown(teardownOne);
settingTable.addTestTeardown(teardownTwo);
// execute
final Optional<TestTeardown> suiteSetup = settingTable.testTeardown();
assertThat(suiteSetup.isPresent()).isTrue();
final TestTeardown common = suiteSetup.get();
common.getArguments().get(2).setText("mod");
// verify
assertThat(getText(common)).containsExactly("key1", "arg1", "key2", "mod");
assertThat(settingTable.getTestTeardowns()).hasSize(2);
}
}