package org.simpleframework.http.validate; import java.io.InputStream; import java.io.PushbackInputStream; import java.util.Map; import junit.framework.TestCase; import org.simpleframework.common.buffer.ArrayBuffer; import org.simpleframework.common.buffer.Buffer; import org.simpleframework.http.StatusLine; public class ExtractorTest extends TestCase { private static final String HEADER = "HTTP/1.1 200 OK\r\n"+ "Content-Type: text/plain\r\n"+ "Server: Apache/2.1\r\n"+ "Content-Length: 10\r\n"+ "Connection: keep-alive\r\n"+ "\r\n"+ "0123456789"; public void testExtractor() throws Exception { Extractor extractor = new Extractor(true); Buffer buffer = new ArrayBuffer(1024); buffer.append(HEADER.getBytes("ISO-8859-1")); InputStream stream = buffer.open(); PushbackInputStream pushback = new PushbackInputStream(stream, 2048); StatusLine status = extractor.extractStatus(pushback); Map<String, String> header = extractor.extractHeader(pushback); Buffer body = extractor.extractBody(header, pushback); assertEquals(status.getMajor(), 1); assertEquals(status.getMinor(), 1); assertEquals(status.getCode(), 200); assertEquals(status.getDescription(), "OK"); assertEquals(header.get("Content-Type"), "text/plain"); assertEquals(header.get("Server"), "Apache/2.1"); assertEquals(header.get("Content-Length"), "10"); assertEquals(header.get("Connection"), "keep-alive"); assertEquals(body.encode(), "0123456789"); } public void testResponse() throws Exception { Extractor extractor = new Extractor(true); Buffer buffer = new ArrayBuffer(1024); buffer.append(HEADER.getBytes("ISO-8859-1")); InputStream stream = buffer.open(); PushbackInputStream pushback = new PushbackInputStream(stream, 2048); Result response = extractor.extractResponse(pushback); assertEquals(response.getStatusLine().getMajor(), 1); assertEquals(response.getStatusLine().getMinor(), 1); assertEquals(response.getStatusLine().getCode(), 200); assertEquals(response.getStatusLine().getDescription(), "OK"); assertEquals(response.getValue("Content-Type"), "text/plain"); assertEquals(response.getValue("Server"), "Apache/2.1"); assertEquals(response.getInteger("Content-Length"), 10); assertEquals(response.getValue("Connection"), "keep-alive"); assertEquals(response.getBody().encode(), "0123456789"); } }