/******************************************************************************* * Copyright (c) Feb 2, 2011 Zend Technologies Ltd. * All rights reserved. This program and the accompanying materials * are 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 *******************************************************************************/ package org.zend.webapi.test.connection.data; import java.io.IOException; import java.util.List; import org.junit.Assert; import org.junit.Test; import org.restlet.ext.xml.DomRepresentation; import org.zend.webapi.core.connection.data.ApplicationInfo; import org.zend.webapi.core.connection.data.ApplicationServer; import org.zend.webapi.core.connection.data.ApplicationServers; import org.zend.webapi.core.connection.data.ApplicationsList; import org.zend.webapi.core.connection.data.DataDigster; import org.zend.webapi.core.connection.data.DeployedVersion; import org.zend.webapi.core.connection.data.IResponseData; import org.zend.webapi.core.connection.data.MessageList; import org.zend.webapi.core.connection.data.ServerInfo; import org.zend.webapi.core.connection.data.ServersList; import org.zend.webapi.core.connection.data.SystemInfo; import org.zend.webapi.core.connection.data.values.ApplicationStatus; import org.zend.webapi.core.connection.data.values.LicenseInfoStatus; import org.zend.webapi.core.connection.data.values.SystemEdition; import org.zend.webapi.core.connection.data.values.WebApiVersion; import org.zend.webapi.test.server.utils.ServerUtils; /** * Test {@link DataDigster} * * @author Roy * */ public class TestDataDigester { private static final String DIGSTER_FOLDER = "digster/"; @Test public void testSystemInfo1() throws Exception { final SystemInfo responseData = (SystemInfo) getResponseData( "systeminfo1.xml", IResponseData.ResponseType.SYSTEM_INFO); Assert.assertEquals(responseData.getEdition(), SystemEdition.ZEND_SERVER_CLUSER_MANAGER); Assert.assertEquals(responseData.getManagerLicenseInfo().getStatus(), LicenseInfoStatus.SERVER_LIMIT_EXCEEDED); } @Test public void testSystemInfo2() throws Exception { final SystemInfo responseData = (SystemInfo) getResponseData( "systemInfo2.xml", IResponseData.ResponseType.SYSTEM_INFO); Assert.assertEquals(responseData.getEdition(), SystemEdition.ZEND_SERVER_COMMUNITY_EDITION); Assert.assertEquals(responseData.getSupportedApiVersions().get(0), WebApiVersion.V1); Assert.assertEquals(responseData.getMessageList().getError(), null); } @Test public void testSystemInfo3() throws Exception { final SystemInfo responseData = (SystemInfo) getResponseData( "systemInfo3.xml", IResponseData.ResponseType.SYSTEM_INFO); Assert.assertTrue(responseData.getMessageList().getError().size() > 0); } @Test public void testRestartPhp() throws Exception { final ServersList responseData = (ServersList) getResponseData( "restartPhp.xml", IResponseData.ResponseType.SERVERS_LIST); Assert.assertTrue(responseData.getServerInfo().size() == 3); } @Test public void testClusterEnableServer() throws Exception { final ServerInfo responseData = (ServerInfo) getResponseData( "clusterEnableServer.xml", IResponseData.ResponseType.SERVER_INFO); Assert.assertEquals(responseData.getAddress(), "https://www-02.local:10082/ZendServer"); } @Test public void testClusterReconfigureServer() throws Exception { final ServerInfo responseData = (ServerInfo) getResponseData( "clusterReconfigureServer.xml", IResponseData.ResponseType.SERVER_INFO); Assert.assertEquals(responseData.getAddress(), "https://www-02.local:10082/ZendServer"); } @Test public void testClusterDisableServer() throws Exception { final ServerInfo responseData = (ServerInfo) getResponseData( "clusterDisableServer.xml", IResponseData.ResponseType.SERVER_INFO); Assert.assertEquals(responseData.getAddress(), "https://www-02.local:10082/ZendServer"); } @Test public void testClusterAddServer() throws Exception { final ServerInfo responseData = (ServerInfo) getResponseData( "clusterAddServer.xml", IResponseData.ResponseType.SERVER_INFO); Assert.assertEquals(responseData.getAddress(), "https://www-05.local:10082/ZendServer"); } @Test public void testClusterRemoveServer() throws Exception { final ServerInfo responseData = (ServerInfo) getResponseData( "clusterRemoveServer.xml", IResponseData.ResponseType.SERVER_INFO); Assert.assertEquals(responseData.getAddress(), "https://www-02.local:10082/ZendServer"); } @Test public void testClusterGetServerStatus() throws Exception { final ServersList responseData = (ServersList) getResponseData( "clusterGetServerStatus.xml", IResponseData.ResponseType.SERVERS_LIST); Assert.assertEquals(responseData.getServerInfo().size(), 2); } private IResponseData getResponseData(String fileName, IResponseData.ResponseType type) throws IOException { DomRepresentation representation = ServerUtils .readDomRepresentation(ServerUtils .createFileName(DIGSTER_FOLDER + fileName)); final DataDigster dataDigster = new DataDigster(type, representation); dataDigster.digest(); return dataDigster.getResponseData(); } @Test public void testApplicationGetStatus() throws Exception { final ApplicationsList responseData = (ApplicationsList) getResponseData( "applicationGetStatus.xml", IResponseData.ResponseType.APPLICATIONS_LIST); Assert.assertEquals(responseData.getApplicationsInfo().size(), 2); } @Test public void testApplicationDeploy() throws Exception { final ApplicationInfo responseData = (ApplicationInfo) getResponseData( "applicationDeploy.xml", IResponseData.ResponseType.APPLICATION_INFO); Assert.assertNotNull(responseData.getAppName()); } @Test public void testApplicationUpdate() throws Exception { final ApplicationInfo responseData = (ApplicationInfo) getResponseData( "applicationUpdate.xml", IResponseData.ResponseType.APPLICATION_INFO); Assert.assertNotNull(responseData.getAppName()); } @Test public void testApplicationRemove() throws Exception { final ApplicationInfo responseData = (ApplicationInfo) getResponseData( "applicationRemove.xml", IResponseData.ResponseType.APPLICATION_INFO); Assert.assertNotNull(responseData.getAppName()); } @Test public void testApplicationRedeploy() throws Exception { final ApplicationInfo responseData = (ApplicationInfo) getResponseData( "applicationRedeploy.xml", IResponseData.ResponseType.APPLICATION_INFO); Assert.assertNotNull(responseData.getBaseUrl() != null); } @Test public void testApplicationInfo() throws Exception { final ApplicationsList responseData = (ApplicationsList) getResponseData( "applicationGetStatus.xml", IResponseData.ResponseType.APPLICATIONS_LIST); List<ApplicationInfo> applicationInfo = responseData .getApplicationsInfo(); Assert.assertNotNull(applicationInfo.size() == 2); ApplicationInfo firstApp = applicationInfo.get(0); Assert.assertSame(1, firstApp.getId()); Assert.assertTrue("My Application".equals(firstApp.getAppName())); Assert.assertTrue("User Name".equals(firstApp.getUserAppName())); Assert.assertTrue("/usr/local/aaa".equals(firstApp .getInstalledLocation())); Assert.assertSame(ApplicationStatus.DEPLOYED, firstApp.getStatus()); ApplicationServers servers = firstApp.getServers(); Assert.assertNotNull(servers); List<ApplicationServer> serversList = servers.getApplicationServers(); Assert.assertTrue(serversList.size() == 2); ApplicationServer firstServer = serversList.get(0); Assert.assertTrue("2.14.0".equals(firstServer.getDeployedVersion())); ApplicationServer secondServer = serversList.get(1); Assert.assertTrue("2.15.0".equals(secondServer.getDeployedVersion())); List<DeployedVersion> versions = firstApp.getDeployedVersions() .getDeployedVersions(); Assert.assertTrue(versions.size() == 3); Assert.assertTrue("1.4".equals(versions.get(0).getVersion())); Assert.assertTrue("1.5".equals(versions.get(1).getVersion())); Assert.assertTrue("1.6".equals(versions.get(2).getVersion())); MessageList messageList = firstApp.getMessageList(); Assert.assertNotNull(messageList); Assert.assertTrue("test error".equals(messageList.getError().get(0))); ApplicationInfo secondApp = applicationInfo.get(1); Assert.assertSame(2, secondApp.getId()); Assert.assertTrue("Blog 2.0".equals(secondApp.getAppName())); Assert.assertTrue("User Name".equals(secondApp.getUserAppName())); Assert.assertTrue("/usr/local/aaa".equals(secondApp .getInstalledLocation())); Assert.assertSame(ApplicationStatus.UPLOADED, secondApp.getStatus()); servers = secondApp.getServers(); Assert.assertNotNull(servers); serversList = servers.getApplicationServers(); Assert.assertTrue(serversList.size() == 1); Assert.assertTrue("2.1.0".equals(serversList.get(0) .getDeployedVersion())); versions = secondApp.getDeployedVersions().getDeployedVersions(); Assert.assertTrue(versions.size() == 1); Assert.assertTrue("1.6".equals(versions.get(0).getVersion())); messageList = secondApp.getMessageList(); Assert.assertNotNull(messageList); Assert.assertTrue("test second error".equals(messageList.getError() .get(0))); Assert.assertTrue("test info".equals(messageList.getInfo().get(0))); Assert.assertTrue("test warning" .equals(messageList.getWarning().get(0))); } }