Diferencia entre revisiones de «Mock de un web service con Jetty»
De Dos Ideas.
(Página creada con 'El siguiente ejemplo de código muestra como crear una clase utilitaria que se encarga de simular un Web Service usando Jetty para atender las peticiones. <code java> …') |
|||
Línea 1: | Línea 1: | ||
El siguiente ejemplo de código muestra como crear una clase utilitaria que se encarga de simular un [[Web Service]] usando [[Jetty]] para atender las peticiones. | El siguiente ejemplo de código muestra como crear una clase utilitaria que se encarga de simular un [[Web Service]] usando [[Jetty]] para atender las peticiones. | ||
− | <code java> | + | <code java="java"> |
package com.dosideas.test; | package com.dosideas.test; | ||
Línea 90: | Línea 90: | ||
} | } | ||
+ | </code> | ||
+ | |||
+ | == El test con JUnit == | ||
+ | |||
+ | El siguiente test utiliza la clase anterior para maquetar el [[Web Service]]. | ||
+ | |||
+ | <code java="java"> | ||
+ | blah | ||
</code> | </code> | ||
− | + | == Ver también == | |
− | + | *[[Jetty]] | |
− | * [[Jetty]] | + | *[[Web Service]] |
− | * [[Web Service]] | + | *[[Mock Object]] |
− | * [[Mock Object]] | + | *[[SoapUI]] |
− | * [[SoapUI]] | ||
− | [[Category: Java]] | + | [[Category:Java]] [[Category:TDD]] |
− | [[Category: TDD]] |
Revisión del 18:35 27 oct 2009
El siguiente ejemplo de código muestra como crear una clase utilitaria que se encarga de simular un Web Service usando Jetty para atender las peticiones.
package com.dosideas.test;
import java.io.BufferedReader; import java.io.IOException;
import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;
import org.mortbay.jetty.Handler; import org.mortbay.jetty.Request; import org.mortbay.jetty.Server; import org.mortbay.jetty.handler.AbstractHandler;
import com.thoughtworks.xstream.XStream;
public class WebServiceServerMock {
private Server server; private Envelope envelope; private WebServiceServerMock() { } public static WebServiceServerMock crear(int port) throws Exception { WebServiceServerMock mock = new WebServiceServerMock(); mock.server = new Server(port); mock.server.start(); return mock; } public Envelope getRequestEnvelope() { return envelope; } public void crearOperacion(final String xmlRespuesta, final int httpStatus) { Handler handler = new AbstractHandler() { public void handle( String target, HttpServletRequest request, HttpServletResponse response, int dispatch ) throws IOException, ServletException {
BufferedReader in = new BufferedReader(request.getReader()); String line = ""; String xml = ""; while (null != (line = in.readLine())) { xml += line; } envelope = envelopeFromXml(xml); response.setStatus(httpStatus); response.getWriter().print(xmlRespuesta); ((Request) request).setHandled(true); } }; server.setHandler(handler); }
public static Envelope envelopeFromXml(String xml) { XStream xStream = new XStream(); xStream.alias("soapenv:Envelope", Envelope.class); xStream.alias("soapenv:Body", Body.class); xStream.aliasField("soapenv:Body", Envelope.class, "body"); //el resto de los mapeos Envelope envelope = (Envelope) xStream.fromXML(xml); return envelope; } public static class Body { public ConsultarListasDisponiblesRequest consultarListasDisponiblesRequest; } public static class Envelope { public Body body; }
public void stop() throws Exception { server.stop(); }
}
El test con JUnit
El siguiente test utiliza la clase anterior para maquetar el Web Service.
blah