/******************************************************************************* * Copyright (c) 2013 Red Hat, Inc. * Distributed under license by Red Hat, Inc. All rights reserved. * This program is made available under the terms of the * Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Red Hat, Inc. - initial API and implementation ******************************************************************************/ package com.openshift.internal.client; import java.io.ByteArrayInputStream; import java.net.SocketTimeoutException; import org.mockito.Mockito; import com.jcraft.jsch.JSch; import com.jcraft.jsch.JSchException; import com.jcraft.jsch.Session; import com.openshift.client.IApplication; import com.openshift.internal.client.httpclient.HttpClientException; /** * @author Andre Dietisheim * @author Syed Iqbal */ public class ApplicationSSHSessionMockDirector { private ApplicationSSHSession applicationSession; private ApplicationSSHSession spyedApplicationSession; public ApplicationSSHSessionMockDirector(IApplication application) throws SocketTimeoutException, HttpClientException, JSchException { ApplicationResource spyedApplication = Mockito.spy(((ApplicationResource) application)); this.applicationSession = new ApplicationSSHSession(spyedApplication, new JSch().getSession("mockuser", "mockhost", 22)); this.spyedApplicationSession = Mockito.spy(((ApplicationSSHSession) applicationSession)); Mockito.doReturn(true) .when(spyedApplicationSession) .isConnected(); } public ApplicationSSHSessionMockDirector mockGetForwardablePorts(String response) { Mockito.doReturn(new ByteArrayInputStream(response.getBytes())) .when(spyedApplicationSession) .execCommand(Mockito.anyString(), (ApplicationSSHSession.ChannelInputStreams) Mockito.any(), (Session) Mockito.any()); return this; } public ApplicationSSHSessionMockDirector mockGetEnvironmentProperties(String response) { Mockito.doReturn(new ByteArrayInputStream(response.getBytes())) .when(spyedApplicationSession) .execCommand(Mockito.anyString(), (ApplicationSSHSession.ChannelInputStreams) Mockito.any(), (Session) Mockito.any()); return this; } public ApplicationSSHSession getMock() { return spyedApplicationSession; } }