package hudson.plugins.tfs.commands;
import com.microsoft.tfs.core.clients.versioncontrol.WorkspacePermissions;
import com.microsoft.tfs.core.clients.versioncontrol.soapextensions.Workspace;
import hudson.plugins.tfs.model.Server;
import hudson.remoting.Callable;
import org.junit.Test;
import org.mockito.Matchers;
import java.io.IOException;
import static org.mockito.Matchers.anyObject;
import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.isA;
import static org.mockito.Mockito.when;
public class DeleteWorkspaceCommandTest extends AbstractCallableCommandTest {
@Test
public void assertLogging() throws Exception {
when(server.getUserName()).thenReturn("snd\\user_cp");
final Workspace[] emptyWorkspaceList = new Workspace[0];
when(vcc.queryWorkspaces(isA(String.class), Matchers.<String>anyObject(), isA(String.class), isA(WorkspacePermissions.class))).thenReturn(emptyWorkspaceList);
final DeleteWorkspaceCommand command = new DeleteWorkspaceCommand(server, "TheWorkspaceName", "computerName") {
@Override
public Server createServer() {
return server;
}
};
final Callable<Void, IOException> callable = command.getCallable();
callable.call();
assertLog(
"Deleting workspaces named 'TheWorkspaceName' from computer 'computerName'...",
"Deleted 0 workspace(s) named 'TheWorkspaceName'."
);
}
@Override protected AbstractCallableCommand createCommand(final ServerConfigurationProvider serverConfig) {
return new DeleteWorkspaceCommand(serverConfig, "workspaceName", "computerName");
}
}