package org.zend.sdk.test.sdkcli.commands;
import static org.mockito.Matchers.anyString;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import org.junit.Before;
import org.mockito.Mockito;
import org.restlet.ext.xml.DomRepresentation;
import org.zend.sdk.test.AbstractTest;
import org.zend.sdklib.application.ZendApplication;
import org.zend.sdklib.application.ZendCodeTracing;
import org.zend.sdklib.internal.target.UserBasedTargetLoader;
import org.zend.sdklib.internal.target.ZendTarget;
import org.zend.sdklib.manager.TargetsManager;
import org.zend.sdklib.target.ITargetLoader;
import org.zend.sdklib.target.IZendTarget;
import org.zend.sdklib.target.LicenseExpiredException;
import org.zend.webapi.core.WebApiClient;
import org.zend.webapi.core.WebApiException;
import org.zend.webapi.core.connection.data.DataDigster;
import org.zend.webapi.core.connection.data.IResponseData;
import org.zend.webapi.core.connection.data.values.ServerType;
import org.zend.webapi.core.connection.data.values.WebApiVersion;
import org.zend.webapi.test.server.utils.ServerUtils;
public class AbstractWebapiCommandTest extends AbstractTest {
public static final String FOLDER = "test/config/apps/";
protected ZendApplication application;
protected ZendCodeTracing codeTracing;
protected WebApiClient client;
private ITargetLoader loader;
protected TargetsManager manager;
@Before
public void startup() throws MalformedURLException {
application = spy(new ZendApplication(new UserBasedTargetLoader()));
client = Mockito.mock(WebApiClient.class);
doReturn(client).when(application).getClient(anyString());
codeTracing = spy(new ZendCodeTracing("targetId",
new UserBasedTargetLoader()));
doReturn(client).when(codeTracing).getClient(anyString());
loader = new UserBasedTargetLoader(file);
manager = spy(new TargetsManager(loader));
}
protected IResponseData getResponseData(String fileName,
IResponseData.ResponseType type) throws IOException {
DomRepresentation representation = ServerUtils
.readDomRepresentation(FOLDER + fileName + ".xml");
final DataDigster dataDigster = new DataDigster(type, representation);
dataDigster.digest();
return dataDigster.getResponseData();
}
protected IZendTarget getTarget() throws WebApiException,
LicenseExpiredException {
IZendTarget target = null;
try {
target = spy(new ZendTarget("0", new URL("http://localhost"),
"mykey", "123456"));
doReturn(true).when(target).connect(WebApiVersion.V1_3,
ServerType.ZEND_SERVER);
doReturn(true).when(target).connect();
} catch (MalformedURLException e) {
// ignore
}
return target;
}
}