Author: adietish
Date: 2011-01-11 05:32:07 -0500 (Tue, 11 Jan 2011)
New Revision: 28091
Added:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/client/unmarshal/ImageUnmarshaller.java
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/client/unmarshal/ImagesUnmarshaller.java
trunk/deltacloud/tests/org.jboss.tools.deltacloud.test/src/org/jboss/tools/internal/deltacloud/test/core/client/ImageDomUnmarshallingTest.java
trunk/deltacloud/tests/org.jboss.tools.deltacloud.test/src/org/jboss/tools/internal/deltacloud/test/fakes/ImageResponseFakes.java
Modified:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/ChangeLog
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/client/DeltaCloudClientImpl.java
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/client/Image.java
trunk/deltacloud/tests/org.jboss.tools.deltacloud.test/ChangeLog
trunk/deltacloud/tests/org.jboss.tools.deltacloud.test/src/org/jboss/tools/internal/deltacloud/test/DeltaCloudTestSuite.java
Log:
[JBIDE-7935] moved image unmarshaling to its own class (and created tests for it)
Modified: trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/ChangeLog
===================================================================
--- trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/ChangeLog 2011-01-11 05:16:11
UTC (rev 28090)
+++ trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/ChangeLog 2011-01-11 10:32:07
UTC (rev 28091)
@@ -1,3 +1,12 @@
+2011-01-11 André Dietisheim <André Dietisheim@adietisheim-thinkpad>
+
+ * src/org/jboss/tools/deltacloud/core/client/unmarshal/ImagesUnmarshaller.java:
+ * src/org/jboss/tools/deltacloud/core/client/unmarshal/ImageUnmarshaller.java:
+ * src/org/jboss/tools/deltacloud/core/client/DeltaCloudClientImpl.java
+ (listImages):
+ (listImages):
+ [JBIDE-7935] moved image unmarshalling to its own class (and created tests for it)
+
2011-01-10 André Dietisheim <André Dietisheim@adietisheim-thinkpad>
* src/org/jboss/tools/deltacloud/core/client/unmarshal/HardwareProfileUnmarshaller.java:
Modified:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/client/DeltaCloudClientImpl.java
===================================================================
---
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/client/DeltaCloudClientImpl.java 2011-01-11
05:16:11 UTC (rev 28090)
+++
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/client/DeltaCloudClientImpl.java 2011-01-11
10:32:07 UTC (rev 28091)
@@ -15,7 +15,6 @@
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.StringReader;
-import java.io.StringWriter;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.UnknownHostException;
@@ -23,15 +22,9 @@
import java.util.ArrayList;
import java.util.List;
-import javax.xml.bind.JAXB;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.stream.StreamResult;
import org.apache.http.HttpResponse;
import org.apache.http.auth.AuthScope;
@@ -42,7 +35,6 @@
import org.apache.http.client.methods.HttpUriRequest;
import org.apache.http.impl.client.DefaultHttpClient;
import org.eclipse.core.runtime.Assert;
-import org.jboss.tools.deltacloud.core.client.request.AbstractListObjectsRequest;
import org.jboss.tools.deltacloud.core.client.request.CreateInstanceRequest;
import org.jboss.tools.deltacloud.core.client.request.CreateKeyRequest;
import org.jboss.tools.deltacloud.core.client.request.DeleteKeyRequest;
@@ -59,7 +51,10 @@
import org.jboss.tools.deltacloud.core.client.request.ListRealmsRequest;
import org.jboss.tools.deltacloud.core.client.request.PerformInstanceActionRequest;
import org.jboss.tools.deltacloud.core.client.request.TypeRequest;
+import org.jboss.tools.deltacloud.core.client.unmarshal.HardwareProfileUnmarshaller;
import org.jboss.tools.deltacloud.core.client.unmarshal.HardwareProfilesUnmarshaller;
+import org.jboss.tools.deltacloud.core.client.unmarshal.ImageUnmarshaller;
+import org.jboss.tools.deltacloud.core.client.unmarshal.ImagesUnmarshaller;
import org.jboss.tools.deltacloud.core.client.unmarshal.InstanceUnmarshaller;
import org.jboss.tools.deltacloud.core.client.unmarshal.InstancesUnmarshaller;
import org.jboss.tools.deltacloud.core.client.unmarshal.KeyUnmarshaller;
@@ -276,7 +271,8 @@
@Override
public Instance createInstance(String imageId) throws DeltaCloudClientException {
try {
- return buildInstance(request(new CreateInstanceRequest(baseUrl, imageId)));
+ InputStream response = request(new CreateInstanceRequest(baseUrl, imageId));
+ return new InstanceUnmarshaller().unmarshall(response, new Instance());
} catch (DeltaCloudClientException e) {
throw e;
} catch (Exception e) {
@@ -293,9 +289,9 @@
public Instance createInstance(String name, String imageId, String profileId, String
realmId, String keyId,
String memory, String storage) throws DeltaCloudClientException {
try {
- InputStream inputStream = request(
+ InputStream response = request(
new CreateInstanceRequest(baseUrl, name, imageId, profileId, realmId, keyId, memory,
storage));
- Instance instance = buildInstance(inputStream);
+ Instance instance = new InstanceUnmarshaller().unmarshall(response, new Instance());
// TODO: WORKAROUND for
//
https://issues.jboss.org/browse/JBIDE-8005
if (keyId != null) {
@@ -314,8 +310,8 @@
@Override
public HardwareProfile listProfile(String profileId) throws DeltaCloudClientException {
try {
- return buildDeltaCloudObject(HardwareProfile.class,
- requestStringResponse(new ListHardwareProfileRequest(baseUrl, profileId)));
+ InputStream response = request(new ListHardwareProfileRequest(baseUrl, profileId));
+ return new HardwareProfileUnmarshaller().unmarshall(response, new HardwareProfile());
} catch (DeltaCloudClientException e) {
throw e;
} catch (Exception e) {
@@ -338,15 +334,16 @@
@Override
public List<Image> listImages() throws DeltaCloudClientException {
- return listDeltaCloudObjects(Image.class,
- new ListImagesRequest(baseUrl), "image");
+ InputStream response = request(new ListImagesRequest(baseUrl));
+ List<Image> images = new ArrayList<Image>();
+ new ImagesUnmarshaller().unmarshall(response, images);
+ return images;
}
@Override
public Image listImages(String imageId) throws DeltaCloudClientException {
- return JAXB.unmarshal(new StringReader(
- requestStringResponse(new ListImageRequest(baseUrl, imageId))),
- Image.class);
+ InputStream response = request(new ListImageRequest(baseUrl, imageId));
+ return new ImageUnmarshaller().unmarshall(response, new Image());
}
@Override
@@ -360,7 +357,8 @@
@Override
public Instance listInstances(String instanceId) throws DeltaCloudClientException {
try {
- return buildInstance(request(new ListInstanceRequest(baseUrl, instanceId)));
+ InputStream response = request(new ListInstanceRequest(baseUrl, instanceId));
+ return new InstanceUnmarshaller().unmarshall(response, new Instance());
} catch (DeltaCloudClientException e) {
throw e;
} catch (Exception e) {
@@ -447,104 +445,6 @@
return key;
}
- private Instance updateInstance(InputStream inputStream, Instance instance) throws
Exception {
- return new InstanceUnmarshaller().unmarshall(inputStream, instance);
- }
-
- private Instance buildInstance(InputStream inputStream) throws Exception {
- return updateInstance(inputStream, new Instance());
- }
-
- private HardwareProfile buildHardwareProfile(String xml)
- throws DeltaCloudClientException {
- try {
- HardwareProfile profile = JAXB.unmarshal(new StringReader(xml),
- HardwareProfile.class);
-
- Document document = getDocument(xml);
-
- List<Node> nodes = getPropertyNodes(document, "hardware_profile");
//$NON-NLS-1$
-
- for (Node n : nodes) {
- Property p = new Property();
- p.setName(n.getAttributes().getNamedItem("name").getNodeValue());
//$NON-NLS-1$
- p.setValue(n.getAttributes()
- .getNamedItem("value").getNodeValue()); //$NON-NLS-1$
- p.setUnit(n.getAttributes().getNamedItem("unit").getNodeValue());
//$NON-NLS-1$
- p.setKind(n.getAttributes().getNamedItem("kind").getNodeValue());
//$NON-NLS-1$
- if (p.getKind().equals("range")) { //$NON-NLS-1$
- NodeList children = n.getChildNodes();
- for (int i = 0; i < children.getLength(); ++i) {
- Node child = children.item(i);
- if (child.getNodeName().equals("range")) { //$NON-NLS-1$
- String first = child.getAttributes()
- .getNamedItem("first").getNodeValue(); //$NON-NLS-1$
- String last = child.getAttributes()
- .getNamedItem("last").getNodeValue(); //$NON-NLS-1$
- p.setRange(first, last);
- }
- }
- } else if (p.getKind().equals("enum")) { //$NON-NLS-1$
- ArrayList<String> enums = new ArrayList<String>();
- NodeList children = n.getChildNodes();
- for (int i = 0; i < children.getLength(); ++i) {
- Node child = children.item(i);
- if (child.getNodeName().equals("enum")) { //$NON-NLS-1$
- NodeList enumChildren = child.getChildNodes();
- for (int j = 0; j < enumChildren.getLength(); ++j) {
- Node enumChild = enumChildren.item(j);
- if (enumChild.getNodeName().equals("entry")) {
- enums.add(enumChild
- .getAttributes()
- .getNamedItem("value").getNodeValue()); //$NON-NLS-1$
- }
- }
- }
- }
- p.setEnums(enums);
- }
- profile.getProperties().add(p);
- }
- return profile;
- } catch (Exception e) {
- e.printStackTrace();
- }
- return null;
- }
-
- private List<Node> getPropertyNodes(Document document, String elementName) {
- NodeList elements = document.getElementsByTagName(elementName);
- ArrayList<Node> values = new ArrayList<Node>();
- for (int i = 0; i < elements.getLength(); i++) {
- NodeList children = elements.item(i).getChildNodes();
- for (int j = 0; j < children.getLength(); ++j) {
- Node child = children.item(j);
- if (child.getNodeName().equals("property")) { //$NON-NLS-1$
- values.add(child);
- }
- }
- }
- return values;
- }
-
- private <T extends AbstractDeltaCloudObject> List<T>
listDeltaCloudObjects(Class<T> clazz,
- AbstractListObjectsRequest request, String elementName) throws
DeltaCloudClientException {
- try {
- Document document = getDocument(requestStringResponse(request));
- List<T> dco = new ArrayList<T>();
- NodeList nodeList = document.getElementsByTagName(elementName);
- for (int i = 0; i < nodeList.getLength(); i++) {
- dco.add(buildDeltaCloudObject(clazz, nodeToString(nodeList.item(i))));
- }
- return dco;
- } catch (DeltaCloudClientException e) {
- throw e;
- } catch (Exception e) {
- throw new DeltaCloudClientException(MessageFormat.format(
- "Could not list object of type {0}", clazz), e);
- }
- }
-
private Document getDocument(String response) throws ParserConfigurationException,
SAXException, IOException {
InputSource is = new InputSource(new StringReader(response));
DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
@@ -552,22 +452,13 @@
return document;
}
- @SuppressWarnings("unchecked")
- private <T extends Object> T buildDeltaCloudObject(Class<T> clazz, String
node) throws Exception {
- if (clazz.equals(HardwareProfile.class)) {
- return (T) buildHardwareProfile(node);
- } else {
- return JAXB.unmarshal(new StringReader(node), clazz);
- }
- }
-
public boolean performInstanceAction(InstanceAction action) throws
DeltaCloudClientException {
if (action != null) {
try {
InputStream inputStream = request(new PerformInstanceActionRequest(
new URL(action.getUrl()), action.getMethod()));
if (!InstanceAction.DESTROY.equals(action.getName())) {
- updateInstance(inputStream, action.getOwner());
+ new InstanceUnmarshaller().unmarshall(inputStream, action.getOwner());
}
} catch (MalformedURLException e) {
throw new DeltaCloudClientException(
@@ -582,15 +473,4 @@
}
return false;
}
-
- private String nodeToString(Node node) throws DeltaCloudClientException {
- try {
- StringWriter writer = new StringWriter();
- Transformer t = TransformerFactory.newInstance().newTransformer();
- t.transform(new DOMSource(node), new StreamResult(writer));
- return writer.toString();
- } catch (TransformerException e) {
- throw new DeltaCloudClientException("Error transforming node to string",
e);
- }
- }
}
Modified:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/client/Image.java
===================================================================
---
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/client/Image.java 2011-01-11
05:16:11 UTC (rev 28090)
+++
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/client/Image.java 2011-01-11
10:32:07 UTC (rev 28091)
@@ -10,7 +10,6 @@
*******************************************************************************/
package org.jboss.tools.deltacloud.core.client;
-import javax.xml.bind.annotation.XmlElement;
/**
* @author Martyn Taylor
@@ -19,42 +18,34 @@
{
private static final long serialVersionUID = 1L;
- @XmlElement(name="owner_id")
private String ownerId;
- @XmlElement
private String name;
- @XmlElement
private String description;
- @XmlElement
private String architecture;
- protected Image()
+ public Image()
{
}
- @SuppressWarnings("unused")
- private void setOwnerId(String ownerId)
+ public void setOwnerId(String ownerId)
{
this.ownerId = ownerId;
}
- @SuppressWarnings("unused")
- private void setName(String name)
+ public void setName(String name)
{
this.name = name;
}
- @SuppressWarnings("unused")
- private void setDescription(String description)
+ public void setDescription(String description)
{
this.description = description;
}
- @SuppressWarnings("unused")
- private void setArchitecture(String architecture)
+ public void setArchitecture(String architecture)
{
this.architecture = architecture;
}
Added:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/client/unmarshal/ImageUnmarshaller.java
===================================================================
---
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/client/unmarshal/ImageUnmarshaller.java
(rev 0)
+++
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/client/unmarshal/ImageUnmarshaller.java 2011-01-11
10:32:07 UTC (rev 28091)
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2010 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 org.jboss.tools.deltacloud.core.client.unmarshal;
+
+import org.jboss.tools.deltacloud.core.client.Image;
+import org.w3c.dom.Element;
+
+/**
+ * @author André Dietisheim
+ */
+public class ImageUnmarshaller extends AbstractDOMUnmarshaller<Image> {
+
+ public ImageUnmarshaller() {
+ super("image", Image.class);
+ }
+
+ protected Image doUnmarshall(Element element, Image image) throws Exception {
+ image.setId(getAttributeText("id", element));
+ image.setName(getFirstElementText("name", element));
+ image.setOwnerId(getFirstElementText("owner_id", element));
+ image.setDescription(getFirstElementText("description", element));
+ image.setArchitecture(getFirstElementText("architecture", element));
+ return image;
+ }
+}
Property changes on:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/client/unmarshal/ImageUnmarshaller.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/client/unmarshal/ImagesUnmarshaller.java
===================================================================
---
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/client/unmarshal/ImagesUnmarshaller.java
(rev 0)
+++
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/client/unmarshal/ImagesUnmarshaller.java 2011-01-11
10:32:07 UTC (rev 28091)
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * Copyright (c) 2010 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 org.jboss.tools.deltacloud.core.client.unmarshal;
+
+import org.jboss.tools.deltacloud.core.client.DeltaCloudClientException;
+import org.jboss.tools.deltacloud.core.client.Image;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+
+/**
+ * @author André Dietisheim
+ */
+public class ImagesUnmarshaller extends
AbstractDeltaCloudObjectsUnmarshaller<Image> {
+
+ public ImagesUnmarshaller() {
+ super("images", "image");
+ }
+
+ @Override
+ protected Image unmarshallChild(Node node) throws DeltaCloudClientException {
+ Image image = new ImageUnmarshaller().unmarshall((Element) node, new Image());
+ return image;
+ }
+}
Property changes on:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/client/unmarshal/ImagesUnmarshaller.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: trunk/deltacloud/tests/org.jboss.tools.deltacloud.test/ChangeLog
===================================================================
--- trunk/deltacloud/tests/org.jboss.tools.deltacloud.test/ChangeLog 2011-01-11 05:16:11
UTC (rev 28090)
+++ trunk/deltacloud/tests/org.jboss.tools.deltacloud.test/ChangeLog 2011-01-11 10:32:07
UTC (rev 28091)
@@ -1,3 +1,10 @@
+2011-01-11 André Dietisheim <André Dietisheim@adietisheim-thinkpad>
+
+ *
src/org/jboss/tools/internal/deltacloud/test/core/client/ImageDomUnmarshallingTest.java:
+ [JBIDE-7935] created tests for image unmarshalling
+ *
src/org/jboss/tools/internal/deltacloud/test/core/client/InstanceDomUnmarshallingTest.java:
+ [JBIDE-7935] created tests for instance unmarshalling
+
2010-12-15 André Dietisheim <adietish(a)redhat.com>
* src/org/jboss/tools/internal/deltacloud/test/core/job/SchedulingRulesTest.java:
Modified:
trunk/deltacloud/tests/org.jboss.tools.deltacloud.test/src/org/jboss/tools/internal/deltacloud/test/DeltaCloudTestSuite.java
===================================================================
---
trunk/deltacloud/tests/org.jboss.tools.deltacloud.test/src/org/jboss/tools/internal/deltacloud/test/DeltaCloudTestSuite.java 2011-01-11
05:16:11 UTC (rev 28090)
+++
trunk/deltacloud/tests/org.jboss.tools.deltacloud.test/src/org/jboss/tools/internal/deltacloud/test/DeltaCloudTestSuite.java 2011-01-11
10:32:07 UTC (rev 28091)
@@ -11,6 +11,7 @@
package org.jboss.tools.internal.deltacloud.test;
import
org.jboss.tools.internal.deltacloud.test.core.client.HardwareProfileDomUnmarshallingTest;
+import org.jboss.tools.internal.deltacloud.test.core.client.ImageDomUnmarshallingTest;
import
org.jboss.tools.internal.deltacloud.test.core.client.InstanceDomUnmarshallingTest;
import org.jboss.tools.internal.deltacloud.test.core.client.KeyDomUnmarshallingTest;
import org.jboss.tools.internal.deltacloud.test.core.job.CloudSchedulingRulesTest;
@@ -25,6 +26,7 @@
CloudSchedulingRulesTest.class,
KeyDomUnmarshallingTest.class,
InstanceDomUnmarshallingTest.class,
+ ImageDomUnmarshallingTest.class,
HardwareProfileDomUnmarshallingTest.class})
public class DeltaCloudTestSuite {
}
Added:
trunk/deltacloud/tests/org.jboss.tools.deltacloud.test/src/org/jboss/tools/internal/deltacloud/test/core/client/ImageDomUnmarshallingTest.java
===================================================================
---
trunk/deltacloud/tests/org.jboss.tools.deltacloud.test/src/org/jboss/tools/internal/deltacloud/test/core/client/ImageDomUnmarshallingTest.java
(rev 0)
+++
trunk/deltacloud/tests/org.jboss.tools.deltacloud.test/src/org/jboss/tools/internal/deltacloud/test/core/client/ImageDomUnmarshallingTest.java 2011-01-11
10:32:07 UTC (rev 28091)
@@ -0,0 +1,62 @@
+/*******************************************************************************
+ * Copyright (c) 2010 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 org.jboss.tools.internal.deltacloud.test.core.client;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+import java.io.ByteArrayInputStream;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.jboss.tools.deltacloud.core.client.DeltaCloudClientException;
+import org.jboss.tools.deltacloud.core.client.Image;
+import org.jboss.tools.deltacloud.core.client.unmarshal.ImageUnmarshaller;
+import org.jboss.tools.deltacloud.core.client.unmarshal.ImagesUnmarshaller;
+import org.jboss.tools.internal.deltacloud.test.fakes.ImageResponseFakes.ImageResponse;
+import org.jboss.tools.internal.deltacloud.test.fakes.ImageResponseFakes.ImagesResponse;
+import org.junit.Test;
+
+/**
+ * @author André Dietisheim
+ */
+public class ImageDomUnmarshallingTest {
+
+ @Test
+ public void imageMayBeUnmarshalled() throws DeltaCloudClientException {
+ Image image = new Image();
+ ByteArrayInputStream inputStream = new
ByteArrayInputStream(ImageResponse.response.getBytes());
+ new ImageUnmarshaller().unmarshall(inputStream, image);
+ assertNotNull(image);
+ assertEquals(ImageResponse.id, image.getId());
+ assertEquals(ImageResponse.name, image.getName());
+ assertEquals(ImageResponse.ownerId, image.getOwnerId());
+ assertEquals(ImageResponse.description, image.getDescription());
+ assertEquals(ImageResponse.architecture, image.getArchitecture());
+ }
+
+ @Test
+ public void imagesMayBeUnmarshalled() throws DeltaCloudClientException {
+ ByteArrayInputStream inputStream = new
ByteArrayInputStream(ImagesResponse.response.getBytes());
+ List<Image> images = new ArrayList<Image>();
+ new ImagesUnmarshaller().unmarshall(inputStream, images);
+ assertEquals(2, images.size());
+
+ Image image = images.get(0);
+ assertEquals(ImagesResponse.id1, image.getId());
+ assertEquals(ImagesResponse.name1, image.getName());
+
+ image = images.get(1);
+ assertEquals(ImagesResponse.id2, image.getId());
+ assertEquals(ImagesResponse.name2, image.getName());
+ }
+
+}
Property changes on:
trunk/deltacloud/tests/org.jboss.tools.deltacloud.test/src/org/jboss/tools/internal/deltacloud/test/core/client/ImageDomUnmarshallingTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/deltacloud/tests/org.jboss.tools.deltacloud.test/src/org/jboss/tools/internal/deltacloud/test/fakes/ImageResponseFakes.java
===================================================================
---
trunk/deltacloud/tests/org.jboss.tools.deltacloud.test/src/org/jboss/tools/internal/deltacloud/test/fakes/ImageResponseFakes.java
(rev 0)
+++
trunk/deltacloud/tests/org.jboss.tools.deltacloud.test/src/org/jboss/tools/internal/deltacloud/test/fakes/ImageResponseFakes.java 2011-01-11
10:32:07 UTC (rev 28091)
@@ -0,0 +1,64 @@
+/*******************************************************************************
+ * Copyright (c) 2010 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 org.jboss.tools.internal.deltacloud.test.fakes;
+
+
+/**
+ * @author André Dietisheim
+ */
+public class ImageResponseFakes {
+
+ public static class ImageResponse {
+ public static final String url =
"http://try.steamcannon.org/deltacloud/api/images/ami-16a3577f";
+ public static final String id = "ami-16a3577f";
+ public static final String name = "sles-10-sp3-v1.00.i386";
+ public static final String ownerId = "013907871322";
+ public static final String description = "SUSE Linux Enterprise Server 10 Service
Pack 3 for x86 (v1.00)";
+ public static final String architecture = "i386";
+
+ public static final String response = getImageResponseXML(url, id, name, ownerId,
description, architecture);
+ }
+
+ public static class ImagesResponse {
+
+ public static final String url1 =
"http://try.steamcannon.org/deltacloud/api/images/ami-16a3577f";
+ public static final String id1 = "ami-16a3577f";
+ public static final String name1 = "sles-10-sp3-v1.00.i386";
+ public static final String ownerId1 = "013907871322";
+ public static final String description1 = "SUSE Linux Enterprise Server 10 Service
Pack 3 for x86 (v1.00)";
+ public static final String architecture1 = "i386";
+
+ public static final String url2 =
"http://try.steamcannon.org/deltacloud/api/images/ami-16a3578f";
+ public static final String id2 = "ami-16a3578f";
+ public static final String name2 = "sles-10-sp3-v2.00.i686";
+ public static final String ownerId2 = "013907871422";
+ public static final String description2 = "SUSE Linux Enterprise Server 10 Service
Pack 3 for x86 (v2.00)";
+ public static final String architecture2 = "i686";
+
+ public static final String response =
+ "<images>"
+ + getImageResponseXML(url1, id1, name1, ownerId1, description1, architecture1)
+ + getImageResponseXML(url2, id2, name2, ownerId2, description2, architecture2)
+ + "</images>";
+
+ }
+
+ private static String getImageResponseXML(String url, String id, String name, String
ownerId,
+ String description, String architecture) {
+ return "<image href='" + url + "' id='" + id +
"'>"
+ + "<name>" + name + "</name>"
+ + "<owner_id>" + ownerId + "</owner_id>"
+ + "<description>" + description + "</description>"
+ + "<architecture>" + architecture +
"</architecture>"
+ + "<state></state>"
+ + "</image>";
+ }
+}
Property changes on:
trunk/deltacloud/tests/org.jboss.tools.deltacloud.test/src/org/jboss/tools/internal/deltacloud/test/fakes/ImageResponseFakes.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain