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 }