package com.limegroup.gnutella.filters;
import junit.framework.Test;
import org.jmock.Expectations;
import org.jmock.Mockery;
import org.limewire.util.BaseTestCase;
import com.limegroup.gnutella.messages.QueryReply;
import com.limegroup.gnutella.messages.QueryRequest;
/**
* Unit tests for SpamReplyFilter
*/
public class SpamReplyFilterTest extends BaseTestCase {
private SpamReplyFilter _filter = new SpamReplyFilter();
private Mockery context = new Mockery();
private QueryReply queryReplyMock = context.mock(QueryReply.class);
private QueryRequest queryRequestMock = context.mock(QueryRequest.class);
public SpamReplyFilterTest(String name) {
super(name);
}
public static Test suite() {
return buildTestSuite(SpamReplyFilterTest.class);
}
public static void main(String[] args) {
junit.textui.TestRunner.run(suite());
}
public void testReplies() throws Exception{
assertTrue( allow("LIME"));
assertTrue( allow("BEAR"));
assertTrue( allow("RAZA"));
assertTrue(!allow("MUTE"));
assertTrue( allow("GTKG"));
assertTrue( allow("GNUC"));
context.assertIsSatisfied();
}
public void testOtherMessagesAreIgnored() throws Exception{
context.checking(new Expectations()
{{ never(queryRequestMock);
}});
assertTrue( _filter.allow(queryRequestMock));
context.assertIsSatisfied();
}
private boolean allow(final String vendorCode) throws Exception {
context.checking(new Expectations() {{
exactly(1).of(queryReplyMock).getVendor();
will(returnValue(vendorCode));
}});
return _filter.allow(queryReplyMock);
}
}