// BETaaS - Building the Environment for the Things as a Service // // Component: TaaSVMManager // Responsible: Atos package eu.betaas.taas.taasvmmanager.opennebula.datamodel; import static org.junit.Assert.*; import java.io.ByteArrayOutputStream; import java.io.StringReader; import java.math.BigInteger; import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBException; import javax.xml.bind.Marshaller; import javax.xml.bind.Unmarshaller; import javax.xml.transform.stream.StreamSource; import org.junit.Test; import eu.betaas.taas.taasvmmanager.occi.datamodel.Compute; import eu.betaas.taas.taasvmmanager.occi.datamodel.Link; import eu.betaas.taas.taasvmmanager.occi.datamodel.ObjectFactory; import eu.betaas.taas.taasvmmanager.occi.datamodel.Storage; import eu.betaas.taas.taasvmmanager.occi.datamodel.StorageType; /** * * @author Francisco Javier Nieto De-Santos (francisco.nieto@atos.net) * @author Sergio Garcia Villalonga (sergio.garciavillalonga@atos.net) */ public class StorageTest { private static final String storageXML = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>" + "<storage href=\"http://www.path.to/storage\">" + "<id>34</id>" + "<name>Name</name>" + "<user href=\"http://www.path.to/user\" name=\"user_name\"/>" + "<group>group</group>" + "<type>OS</type>" + "<description>Description of the storage</description>" + "<size>2048</size>" + "<fstype>ext3</fstype>" + "</storage>"; @Test public void toXML() { ObjectFactory factory = new ObjectFactory(); ByteArrayOutputStream marshalled = new ByteArrayOutputStream(); Link user = factory.createLink(); user.setHref("http://www.path.to/user"); user.setName("user_name"); Storage storage = factory.createStorage(); storage.setHref("http://www.path.to/storage"); storage.setId(new BigInteger("34")); storage.setName("Name"); storage.setUser(user); storage.setGroup("group"); storage.setType(StorageType.OS); storage.setDescription("Description of the storage"); storage.setSize("2048"); storage.setFstype("ext3"); try { JAXBContext jaxbContext = JAXBContext.newInstance(Compute.class); Marshaller jaxbMarshaller = jaxbContext.createMarshaller(); jaxbMarshaller.marshal(storage, marshalled); System.out.println(marshalled.toString()); assertEquals(storageXML, marshalled.toString()); } catch (JAXBException e) { e.printStackTrace(); fail(); } } @Test public void fromXML() { Storage storage; try { JAXBContext jaxbContext = JAXBContext.newInstance(Compute.class); Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller(); storage = (Storage)jaxbUnmarshaller.unmarshal( new StreamSource( new StringReader( storageXML ))); System.out.println(storage.toString()); assertEquals("http://www.path.to/storage", storage.getHref()); assertEquals("34", storage.getId().toString()); assertEquals("Name", storage.getName()); assertEquals("http://www.path.to/user", storage.getUser().getHref()); assertEquals("user_name", storage.getUser().getName()); assertEquals("group", storage.getGroup()); assertEquals(StorageType.OS, storage.getType()); assertEquals("Description of the storage", storage.getDescription()); assertEquals("2048", storage.getSize()); assertEquals("ext3", storage.getFstype()); } catch (JAXBException e) { e.printStackTrace(); fail(); } } }