Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: net/jxta/ext/config/ConfiguratorTest.java


1   /*
2    *  Copyright (c) 2001 Sun Microsystems, Inc.  All rights
3    *  reserved.
4    *
5    *  Redistribution and use in source and binary forms, with or without
6    *  modification, are permitted provided that the following conditions
7    *  are met:
8    *
9    *  1. Redistributions of source code must retain the above copyright
10   *  notice, this list of conditions and the following disclaimer.
11   *
12   *  2. Redistributions in binary form must reproduce the above copyright
13   *  notice, this list of conditions and the following disclaimer in
14   *  the documentation and/or other materials provided with the
15   *  distribution.
16   *
17   *  3. The end-user documentation included with the redistribution,
18   *  if any, must include the following acknowledgment:
19   *  "This product includes software developed by the
20   *  Sun Microsystems, Inc. for Project JXTA."
21   *  Alternately, this acknowledgment may appear in the software itself,
22   *  if and wherever such third-party acknowledgments normally appear.
23   *
24   *  4. The names "Sun", "Sun Microsystems, Inc.", "JXTA" and "Project JXTA" must
25   *  not be used to endorse or promote products derived from this
26   *  software without prior written permission. For written
27   *  permission, please contact Project JXTA at http://www.jxta.org.
28   *
29   *  5. Products derived from this software may not be called "JXTA",
30   *  nor may "JXTA" appear in their name, without prior written
31   *  permission of Sun.
32   *
33   *  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
34   *  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
35   *  OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
36   *  DISCLAIMED.  IN NO EVENT SHALL SUN MICROSYSTEMS OR
37   *  ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
38   *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
39   *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
40   *  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
41   *  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
42   *  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
43   *  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
44   *  SUCH DAMAGE.
45   *  ====================================================================
46   *
47   *  This software consists of voluntary contributions made by many
48   *  individuals on behalf of Project JXTA.  For more
49   *  information on Project JXTA, please see
50   *  <http://www.jxta.org/>.
51   *
52   *  This license is based on the BSD license adopted by the Apache Foundation.
53   *
54   *  $Id: ConfiguratorTest.java,v 1.7 2004/04/14 18:20:05 gonzo Exp $
55   */
56  
57  package net.jxta.ext.config;
58  
59  import net.jxta.exception.ConfiguratorException;
60  
61  import java.io.File;
62  
63  import org.apache.log4j.AppenderSkeleton;
64  import org.apache.log4j.Level;
65  import org.apache.log4j.Logger;
66  import org.apache.log4j.spi.LoggingEvent;
67  
68  /**
69   *
70   * @version $Id: ConfiguratorTest.java,v 1.7 2004/04/14 18:20:05 gonzo Exp $
71   *
72   * @author james todd [gonzo at jxta dot org]
73   */
74  
75  public class ConfiguratorTest
76      extends TestBase {
77  
78      public static void main(String[] argv) {
79          junit.textui.TestRunner.run(suite());
80      }
81  
82      public static junit.framework.TestSuite suite() {
83          junit.framework.TestSuite suite = new junit.framework.TestSuite();
84  
85          suite.addTest(new junit.framework.TestSuite(ConfiguratorTest.class));
86  
87          return suite;
88      }
89  
90      public ConfiguratorTest() {
91          this(ConfiguratorTest.class.getName());
92      }
93  
94      public ConfiguratorTest(String name) {
95          super(name);
96      }
97  
98      public void testWrite() {
99          try {
100             new Configurator(PRINCIPAL, PASSWORD).save();
101         } catch (ConfiguratorException ce) {
102             fail("Configurator.save() exception: " + ce.getMessage());
103         }
104         
105         assertTrue(exists(PC));
106     }
107     
108     public void testWriteToFile() {
109         try {
110             new Configurator(PRINCIPAL, PASSWORD).save(PC_TEST);
111         } catch (ConfiguratorException ce) {
112             fail("Configurator.save() exception: " + ce.getMessage());
113         }
114         
115         assertTrue(exists(PC_TEST));
116     }
117     
118     public void testOneShot() {
119         try {
120             setPlatformConfig(new Configurator(PRINCIPAL, PASSWORD).
121                 getPlatformConfig());
122         } catch (ConfiguratorException ce) {
123             fail("Configurator.save() exception: " + ce.getMessage());
124         }
125         
126         assertTrue(getPlatformConfig() != null);
127     }
128     
129     public void testNoArg() {
130         Configurator c = new Configurator();
131 
132         c.setSecurity(PRINCIPAL, PASSWORD);
133 
134         try {
135             setPlatformConfig(c.getPlatformConfig());
136         } catch (ConfiguratorException ce) {
137             fail("Configurator.save() exception: " + ce.getMessage());
138         }
139 
140         assertTrue(getPlatformConfig() != null);
141     }
142     
143     public void testThreeArg() {
144         Configurator c = new Configurator(NAME, PRINCIPAL, PASSWORD);
145 
146         try {
147             setPlatformConfig(c.getPlatformConfig());
148         } catch (ConfiguratorException ce) {
149             fail("Configurator.save() exception: " + ce.getMessage());
150         }
151 
152         assertTrue(getPlatformConfig() != null);
153     }
154     
155     public void testNoErrorsInLog() throws Exception {
156         LogErrorAppender logErrorCatcher = new LogErrorAppender();
157         Logger configuratorLog = Logger.getLogger(Configurator.class.getName());
158 
159         configuratorLog.addAppender(logErrorCatcher);
160 
161         try {
162             new Configurator(PRINCIPAL, PASSWORD);
163         } finally {
164             configuratorLog.removeAppender(logErrorCatcher);
165         }        
166     }
167     
168     /**
169      * Custom appender to catch exceptions that would otherwise disappear in the log.
170      */
171 
172     private static class LogErrorAppender extends AppenderSkeleton {
173         
174         protected void append(LoggingEvent event) {
175             if (event.getLevel().equals(Level.ERROR)) {
176                 Throwable exception = null;
177 
178                 if (event.getThrowableInformation() != null) {
179                     exception = event.getThrowableInformation().getThrowable();
180                 }
181 
182                 throw new RuntimeException(event.getMessage().toString(), exception);
183             }
184         }
185 
186         public void close() {
187         }
188 
189         public boolean requiresLayout() {
190             return false;
191         }
192     }
193 }