KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > net > javacoding > jspider > mod > rule > MaxResourcesPerSiteRuleTest


1 package net.javacoding.jspider.mod.rule;
2
3 import junit.framework.TestCase;
4 import net.javacoding.jspider.mockobjects.OverridingPropertySet;
5 import net.javacoding.jspider.api.model.Decision;
6 import net.javacoding.jspider.spi.Rule;
7 import net.javacoding.jspider.core.util.config.ConfigurationFactory;
8
9 import java.net.URL JavaDoc;
10
11 /**
12  * $Id: MaxResourcesPerSiteRuleTest.java,v 1.1 2003/04/07 15:51:06 vanrogu Exp $
13  */

14 public class MaxResourcesPerSiteRuleTest extends TestCase {
15
16     protected OverridingPropertySet config;
17
18     public MaxResourcesPerSiteRuleTest ( ) {
19         super ( "MaxResourcesPerSiteRuleTest" );
20     }
21
22     protected void setUp() throws Exception JavaDoc {
23         ConfigurationFactory.getConfiguration(ConfigurationFactory.CONFIG_UNITTEST);
24         config = new OverridingPropertySet ( null );
25     }
26
27     public void testSimple ( ) throws Exception JavaDoc {
28         int max = 1;
29         int times = 1;
30         String JavaDoc urlString = "http://j-spider.sourceforge.net/test.html";
31         int expected = Decision.RULE_ACCEPT;
32
33         applyTest(max, urlString, times, expected );
34     }
35
36     public void testSimpleViolation ( ) throws Exception JavaDoc {
37         int max = 1;
38         int times = 2;
39         String JavaDoc urlString = "http://j-spider.sourceforge.net/test.html";
40         int expected = Decision.RULE_IGNORE;
41
42         applyTest(max, urlString, times, expected );
43     }
44
45     public void testZeroAllowed ( ) throws Exception JavaDoc {
46         int max = 0;
47         int times = 1;
48         String JavaDoc urlString = "http://j-spider.sourceforge.net/test.html";
49         int expected = Decision.RULE_IGNORE;
50
51         applyTest(max, urlString, times, expected );
52     }
53
54     public void testTwoSites ( ) throws Exception JavaDoc {
55         URL JavaDoc url1 = new URL JavaDoc("http://j-spider.sourceforge.net/index.html");
56         URL JavaDoc url2 = new URL JavaDoc("http://www.somehost.com/index.html");
57         URL JavaDoc url3 = new URL JavaDoc("http://j-spider.sourceforge.net/test.html");
58
59         int max = 3;
60
61         config.setValue(MaxResourcesPerSiteRule.MAX, new Integer JavaDoc(max));
62         Rule rule = new MaxResourcesPerSiteRule(config) ;
63         Decision decision = null;
64         decision = rule.apply(null, null, url1); // site1:1 site2:0
65
assertEquals("decision not as expected", Decision.RULE_ACCEPT, decision.getDecision());
66         decision = rule.apply(null, null, url2); // site1:1 site2:1
67
assertEquals("decision not as expected", Decision.RULE_ACCEPT, decision.getDecision());
68         decision = rule.apply(null, null, url3); // site1:2 site2:1
69
assertEquals("decision not as expected", Decision.RULE_ACCEPT, decision.getDecision());
70         decision = rule.apply(null, null, url1); // site1:3 site2:1
71
assertEquals("decision not as expected", Decision.RULE_ACCEPT, decision.getDecision());
72         decision = rule.apply(null, null, url2); // site1:3 site2:2
73
assertEquals("decision not as expected", Decision.RULE_ACCEPT, decision.getDecision());
74         decision = rule.apply(null, null, url3); // site1 -- violation
75
assertEquals("decision not as expected", Decision.RULE_IGNORE, decision.getDecision());
76     }
77
78     public void applyTest ( int max, String JavaDoc urlString, int times, int lastExpected ) throws Exception JavaDoc {
79         config.setValue(MaxResourcesPerSiteRule.MAX, new Integer JavaDoc(max));
80
81         URL JavaDoc url = new URL JavaDoc(urlString);
82         Rule rule = new MaxResourcesPerSiteRule(config) ;
83         Decision decision = null;
84         for ( int i = 0; i < times; i++ ) {
85             decision = rule.apply(null, null, url);
86         }
87         assertEquals("final decision not as expected", lastExpected, decision.getDecision());
88     }
89
90 }
91
Popular Tags