KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > archive > crawler > settings > OverrideTest


1 /* OverrideTest
2  *
3  * $Id: OverrideTest.java,v 1.2 2004/05/28 22:33:05 stack-sf Exp $
4  *
5  * Created on Feb 20, 2004
6  *
7  * Copyright (C) 2004 Internet Archive.
8  *
9  * This file is part of the Heritrix web crawler (crawler.archive.org).
10  *
11  * Heritrix is free software; you can redistribute it and/or modify it under the
12  * terms of the GNU Lesser Public License as published by the Free Software
13  * Foundation; either version 2.1 of the License, or any later version.
14  *
15  * Heritrix is distributed in the hope that it will be useful, but WITHOUT ANY
16  * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
17  * A PARTICULAR PURPOSE. See the GNU Lesser Public License for more details.
18  *
19  * You should have received a copy of the GNU Lesser Public License along with
20  * Heritrix; if not, write to the Free Software Foundation, Inc., 59 Temple
21  * Place, Suite 330, Boston, MA 02111-1307 USA
22  */

23 package org.archive.crawler.settings;
24
25 import javax.management.AttributeNotFoundException JavaDoc;
26 import javax.management.InvalidAttributeValueException JavaDoc;
27 import javax.management.MBeanException JavaDoc;
28 import javax.management.ReflectionException JavaDoc;
29
30 import org.archive.crawler.datamodel.CrawlOrder;
31 import org.archive.crawler.framework.Processor;
32
33 /**
34  * Test the concept of overrides.
35  *
36  * As this test is testing a concept, it involves more than one class to be
37  * tested. Thus the name of this test doesn't match a class name.
38  *
39  * @author John Erik Halse
40  *
41  */

42 public class OverrideTest extends SettingsFrameworkTestCase {
43
44     /*
45      * @see SettingsFrameworkTestCase#setUp()
46      */

47     protected void setUp() throws Exception JavaDoc {
48         super.setUp();
49     }
50
51     /*
52      * @see SettingsFrameworkTestCase#tearDown()
53      */

54     protected void tearDown() throws Exception JavaDoc {
55         super.tearDown();
56     }
57
58     public void testOverridingOfGlobalAttribute()
59             throws AttributeNotFoundException JavaDoc, MBeanException JavaDoc,
60             ReflectionException JavaDoc, InvalidAttributeValueException JavaDoc {
61
62         final String JavaDoc MODULE_NAME = "module1";
63         ModuleType module1 = new ModuleType(MODULE_NAME);
64         ModuleType module2 = new Processor(MODULE_NAME, "Descr");
65
66         // Set up override
67
MapType headers = (MapType) getSettingsHandler().getOrder()
68                 .getAttribute(CrawlOrder.ATTR_HTTP_HEADERS);
69         headers.addElement(getGlobalSettings(), module1);
70         headers.setAttribute(getPerDomainSettings(), module2);
71
72         // Read back values to see if we get the right ones
73
ModuleType getMod;
74         getMod = (ModuleType) headers.getAttribute(getGlobalSettings(),
75                 MODULE_NAME);
76         assertSame("Wrong global value", module1, getMod);
77         assertEquals("Wrong class type", module1.getClass().getName(), headers
78                 .getAttributeInfo(getGlobalSettings(), MODULE_NAME).getType());
79
80         getMod = (ModuleType) headers.getAttribute(getPerDomainSettings(),
81                 MODULE_NAME);
82         assertSame("Wrong domain value", module2, getMod);
83         assertEquals("Wrong class type", module2.getClass().getName(), headers
84                 .getAttributeInfo(getPerDomainSettings(), MODULE_NAME)
85                 .getType());
86
87         getMod = (ModuleType) headers.getAttribute(getPerHostSettings(),
88                 MODULE_NAME);
89         assertSame("Wrong host value", module2, getMod);
90         assertEquals("Wrong class type", module2.getClass().getName(), headers
91                 .getAttributeInfo(getPerHostSettings(), MODULE_NAME).getType());
92     }
93
94     public void testOverridingOfNonGlobalAttribute()
95             throws AttributeNotFoundException JavaDoc, MBeanException JavaDoc,
96             ReflectionException JavaDoc, InvalidAttributeValueException JavaDoc {
97         final String JavaDoc MODULE_NAME = "module1";
98         ModuleType module1 = new ModuleType(MODULE_NAME);
99         ModuleType module2 = new Processor(MODULE_NAME, "Descr");
100
101         // Set up override
102
MapType headers = (MapType) getSettingsHandler().getOrder()
103                 .getAttribute(CrawlOrder.ATTR_HTTP_HEADERS);
104         headers.addElement(getPerDomainSettings(), module1);
105         headers.setAttribute(getPerHostSettings(), module2);
106
107         // Read back values to see if we get the right ones
108
ModuleType getMod;
109         try {
110             getMod = (ModuleType) headers.getAttribute(getGlobalSettings(),
111                     MODULE_NAME);
112             fail("Global value should not exist");
113         } catch (AttributeNotFoundException JavaDoc e) {
114             // OK! this should throw an exception;
115
}
116
117         getMod = (ModuleType) headers.getAttribute(getPerDomainSettings(),
118                 MODULE_NAME);
119         assertSame("Wrong domain value", module1, getMod);
120         assertEquals("Wrong class type", module1.getClass().getName(), headers
121                 .getAttributeInfo(getPerDomainSettings(), MODULE_NAME)
122                 .getType());
123
124         getMod = (ModuleType) headers.getAttribute(getPerHostSettings(),
125                 MODULE_NAME);
126         assertSame("Wrong host value", module2, getMod);
127         assertEquals("Wrong class type", module2.getClass().getName(), headers
128                 .getAttributeInfo(getPerHostSettings(), MODULE_NAME).getType());
129     }
130
131 }
Popular Tags