package com.limegroup.gnutella.routing; import java.util.LinkedList; import java.util.List; import junit.framework.Test; import org.limewire.lifecycle.ServiceRegistry; import com.google.inject.AbstractModule; import com.google.inject.Injector; import com.google.inject.Module; import com.limegroup.gnutella.LimeTestUtils; import com.limegroup.gnutella.library.FileDesc; import com.limegroup.gnutella.library.FileDescStub; import com.limegroup.gnutella.library.FileManager; import com.limegroup.gnutella.library.FileManagerStub; import com.limegroup.gnutella.stubs.QueryRequestStub; import com.limegroup.gnutella.util.LimeTestCase; public class QRPUpdaterTest extends LimeTestCase { private QRPUpdater qrpUpdater; private Injector injector; private FileManagerStub fileManagerStub; public QRPUpdaterTest(String name) { super(name); } public static Test suite() { return buildTestSuite(QRPUpdaterTest.class); } @Override protected void setUp() throws Exception { List<Module> allModules = new LinkedList<Module>(); allModules.add(new AbstractModule() { @Override protected void configure() { bind(FileManager.class).to(FileManagerStub.class); } }); injector = LimeTestUtils.createInjector(allModules.toArray(new Module[0])); qrpUpdater = injector.getInstance(QRPUpdater.class); fileManagerStub = (FileManagerStub)injector.getInstance(FileManager.class); injector.getInstance(ServiceRegistry.class).initialize(); fileManagerStub.start(); } public void testGetQRT() { QueryRouteTable table = qrpUpdater.getQRT(); //only defaults should be found assertTrue(table.contains(new QueryRequestImpl("limewire"))); assertFalse(table.contains(new QueryRequestImpl("FoundFile.txt"))); assertFalse(table.contains(new QueryRequestImpl("NotFound.txt"))); FileDesc fd = new FileDescStub("FoundFile.txt"); fileManagerStub.getGnutellaFileList().add(fd); table = qrpUpdater.getQRT(); assertTrue(table.contains(new QueryRequestImpl("limewire"))); assertTrue(table.contains(new QueryRequestImpl("FoundFile.txt"))); assertFalse(table.contains(new QueryRequestImpl("NotFound.txt"))); fileManagerStub.getGnutellaFileList().remove(fd); table = qrpUpdater.getQRT(); assertTrue(table.contains(new QueryRequestImpl("limewire"))); assertFalse(table.contains(new QueryRequestImpl("FoundFile.txt"))); assertFalse(table.contains(new QueryRequestImpl("NotFound.txt"))); } private class QueryRequestImpl extends QueryRequestStub { private String keyWords; public QueryRequestImpl(String keywords) { this.keyWords = keywords; } @Override public String getQuery() { return keyWords; } } }