package com.limegroup.gnutella.filters; import junit.framework.Test; import org.limewire.io.GUID; import org.limewire.util.BaseTestCase; import com.limegroup.gnutella.messages.QueryRequest; import org.jmock.Expectations; import org.jmock.Mockery; /** * Unit tests for RequeryFilter */ public class RequeryFilterTest extends BaseTestCase { private Mockery context; private SpamFilter filter; public RequeryFilterTest(String name) { super(name); } public static Test suite() { return buildTestSuite(RequeryFilterTest.class); } public static void main(String[] args) { junit.textui.TestRunner.run(suite()); } @Override public void setUp() { context = new Mockery(); filter = new RequeryFilter(); } public void testNormalRequery() throws Exception { QueryRequest req; req = context.mock(QueryRequest.class); mockQueryRequest(req, "Requery"); assertTrue(filter.allow(req)); assertTrue(filter.allow(req)); } public void testLegacy() throws Exception { QueryRequest req; req = context.mock(QueryRequest.class); mockQueryRequest(req, "Hello"); assertTrue(filter.allow(req)); req = context.mock(QueryRequest.class); mockQueryRequest(req, "Hello"); assertTrue(filter.allow(req)); req = context.mock(QueryRequest.class); mockQueryRequest(req, "Hel lo"); assertTrue(filter.allow(req)); req = context.mock(QueryRequest.class); mockQueryRequest(req, "asd"); assertTrue(filter.allow(req)); context.assertIsSatisfied(); } public void testGUIDCreate() { byte[] guid = GUID.makeGuid(); guid[0] = (byte) 0x02; guid[1] = (byte) 0x01; guid[2] = (byte) 0x17; guid[3] = (byte) 0x05; guid[13] = (byte) 0x2E; guid[14] = (byte) 0x05; assertTrue(GUID.isLimeGUID(guid)); assertTrue(GUID.isLimeRequeryGUID(guid, 1)); assertFalse(GUID.isLimeRequeryGUID(guid, 0)); QueryRequest req = context.mock(QueryRequest.class); this.mockQueryRequest(req, guid, "asdf"); assertFalse(filter.allow(req)); context.assertIsSatisfied(); } private void mockQueryRequest(final QueryRequest req, final String query) { context.checking(new Expectations() { { atLeast(1).of(req).getGUID(); will(returnValue(GUID.makeGuid())); } }); } private void mockQueryRequest(final QueryRequest req, final byte[] guid, final String query) { context.checking(new Expectations() { { atLeast(1).of(req).getGUID(); will(returnValue(guid)); } }); } }