package hudson.plugins.tfs.commands; import static org.junit.Assert.*; import static org.mockito.Mockito.*; import java.io.StringReader; import java.util.List; import hudson.plugins.tfs.commands.GetFilesToWorkFolderCommand; import hudson.plugins.tfs.util.MaskedArgumentListBuilder; import org.junit.Test; public class GetFilesToWorkFolderCommandTest { @Test public void assertArguments() { ServerConfigurationProvider config = mock(ServerConfigurationProvider.class); when(config.getUserName()).thenReturn("snd\\user_cp"); when(config.getUserPassword()).thenReturn("password"); MaskedArgumentListBuilder arguments = new GetFilesToWorkFolderCommand(config, "localPath").getArguments(); assertNotNull("Arguments were null", arguments); assertEquals("get localPath -recursive -noprompt -login:snd\\user_cp,password", arguments.toStringWithQuote()); } @Test public void assertPreviewArgument() { ServerConfigurationProvider config = mock(ServerConfigurationProvider.class); when(config.getUserName()).thenReturn("snd\\user_cp"); when(config.getUserPassword()).thenReturn("password"); MaskedArgumentListBuilder arguments = new GetFilesToWorkFolderCommand(config, "localPath", true).getArguments(); assertNotNull("Arguments were null", arguments); assertEquals("get localPath -recursive -preview -noprompt -login:snd\\user_cp,password", arguments.toStringWithQuote()); } @Test public void assertEmptyListWithEmptyOutput() throws Exception { GetFilesToWorkFolderCommand command = new GetFilesToWorkFolderCommand(mock(ServerConfigurationProvider.class), "."); List<String> list = command.parse(new StringReader("")); assertEquals("Number of files was incorrect", 0, list.size()); } @Test public void assertEmptyListWithNoChangesOutput() throws Exception { GetFilesToWorkFolderCommand command = new GetFilesToWorkFolderCommand(mock(ServerConfigurationProvider.class), "."); List<String> list = command.parse(new StringReader("All files are up to date.\n")); assertEquals("Number of files was incorrect", 0, list.size()); } @Test public void assertChangesWithChangeOutput() throws Exception { StringReader reader = new StringReader( "Getting tfsandbox_ms\" +" + "\n" + "C:\\Projects\\tfs\\tfsandbox_ms:\n" + "Getting path1\n" + "Getting path with space\n" + "Getting readme.txt\n" + "\n" + "C:\\Projects\\tfs\\tfsandbox_ms\\path1:\n" + "Getting pom2.xml\n"); GetFilesToWorkFolderCommand command = new GetFilesToWorkFolderCommand(mock(ServerConfigurationProvider.class), "."); List<String> list = command.parse(reader); assertEquals("Number of files was incorrect", 4, list.size()); assertEquals("File name was incorrect", "C:\\Projects\\tfs\\tfsandbox_ms\\path1", list.get(0)); assertEquals("File name was incorrect", "C:\\Projects\\tfs\\tfsandbox_ms\\path with space", list.get(1)); assertEquals("File name was incorrect", "C:\\Projects\\tfs\\tfsandbox_ms\\readme.txt", list.get(2)); assertEquals("File name was incorrect", "C:\\Projects\\tfs\\tfsandbox_ms\\path1\\pom2.xml", list.get(3)); } }