package org.projectusus.autotestsuite.core.internal.config; import static java.util.Arrays.asList; import static org.eclipse.jdt.internal.junit.launcher.JUnitLaunchConfigurationConstants.ATTR_KEEPRUNNING; import static org.eclipse.jdt.internal.junit.launcher.JUnitLaunchConfigurationConstants.ATTR_TEST_CONTAINER; import static org.eclipse.jdt.internal.junit.launcher.JUnitLaunchConfigurationConstants.ATTR_TEST_METHOD_NAME; import static org.eclipse.jdt.internal.junit.launcher.JUnitLaunchConfigurationConstants.ATTR_TEST_RUNNER_KIND; import static org.eclipse.jdt.launching.IJavaLaunchConfigurationConstants.ATTR_MAIN_TYPE_NAME; import static org.eclipse.jdt.launching.IJavaLaunchConfigurationConstants.ATTR_PROJECT_NAME; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verifyNoMoreInteractions; import static org.projectusus.autotestsuite.core.internal.config.ExtendedJUnitLaunchConfigurationConstants.ATTR_CHECKED_PROJECTS; import static org.projectusus.autotestsuite.core.internal.config.ExtendedJUnitLaunchConfigurationConstants.DEFAULT_TEST_KIND_ID; import java.util.Collections; import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy; import org.eclipse.jdt.core.IJavaProject; import org.eclipse.jdt.internal.junit.launcher.ITestKind; import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.mockito.Mock; import org.projectusus.autotestsuite.core.internal.config.ExtendedJUnitLaunchConfigurationWriter; @SuppressWarnings( "restriction" ) public class ExtendedJUnitLaunchConfigurationWriterTest { @Rule public Mockery mockery = new Mockery().with( new TestKindIdInitializer() ).with( new JavaProjectNamer() ); @Mock public ILaunchConfigurationWorkingCopy config; private ExtendedJUnitLaunchConfigurationWriter writer; @Before public void createWriter() { writer = new ExtendedJUnitLaunchConfigurationWriter( config ); } @Test public void setProjectName() { writer.setProjectName( "Usus" ); verify( config ).setAttribute( ATTR_PROJECT_NAME, "Usus" ); verifyNoMoreInteractions( config ); } @Test public void setTestContainer() { writer.setTestContainer( "unused" ); verify( config ).setAttribute( ATTR_TEST_CONTAINER, "unused" ); verifyNoMoreInteractions( config ); } @Test public void setUnusedAttributesToDefaults() { writer.setUnusedAttributesToDefaults(); verify( config ).setAttribute( ATTR_MAIN_TYPE_NAME, "" ); verify( config ).setAttribute( ATTR_TEST_METHOD_NAME, "" ); verifyNoMoreInteractions( config ); } @Test public void setKeepRunning() throws Exception { writer.setKeepRunning( true ); verify( config ).setAttribute( ATTR_KEEPRUNNING, true ); verifyNoMoreInteractions( config ); } @Test public void setTestKind() throws Exception { writer.setTestKind( mockery.mock( ITestKind.class, "123" ) ); verify( config ).setAttribute( ATTR_TEST_RUNNER_KIND, "123" ); verifyNoMoreInteractions( config ); } @Test public void setDefaultTestKind() { writer.setDefaultTestKind(); verify( config ).setAttribute( ATTR_TEST_RUNNER_KIND, DEFAULT_TEST_KIND_ID ); verifyNoMoreInteractions( config ); } @Test public void renameTo() { writer.renameTo( "foo" ); verify( config ).rename( "foo" ); verifyNoMoreInteractions( config ); } @Test public void setCheckedProjects() { writer.setCheckedProjects( asList( mockery.mock( IJavaProject.class, "a" ), mockery.mock( IJavaProject.class, "b" ) ) ); verify( config ).setAttribute( ATTR_CHECKED_PROJECTS, "a/b" ); verifyNoMoreInteractions( config ); } @Test public void emptyValueWithoutAnyCheckedProjects() { writer.setCheckedProjects( Collections.<IJavaProject> emptyList() ); verify( config ).setAttribute( ATTR_CHECKED_PROJECTS, "" ); verifyNoMoreInteractions( config ); } }