/* * Copyright 2016 Nokia Solutions and Networks * Licensed under the Apache License, Version 2.0, * see license.txt file for details. */ package org.robotframework.ide.eclipse.main.plugin.assist; import static com.google.common.collect.Lists.transform; import static org.assertj.core.api.Assertions.assertThat; import static org.robotframework.ide.eclipse.main.plugin.assist.Commons.reverseComparator; import static org.robotframework.ide.eclipse.main.plugin.assist.Commons.substringMatcher; import static org.robotframework.ide.eclipse.main.plugin.assist.Commons.toLabels; import java.util.List; import org.junit.Test; import org.robotframework.ide.eclipse.main.plugin.assist.RedSettingProposals.SettingTarget; public class RedSettingProposalsTest { @Test public void isSettingTest() { assertThat(RedSettingProposals.isSetting(SettingTarget.GENERAL, "documentation")).isTrue(); assertThat(RedSettingProposals.isSetting(SettingTarget.GENERAL, "metadata")).isTrue(); assertThat(RedSettingProposals.isSetting(SettingTarget.GENERAL, "library")).isTrue(); assertThat(RedSettingProposals.isSetting(SettingTarget.GENERAL, "[documentation]")).isFalse(); assertThat(RedSettingProposals.isSetting(SettingTarget.GENERAL, "[arguments]")).isFalse(); assertThat(RedSettingProposals.isSetting(SettingTarget.GENERAL, "xyz")).isFalse(); assertThat(RedSettingProposals.isSetting(SettingTarget.KEYWORD, "[documentation]")).isTrue(); assertThat(RedSettingProposals.isSetting(SettingTarget.KEYWORD, "[arguments]")).isTrue(); assertThat(RedSettingProposals.isSetting(SettingTarget.KEYWORD, "[tags]")).isTrue(); assertThat(RedSettingProposals.isSetting(SettingTarget.KEYWORD, "documentation")).isFalse(); assertThat(RedSettingProposals.isSetting(SettingTarget.KEYWORD, "[template]")).isFalse(); assertThat(RedSettingProposals.isSetting(SettingTarget.KEYWORD, "xyz")).isFalse(); assertThat(RedSettingProposals.isSetting(SettingTarget.TEST_CASE, "[documentation]")).isTrue(); assertThat(RedSettingProposals.isSetting(SettingTarget.TEST_CASE, "[template]")).isTrue(); assertThat(RedSettingProposals.isSetting(SettingTarget.TEST_CASE, "[tags]")).isTrue(); assertThat(RedSettingProposals.isSetting(SettingTarget.TEST_CASE, "documentation")).isFalse(); assertThat(RedSettingProposals.isSetting(SettingTarget.TEST_CASE, "[arguments]")).isFalse(); assertThat(RedSettingProposals.isSetting(SettingTarget.TEST_CASE, "xyz")).isFalse(); } @Test public void settingDesciprionTest() { assertThat(RedSettingProposals.getSettingDescription(SettingTarget.GENERAL, "documentation", "")).isEmpty(); assertThat(RedSettingProposals.getSettingDescription(SettingTarget.GENERAL, "metadata", "")).isEmpty(); assertThat(RedSettingProposals.getSettingDescription(SettingTarget.GENERAL, "library", "")).isEmpty(); assertThat(RedSettingProposals.getSettingDescription(SettingTarget.KEYWORD, "[documentation]", "")) .isNotEmpty(); assertThat(RedSettingProposals.getSettingDescription(SettingTarget.KEYWORD, "[arguments]", "")).isNotEmpty(); assertThat(RedSettingProposals.getSettingDescription(SettingTarget.KEYWORD, "[tags]", "")).isNotEmpty(); assertThat(RedSettingProposals.getSettingDescription(SettingTarget.TEST_CASE, "[documentation]", "")) .isNotEmpty(); assertThat(RedSettingProposals.getSettingDescription(SettingTarget.TEST_CASE, "[template]", "")).isNotEmpty(); assertThat(RedSettingProposals.getSettingDescription(SettingTarget.TEST_CASE, "[tags]", "")).isNotEmpty(); } @Test public void allGeneralSettingsProposalsAreProvided_whenPrefixIsEmpty() { final List<? extends AssistProposal> proposals = new RedSettingProposals(SettingTarget.GENERAL) .getSettingsProposals(""); assertThat(transform(proposals, toLabels())).containsExactly("Default Tags", "Documentation", "Force Tags", "Library", "Metadata", "Resource", "Suite Setup", "Suite Teardown", "Test Setup", "Test Teardown", "Test Template", "Test Timeout", "Variables"); } @Test public void noGeneralSettingsProposalsAreProvided_whenNothingMatchesToGivenPrefix() { final List<? extends AssistProposal> proposals = new RedSettingProposals(SettingTarget.GENERAL) .getSettingsProposals("Xyz"); assertThat(proposals).isEmpty(); } @Test public void generalSettingsProposalsAreProvidedInOrderInducedByGivenComparator() { final List<? extends AssistProposal> proposals = new RedSettingProposals(SettingTarget.GENERAL) .getSettingsProposals("T", reverseComparator(AssistProposals.sortedByLabels())); assertThat(transform(proposals, toLabels())).containsExactly("Test Timeout", "Test Template", "Test Teardown", "Test Setup"); } @Test public void onlyGeneralSettingsProposalsMatchingGivenMatcherAreProvided_whenMatcherIsGiven() { final List<? extends AssistProposal> proposals = new RedSettingProposals(SettingTarget.GENERAL, substringMatcher()).getSettingsProposals("es"); assertThat(transform(proposals, toLabels())).containsExactly("Resource", "Test Setup", "Test Teardown", "Test Template", "Test Timeout", "Variables"); } @Test public void allKeywordSettingsProposalsAreProvided_whenPrefixIsEmpty() { final List<? extends AssistProposal> proposals = new RedSettingProposals(SettingTarget.KEYWORD) .getSettingsProposals(""); assertThat(transform(proposals, toLabels())).containsExactly("[Arguments]", "[Documentation]", "[Return]", "[Tags]", "[Teardown]", "[Timeout]"); } @Test public void noKeywordSettingsProposalsAreProvided_whenNothingMatchesToGivenPrefix() { final List<? extends AssistProposal> proposals = new RedSettingProposals(SettingTarget.KEYWORD) .getSettingsProposals("docu"); assertThat(proposals).isEmpty(); } @Test public void keywordSettingsProposalsAreProvidedInOrderInducedByGivenComparator() { final List<? extends AssistProposal> proposals = new RedSettingProposals(SettingTarget.KEYWORD) .getSettingsProposals("[T", reverseComparator(AssistProposals.sortedByLabels())); assertThat(transform(proposals, toLabels())).containsExactly("[Timeout]", "[Teardown]", "[Tags]"); } @Test public void onlyKeywordSettingsProposalsMatchingGivenMatcherAreProvided_whenMatcherIsGiven() { final List<? extends AssistProposal> proposals = new RedSettingProposals(SettingTarget.KEYWORD, substringMatcher()).getSettingsProposals("me"); assertThat(transform(proposals, toLabels())).containsExactly("[Arguments]", "[Documentation]", "[Timeout]"); } @Test public void allTestCaseSettingsProposalsAreProvided_whenPrefixIsEmpty() { final List<? extends AssistProposal> proposals = new RedSettingProposals(SettingTarget.TEST_CASE) .getSettingsProposals(""); assertThat(transform(proposals, toLabels())).containsExactly("[Documentation]", "[Setup]", "[Tags]", "[Teardown]", "[Template]", "[Timeout]"); } @Test public void noTestCaseSettingsProposalsAreProvided_whenNothingMatchesToGivenPrefix() { final List<? extends AssistProposal> proposals = new RedSettingProposals(SettingTarget.TEST_CASE) .getSettingsProposals("docu"); assertThat(proposals).isEmpty(); } @Test public void testCaseSettingsProposalsAreProvidedInOrderInducedByGivenComparator() { final List<? extends AssistProposal> proposals = new RedSettingProposals(SettingTarget.TEST_CASE) .getSettingsProposals("[T", reverseComparator(AssistProposals.sortedByLabels())); assertThat(transform(proposals, toLabels())).containsExactly("[Timeout]", "[Template]", "[Teardown]", "[Tags]"); } @Test public void onlyTestCaseSettingsProposalsMatchingGivenMatcherAreProvided_whenMatcherIsGiven() { final List<? extends AssistProposal> proposals = new RedSettingProposals(SettingTarget.TEST_CASE, substringMatcher()).getSettingsProposals("me"); assertThat(transform(proposals, toLabels())).containsExactly("[Documentation]", "[Timeout]"); } }