/* * Copyright 2017 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.launch; import static org.assertj.core.api.Assertions.assertThat; import java.util.Arrays; import java.util.Collections; import org.eclipse.core.resources.IResource; import org.junit.ClassRule; import org.junit.Test; import org.robotframework.ide.eclipse.main.plugin.launch.RobotLaunchConfigurationNaming.RobotLaunchConfigurationType; import org.robotframework.red.junit.ProjectProvider; public class RobotLaunchConfigurationNamingTest { @ClassRule public static ProjectProvider projectProvider1 = new ProjectProvider( RobotLaunchConfigurationNamingTest.class.getSimpleName() + "1"); @ClassRule public static ProjectProvider projectProvider2 = new ProjectProvider( RobotLaunchConfigurationNamingTest.class.getSimpleName() + "2"); @Test public void newConfigurationNameIsReturned_forEmptyResources() throws Exception { final String basicName1 = RobotLaunchConfigurationNaming.getBasicName(Collections.emptyList(), RobotLaunchConfigurationType.GENERAL_PURPOSE); assertThat(basicName1).isEqualTo("New Configuration"); final String basicName2 = RobotLaunchConfigurationNaming.getBasicName(Collections.emptyList(), RobotLaunchConfigurationType.SELECTED_TEST_CASES); assertThat(basicName2).isEqualTo("New Configuration"); } @Test public void resourceConfigurationNameWithoutSuffixIsReturned_forSingleResource() throws Exception { final IResource resource = projectProvider1.createFile("single.robot"); final String basicName = RobotLaunchConfigurationNaming.getBasicName(Collections.singletonList(resource), RobotLaunchConfigurationType.GENERAL_PURPOSE); assertThat(basicName).isEqualTo("single.robot"); } @Test public void resourceConfigurationNameWithSuffixIsReturned_forSingleResource() throws Exception { final IResource resource = projectProvider1.createFile("single.robot"); final String basicName = RobotLaunchConfigurationNaming.getBasicName(Collections.singletonList(resource), RobotLaunchConfigurationType.SELECTED_TEST_CASES); assertThat(basicName).isEqualTo("single.robot (Selected Test Cases)"); } @Test public void projectConfigurationNameWithoutSuffixIsReturned_forResourcesFromOneProject() throws Exception { final IResource resource1 = projectProvider1.createFile("first.robot"); final IResource resource2 = projectProvider1.createFile("second.robot"); final String basicName = RobotLaunchConfigurationNaming.getBasicName(Arrays.asList(resource1, resource2), RobotLaunchConfigurationType.GENERAL_PURPOSE); assertThat(basicName).isEqualTo("RobotLaunchConfigurationNamingTest1"); } @Test public void projectConfigurationNameWithSuffixIsReturned_forResourcesFromOneProject() throws Exception { final IResource resource1 = projectProvider1.createFile("first.robot"); final IResource resource2 = projectProvider1.createFile("second.robot"); final String basicName = RobotLaunchConfigurationNaming.getBasicName(Arrays.asList(resource1, resource2), RobotLaunchConfigurationType.SELECTED_TEST_CASES); assertThat(basicName).isEqualTo("RobotLaunchConfigurationNamingTest1 (Selected Test Cases)"); } @Test public void newConfigurationNameIsReturned_forDifferentResourcesFromDifferentProjects() throws Exception { final IResource resource1 = projectProvider1.createFile("first.robot"); final IResource resource2 = projectProvider2.createFile("second.robot"); final String basicName1 = RobotLaunchConfigurationNaming.getBasicName(Arrays.asList(resource1, resource2), RobotLaunchConfigurationType.GENERAL_PURPOSE); assertThat(basicName1).isEqualTo("New Configuration"); final String basicName2 = RobotLaunchConfigurationNaming.getBasicName(Arrays.asList(resource1, resource2), RobotLaunchConfigurationType.SELECTED_TEST_CASES); assertThat(basicName2).isEqualTo("New Configuration"); } }