package com.kdcloud.ext.rehab.paziente; import static org.junit.Assert.assertNotNull; import java.io.IOException; import java.io.StringWriter; import javax.xml.transform.OutputKeys; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerConfigurationException; import javax.xml.transform.TransformerException; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import org.junit.Test; import org.restlet.data.ChallengeScheme; import org.restlet.data.MediaType; import org.restlet.ext.xml.DomRepresentation; import org.restlet.representation.Representation; import org.restlet.resource.ClientResource; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Text; import com.kdcloud.server.rest.application.RestletTestCase; public class Test1 extends RestletTestCase { @Test public void provaPost() { try { System.out.println("********* POST"); // input da inviare DomRepresentation representation = new DomRepresentation( MediaType.TEXT_XML); Document d = representation.getDocument(); Element r = d.createElement("items"); d.appendChild(r); Element eltName = d.createElement("username"); eltName.appendChild(d.createTextNode("aabbbaaa")); r.appendChild(eltName); d.normalizeDocument(); // String xmlString = transformXMLToString(d); ClientResource cr = new ClientResource(getServerUrl() + "/rehab/registrapaziente"); cr.setRequestEntityBuffering(true); cr.setChallengeResponse(ChallengeScheme.HTTP_BASIC, "aaa", "bbb"); String input = transformXMLToString(d); System.out.println("input = " + input); Representation s = cr.post(representation); System.out.println("representation = " + s.toString()); System.out.println("media type = " + s.getMediaType()); DomRepresentation ricevuto = new DomRepresentation(s); System.out.println("dom representation = " + ricevuto.toString()); Document doc = null; try { doc = ricevuto.getDocument(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("document = " + d.toString()); String output = transformXMLToString(doc); System.out.println("output = " + output); assertNotNull(s); } catch (Exception e) { System.out.println("eccezione post " + e); } } // @Test // public void provaPut() { // try { // System.out.println("********* PUT"); // // // input da inviare // DomRepresentation representation = new DomRepresentation( // MediaType.TEXT_XML); // Document d = representation.getDocument(); // Element r = d.createElement("items"); // d.appendChild(r); // // Element eltName = d.createElement("username"); // eltName.appendChild(d.createTextNode("aabbbaaa")); // r.appendChild(eltName); // // d.normalizeDocument(); // // String xmlString = transformXMLToString(d); // ClientResource cr = new ClientResource(getServerUrl() // + "/rehab/registrapaziente"); // cr.setRequestEntityBuffering(true); // // cr.setChallengeResponse(ChallengeScheme.HTTP_BASIC, "aaa", "bbb"); // // String input = transformXMLToString(d); // System.out.println("input = " + input); // // Representation s = cr.put(representation); // System.out.println("representation = " + s.toString()); // System.out.println("media type = " + s.getMediaType()); // DomRepresentation ricevuto = new DomRepresentation(s); // // System.out.println("dom representation = " + ricevuto.toString()); // Document doc = null; // try { // doc = ricevuto.getDocument(); // } catch (IOException e) { // // TODO Auto-generated catch block // e.printStackTrace(); // } // System.out.println("document = " + d.toString()); // String output = transformXMLToString(doc); // System.out.println("output = " + output); // assertNotNull(s); // // } catch (Exception e) { // System.out.println("eccezione post " + e); // // } // // } // @Test // public void provaGet() { // System.out.println("********* GET"); // ClientResource cr = new ClientResource(getServerUrl() // + "/rehab/registrapaziente"); // cr.setRequestEntityBuffering(true); // // cr.setChallengeResponse(ChallengeScheme.HTTP_BASIC, "aaa", "bbb"); // Representation s = cr.get(MediaType.TEXT_XML); // // try { // // //System.out.println("stream = "+s.getStream()); // // System.out.println("get text = "+s.getText()); // // } catch (IOException e1) { // // // TODO Auto-generated catch block // // e1.printStackTrace(); // // } // // System.out.println("representation = " + s.toString()); // System.out.println("media type = " + s.getMediaType()); // DomRepresentation ricevuto = new DomRepresentation(s); // // System.out.println("dom representation = " + ricevuto.toString()); // Document d = null; // try { // d = ricevuto.getDocument(); // } catch (IOException e) { // // TODO Auto-generated catch block // e.printStackTrace(); // } // System.out.println("document = " + d.toString()); // String output = transformXMLToString(d); // System.out.println("output = " + output); // assertNotNull(s); // } private String transformXMLToString(Document doc) { TransformerFactory tf = TransformerFactory.newInstance(); Transformer transformer = null; try { transformer = tf.newTransformer(); } catch (TransformerConfigurationException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes"); StringWriter writer = new StringWriter(); try { transformer.transform(new DOMSource(doc), new StreamResult(writer)); } catch (TransformerException e) { // TODO Auto-generated catch block e.printStackTrace(); } String output = writer.getBuffer().toString().replaceAll("\n|\r", ""); return output; } private DomRepresentation createDocument() { DomRepresentation result = null; // This is an error // Generate the output representation try { result = new DomRepresentation(MediaType.TEXT_XML); // Generate a DOM document representing the list of // items. Document doc = result.getDocument(); Element root = doc.createElement("registrapazienteInput"); doc.appendChild(root); Element child = doc.createElement("username"); Text text = doc.createTextNode("fabrix"); child.appendChild(text); root.appendChild(child); child = doc.createElement("password"); text = doc.createTextNode("ciao"); child.appendChild(text); root.appendChild(child); child = doc.createElement("nome"); text = doc.createTextNode("Fabrizio"); child.appendChild(text); root.appendChild(child); child = doc.createElement("cognome"); text = doc.createTextNode("Granieri"); child.appendChild(text); root.appendChild(child); return result; } catch (IOException e) { e.printStackTrace(); return null; } } }