MaxResourcesPerSiteRuleTest.java
上传用户:qing5858
上传日期:2015-10-27
资源大小:6056k
文件大小:4k
源码类别:

搜索引擎

开发平台:

Java

  1. package net.javacoding.jspider.mod.rule;
  2. import junit.framework.TestCase;
  3. import net.javacoding.jspider.mockobjects.OverridingPropertySet;
  4. import net.javacoding.jspider.api.model.Decision;
  5. import net.javacoding.jspider.spi.Rule;
  6. import net.javacoding.jspider.core.util.config.ConfigurationFactory;
  7. import java.net.URL;
  8. /**
  9.  * $Id: MaxResourcesPerSiteRuleTest.java,v 1.1 2003/04/07 15:51:06 vanrogu Exp $
  10.  */
  11. public class MaxResourcesPerSiteRuleTest extends TestCase {
  12.     protected OverridingPropertySet config;
  13.     public MaxResourcesPerSiteRuleTest ( ) {
  14.         super ( "MaxResourcesPerSiteRuleTest" );
  15.     }
  16.     protected void setUp() throws Exception {
  17.         ConfigurationFactory.getConfiguration(ConfigurationFactory.CONFIG_UNITTEST);
  18.         config = new OverridingPropertySet ( null );
  19.     }
  20.     public void testSimple ( ) throws Exception {
  21.         int max = 1;
  22.         int times = 1;
  23.         String urlString = "http://j-spider.sourceforge.net/test.html";
  24.         int expected = Decision.RULE_ACCEPT;
  25.         applyTest(max, urlString, times, expected );
  26.     }
  27.     public void testSimpleViolation ( ) throws Exception {
  28.         int max = 1;
  29.         int times = 2;
  30.         String urlString = "http://j-spider.sourceforge.net/test.html";
  31.         int expected = Decision.RULE_IGNORE;
  32.         applyTest(max, urlString, times, expected );
  33.     }
  34.     public void testZeroAllowed ( ) throws Exception {
  35.         int max = 0;
  36.         int times = 1;
  37.         String urlString = "http://j-spider.sourceforge.net/test.html";
  38.         int expected = Decision.RULE_IGNORE;
  39.         applyTest(max, urlString, times, expected );
  40.     }
  41.     public void testTwoSites ( ) throws Exception {
  42.         URL url1 = new URL("http://j-spider.sourceforge.net/index.html");
  43.         URL url2 = new URL("http://www.somehost.com/index.html");
  44.         URL url3 = new URL("http://j-spider.sourceforge.net/test.html");
  45.         int max = 3;
  46.         config.setValue(MaxResourcesPerSiteRule.MAX, new Integer(max));
  47.         Rule rule = new MaxResourcesPerSiteRule(config) ;
  48.         Decision decision = null;
  49.         decision = rule.apply(null, null, url1);  // site1:1 site2:0
  50.         assertEquals("decision not as expected", Decision.RULE_ACCEPT, decision.getDecision());
  51.         decision = rule.apply(null, null, url2);  // site1:1 site2:1
  52.         assertEquals("decision not as expected", Decision.RULE_ACCEPT, decision.getDecision());
  53.         decision = rule.apply(null, null, url3);  // site1:2 site2:1
  54.         assertEquals("decision not as expected", Decision.RULE_ACCEPT, decision.getDecision());
  55.         decision = rule.apply(null, null, url1);  // site1:3 site2:1
  56.         assertEquals("decision not as expected", Decision.RULE_ACCEPT, decision.getDecision());
  57.         decision = rule.apply(null, null, url2);  // site1:3 site2:2
  58.         assertEquals("decision not as expected", Decision.RULE_ACCEPT, decision.getDecision());
  59.         decision = rule.apply(null, null, url3);  // site1 -- violation
  60.         assertEquals("decision not as expected", Decision.RULE_IGNORE, decision.getDecision());
  61.     }
  62.     public void applyTest ( int max, String urlString, int times, int lastExpected ) throws Exception {
  63.         config.setValue(MaxResourcesPerSiteRule.MAX, new Integer(max));
  64.         URL url = new URL(urlString);
  65.         Rule rule = new MaxResourcesPerSiteRule(config) ;
  66.         Decision decision = null;
  67.         for ( int i = 0; i < times; i++ ) {
  68.             decision = rule.apply(null, null, url);
  69.         }
  70.         assertEquals("final decision not as expected", lastExpected, decision.getDecision());
  71.     }
  72. }