package hudson.plugins.tfs.commands; import com.microsoft.tfs.core.clients.versioncontrol.soapextensions.LabelChildOption; import com.microsoft.tfs.core.clients.versioncontrol.soapextensions.LabelResult; import com.microsoft.tfs.core.clients.versioncontrol.soapextensions.VersionControlLabel; import com.microsoft.tfs.core.clients.versioncontrol.specs.LabelItemSpec; import hudson.plugins.tfs.model.Server; import hudson.remoting.Callable; import ms.tfs.versioncontrol.clientservices._03._LabelResult; import ms.tfs.versioncontrol.clientservices._03._LabelResultStatus; import org.junit.Test; import org.mockito.Matchers; import static org.mockito.Mockito.when; public class LabelCommandTest extends AbstractCallableCommandTest { @Test public void assertLogging() throws Exception { final LabelResult labelResult = new LabelResult(new _LabelResult("label", "scope", _LabelResultStatus.Created)); final LabelResult[] labelResults = {labelResult}; when(vcc.createLabel( Matchers.<VersionControlLabel>anyObject(), Matchers.<LabelItemSpec[]>anyObject(), Matchers.<LabelChildOption>anyObject())).thenReturn(labelResults); final LabelCommand command = new LabelCommand(server, "labelName", "hudson-createLabel-TFS2013", "$/project/path") { @Override public Server createServer() { return server; } }; final Callable<Void, Exception> callable = command.getCallable(); callable.call(); assertLog( "Creating label 'labelName' on '$/project/path' as of the current version in workspace 'hudson-createLabel-TFS2013'...", "Created label 'labelName'." ); } @Override protected AbstractCallableCommand createCommand(final ServerConfigurationProvider serverConfig) { return new LabelCommand(serverConfig, "labelName", "workspaceName", "$/projectPath"); } }