📄 httpmessagereceivertest.java
字号:
/* * Copyright (c) 2001 Sun Microsystems, Inc. All rights * reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. The end-user documentation included with the redistribution, * if any, must include the following acknowledgment: * "This product includes software developed by the * Sun Microsystems, Inc. for Project JXTA." * Alternately, this acknowledgment may appear in the software itself, * if and wherever such third-party acknowledgments normally appear. * * 4. The names "Sun", "Sun Microsystems, Inc.", "JXTA" and "Project JXTA" must * not be used to endorse or promote products derived from this * software without prior written permission. For written * permission, please contact Project JXTA at http://www.jxta.org. * * 5. Products derived from this software may not be called "JXTA", * nor may "JXTA" appear in their name, without prior written * permission of Sun. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL SUN MICROSYSTEMS OR * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * ==================================================================== * * This software consists of voluntary contributions made by many * individuals on behalf of Project JXTA. For more * information on Project JXTA, please see * <http://www.jxta.org/>. * * This license is based on the BSD license adopted by the Apache Foundation. * * $Id: HttpMessageReceiverTest.java,v 1.10 2003/11/26 02:10:54 gonzo Exp $ */package net.jxta.impl.endpoint.servlethttp;import net.jxta.test.http.GetMessage;import net.jxta.test.http.PostMessage;import net.jxta.test.http.Message;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.InputStream;import java.net.MalformedURLException;import java.net.URL;import java.util.Properties;/** * * @version $Id: HttpMessageReceiverTest.java,v 1.10 2003/11/26 02:10:54 gonzo Exp $ * * @author james todd [gonzo at jxta dot org] */public class HttpMessageReceiverTest extends junit.framework.TestCase { private static final String RESOURCE_PREFIX = "/net/jxta/test/resources/"; private static final String RESOURCE_SUFFIX = ".properties"; private static final String RELAY_RESOURCE = "relay"; private static final String PEER_ID_RESOURCE = "peerId"; private static final String ONE_K_MESSAGE_RESOURCE = "1kMessage"; private static final String CONTENT_TYPE_RESOURCE = "contentTyep"; private static final String HELLO_PREFIX = "uuid-"; private static final char DOT = '.'; private static final String MS_LABEL = " ms"; private static final int MS_PER_SEC = 1000; private URL relay = null; private String peerId = null; private String oneKMessage = null; private String contentType = null; private String sixtyFourKMessage = null; private URL relayGet = null; private URL relayPost = null; public static void main(String[] argv) { junit.textui.TestRunner.run(suite()); } public static junit.framework.TestSuite suite() { junit.framework.TestSuite suite = new junit.framework.TestSuite(); suite.addTest(new junit.framework.TestSuite(HttpMessageReceiverTest.class)); return suite; } public HttpMessageReceiverTest() { this(HttpMessageReceiverTest.class.getName()); } public HttpMessageReceiverTest(String name) { super(name); } public void testHello() { assertNotNull("relay is null", this.relay); String r = null; boolean isBogus = false; if (this.relay != null) { GetMessage gm = new GetMessage(this.relay); Message response = null; long then = getTime(); try { response = gm.dispatch(); } catch (IOException ioe) { isBogus = true; } long delta = getTime() - then; r = response != null ? response.getBody() : ""; System.err.println("hello time: " + delta + MS_LABEL); } assertFalse("bogus", isBogus); assertFalse("empty response", r == null || r.trim().length() == 0); assertTrue("missing prefix" + HELLO_PREFIX, r != null && r.startsWith(HELLO_PREFIX)); } public void testPutOneKMessage() { assertNotNull("relay is null", this.relayPost); assertNotNull("1k is null", this.oneKMessage); String r = null; boolean isBogus = false; if (this.relayPost != null) { PostMessage pm = new PostMessage(this.relayPost, new Message(this.oneKMessage)); Message response = null; boolean exceptionThrown = false; pm.setContentType(this.contentType); long then = getTime(); try { response = pm.dispatch(); } catch (IOException ioe) { isBogus = true; } long delta = getTime() - then; r = response != null ? response.getBody() : ""; System.err.println("put 1k time: " + delta + MS_LABEL); } assertFalse("bogus", isBogus); assertTrue("empty response", r == null || r.trim().length() == 0); } public void testGetOneKMessage() { assertNotNull("relay is null", this.relayGet); String r = null; boolean isBogus = false; /* if (this.relayGet != null) { System.out.println(this.relayGet); GetMessage gm = new GetMessage(this.relayGet); Message response = null; long then = getTime(); try { response = gm.dispatch(); } catch (IOException ioe) { isBogus = true; } long delta = getTime() - then; r = response != null ? response.getBody() : ""; System.err.println("hello time: " + delta + MS_LABEL); } assertFalse("bogus", isBogus); assertFalse("empty response", r == null || r.trim().length() == 0); assertTrue("missing prefix" + HELLO_PREFIX, r != null && r.startsWith(HELLO_PREFIX)); */ } public void testPutSixtyFourKMessage() { assertNotNull("64k is null", this.sixtyFourKMessage); } public void testGetSixtyFourKMessage() { assertNotNull("64k is null", this.sixtyFourKMessage); } protected void setUp() { Properties props = new Properties(); String base = this.getClass().getName(); String resource = RESOURCE_PREFIX + base.substring(base.lastIndexOf(DOT) + 1) + RESOURCE_SUFFIX; try { props.load(getResource(resource)); } catch (IOException ioe) {} try { this.relay = new URL(props.getProperty(RELAY_RESOURCE)); } catch (MalformedURLException mue) {} this.peerId = props.getProperty(PEER_ID_RESOURCE); this.oneKMessage = getData(getResource(props.getProperty(ONE_K_MESSAGE_RESOURCE))); this.contentType = getData(getResource(props.getProperty(CONTENT_TYPE_RESOURCE))); if (this.oneKMessage != null) { StringBuffer sb = new StringBuffer(64 * this.oneKMessage.length()); for (int i = 0; i < 64; i++) { sb.append(this.oneKMessage); } this.sixtyFourKMessage = sb.toString(); } if (this.relay != null) { try { this.relayGet = new URL(this.relay.toString() + "/" + this.peerId + "?120000,120000," + this.relay.toString()); } catch (MalformedURLException mue) {} this.relayPost = this.relay; } } protected void tearDown() { System.gc(); } private InputStream getResource(String resource) { return resource != null ? this.getClass().getResourceAsStream(resource) : null; } private String getData(InputStream is) { String data = null; if (is != null) { ByteArrayOutputStream os = new ByteArrayOutputStream(); int c = -1; try { while ((c = is.read()) != -1) { os.write(c); } } catch (IOException ioe) {} finally { if (is != null) { try { is.close(); } catch (IOException ioe) {} } if (os != null) { try { os.close(); } catch (IOException ioe) {} } } data = os.toString(); } return data; } private long getTime() { return System.currentTimeMillis(); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -