/*
* 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.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.DefaultTags;
import org.rf.ide.core.testdata.text.read.recognizer.RobotToken;
public class DefaultTagsViewTest {
@Test
public void test_tags_retrival_twoDefaultTags() {
// prepare
final RobotFile robotFile = new RobotFile(null);
robotFile.includeSettingTableSection();
final SettingTable settingTable = robotFile.getSettingTable();
final RobotToken tagDecOne = new RobotToken();
final DefaultTags defaultOne = new DefaultTags(tagDecOne);
defaultOne.addTag("tag1");
defaultOne.addTag("tag2");
final RobotToken tagDecTwo = new RobotToken();
final DefaultTags defaultTwo = new DefaultTags(tagDecTwo);
defaultTwo.addTag("tag1a");
defaultTwo.addTag("tag2a");
settingTable.addDefaultTags(defaultOne);
settingTable.addDefaultTags(defaultTwo);
// execute
final Optional<DefaultTags> defaultTags = settingTable.defaultTags();
// verify
assertThat(defaultTags.isPresent()).isTrue();
final DefaultTags joined = defaultTags.get();
assertThat(joined.getTags()).hasSize(4);
assertThat(getText(joined.getTags())).containsExactly("tag1", "tag2", "tag1a", "tag2a");
assertThat(settingTable.getDefaultTags()).hasSize(2);
}
@Test
public void test_tags_retrival_afterTagRemove_singleDefaultTags() {
// prepare
final RobotFile robotFile = new RobotFile(null);
robotFile.includeSettingTableSection();
final SettingTable settingTable = robotFile.getSettingTable();
final RobotToken tagDecOne = new RobotToken();
final DefaultTags defaultOne = new DefaultTags(tagDecOne);
defaultOne.addTag("tag1");
defaultOne.addTag("tag2");
final RobotToken tagDecTwo = new RobotToken();
final DefaultTags defaultTwo = new DefaultTags(tagDecTwo);
defaultTwo.addTag("tag1a");
defaultTwo.addTag("tag2a");
settingTable.addDefaultTags(defaultOne);
settingTable.addDefaultTags(defaultTwo);
// execute
final Optional<DefaultTags> defaultTags = settingTable.defaultTags();
defaultTags.get().addTag("tag3");
// verify
assertThat(defaultTags.isPresent()).isTrue();
final DefaultTags joined = defaultTags.get();
assertThat(joined.getTags()).hasSize(5);
assertThat(getText(joined.getTags())).containsExactly("tag1", "tag2", "tag1a", "tag2a", "tag3");
assertThat(settingTable.getDefaultTags()).hasSize(1);
assertThat(settingTable.getDefaultTags().get(0)).isSameAs(joined);
}
@Test
public void test_tags_retrival_afterModification_twoDefaultTags() {
// prepare
final RobotFile robotFile = new RobotFile(null);
robotFile.includeSettingTableSection();
final SettingTable settingTable = robotFile.getSettingTable();
final RobotToken tagDecOne = new RobotToken();
final DefaultTags defaultOne = new DefaultTags(tagDecOne);
defaultOne.addTag("tag1");
defaultOne.addTag("tag2");
final RobotToken tagDecTwo = new RobotToken();
final DefaultTags defaultTwo = new DefaultTags(tagDecTwo);
defaultTwo.addTag("tag1a");
defaultTwo.addTag("tag2a");
settingTable.addDefaultTags(defaultOne);
settingTable.addDefaultTags(defaultTwo);
// execute
final Optional<DefaultTags> defaultTags = settingTable.defaultTags();
defaultTwo.getTags().get(0).setText("mod");
// verify
assertThat(defaultTags.isPresent()).isTrue();
final DefaultTags joined = defaultTags.get();
assertThat(joined.getTags()).hasSize(4);
assertThat(getText(joined.getTags())).containsExactly("tag1", "tag2", "mod", "tag2a");
assertThat(settingTable.getDefaultTags()).hasSize(2);
}
}