package com.limegroup.gnutella.messages; import java.io.ByteArrayInputStream; import org.limewire.gnutella.tests.LimeTestUtils; import org.limewire.io.GUID; import junit.framework.Test; import com.google.inject.Injector; import com.limegroup.gnutella.messages.Message.Network; public class MessageTest extends org.limewire.gnutella.tests.LimeTestCase { private PingRequestFactory pingRequestFactory; private MessageFactory messageFactory; public MessageTest(String name) { super(name); } public static Test suite() { return buildTestSuite(MessageTest.class); } @Override protected void setUp() throws Exception { Injector injector = LimeTestUtils.createInjectorNonEagerly(); pingRequestFactory = injector.getInstance(PingRequestFactory.class); messageFactory = injector.getInstance(MessageFactory.class); } public void testLegacy() throws Exception { //Note: some of Message's code is covered by subclass tests, e.g., //PushRequestTest. Message m1=pingRequestFactory.createPingRequest((byte)3); Message m2=pingRequestFactory.createPingRequest((byte)3); m2.setPriority(5); assertGreaterThan(0, m1.compareTo(m2)); assertLessThan(0, m2.compareTo(m1)); assertEquals(0, m2.compareTo(m2)); //Test for null payload with Ping byte[] bytes = new byte[23]; byte[] g = GUID.makeGuid(); for(int i=0;i<16;i++) bytes[i] = g[i]; bytes[16] = Message.F_PING_REPLY; bytes[17] = (byte) 2;//ttl bytes[18] = (byte) 2; //hops bytes[19] = (byte)0; bytes[20] = (byte)0; bytes[21] = (byte)0; bytes[22] = (byte)0; ByteArrayInputStream bais = new ByteArrayInputStream(bytes); byte[] b = new byte[40]; try { messageFactory.read(bais, Network.TCP, b,(byte)4); fail("bpe should have been thrown."); } catch(BadPacketException bpe) { } } }