View Javadoc

1   /**
2    * 
3    */
4   package test.crispy.util;
5   
6   import java.util.HashMap;
7   import java.util.Iterator;
8   import java.util.Map;
9   import java.util.Properties;
10  import java.util.Vector;
11  
12  import javax.swing.tree.DefaultMutableTreeNode;
13  import javax.xml.namespace.QName;
14  
15  import junit.framework.TestCase;
16  import net.sf.crispy.InvocationException;
17  import net.sf.crispy.Property;
18  import net.sf.crispy.impl.MiniServer;
19  import net.sf.crispy.impl.rest.MiniRestServer;
20  import net.sf.crispy.interceptor.StopWatchInterceptor;
21  import net.sf.crispy.util.Util;
22  import test.crispy.JUnitTestException;
23  import test.crispy.example.interceptor.WaitInterceptor;
24  import test.crispy.example.model.Adresse;
25  import test.crispy.example.model.Kunde;
26  import test.crispy.example.service.Calculator;
27  import test.crispy.example.service.CalculatorImpl;
28  import test.crispy.example.service.Echo;
29  import test.crispy.example.service.EchoImpl;
30  
31  /**
32   * @author Linke
33   *
34   */
35  public class UtilTest extends TestCase {
36  
37  	public void testClassNameWithOutPackage() throws Exception {
38  		String lvResult = Util.getClassNameWithOutPackage((Class) null);
39  		assertNull(lvResult);
40  		
41  		lvResult = Util.getClassNameWithOutPackage((String) null);
42  		assertNull(lvResult);
43  		
44  		lvResult = Util.getClassNameWithOutPackage(Echo.class);
45  		assertNotNull(lvResult);
46  		assertEquals(lvResult, "Echo");
47  
48  		lvResult = Util.getClassNameWithOutPackage(Echo.class.getName());
49  		assertNotNull(lvResult);
50  		assertEquals(lvResult, "Echo");
51  		
52  		lvResult = Util.getClassNameWithOutPackage("Dummy");
53  		assertNotNull(lvResult);
54  		assertEquals(lvResult, "Dummy");
55  		
56  		lvResult = Util.getClassNameWithOutPackage("");
57  		assertNotNull(lvResult);
58  		assertEquals(lvResult, "");		
59  	}
60  	
61  	public void testCutString() throws Exception {
62  		String lvCutString = Util.cutString(null, null);
63  		assertNull(lvCutString);
64  
65  		lvCutString = Util.cutString(null, "/");
66  		assertNull(lvCutString);
67  		
68  		lvCutString = Util.cutString("rmi://localhost:1099", null);
69  		assertEquals(lvCutString, "rmi://localhost:1099");
70  		
71  		lvCutString = Util.cutString("rmi://localhost:1099", "-");
72  		assertEquals(lvCutString, "rmi://localhost:1099");
73  
74  		lvCutString = Util.cutString("rmi://localhost:1099/", "/");
75  		assertEquals(lvCutString, "rmi://localhost:1099");
76  	}
77  	
78  	public void testReverse() throws Exception {
79  		String lvReverse = Util.reverse(Kunde.class);
80  		assertEquals(lvReverse, "model.example.crispy.test");
81  		
82  		lvReverse = Util.reverse(null);
83  		assertNull(lvReverse);
84  	}
85  	
86  	public void testCreateQNameByClass() throws Exception {
87  		QName lvQName = Util.createQNameByClass(Kunde.class);
88  		assertEquals(lvQName.getLocalPart(), Kunde.class.getName());
89  		assertEquals(lvQName.getNamespaceURI(), "model.example.crispy.test");
90  		
91  		lvQName = Util.createQNameByClass(null);
92  		assertNull(lvQName);
93  	}
94  	
95  	public void testAllPropertiesByPrefixAndSort() throws Exception {
96  		Properties properties = new Properties();
97      	properties.put(Echo.class.getName(), EchoImpl.class.getName());
98      	properties.put(Calculator.class.getName(), CalculatorImpl.class.getName());
99          properties.put(Property.INTERCEPTOR_CLASS, WaitInterceptor.class.getName());
100         properties.put(Property.INTERCEPTOR_CLASS_2, StopWatchInterceptor.class.getName());		
101 		Map lvSortedMap = Util.getAllPropertiesByPrefixAndSort(properties, Property.INTERCEPTOR_CLASS);
102 		assertTrue(lvSortedMap.size() == 2);
103 		Iterator it = lvSortedMap.values().iterator();
104 		Object o = it.next();
105 		assertEquals(o.toString(), WaitInterceptor.class.getName());
106 		o = it.next();
107 		assertEquals(o.toString(), StopWatchInterceptor.class.getName());
108 	}
109 	
110 	public void testAllPropertiesByPrefixAndSortWithNotValidValue() throws Exception {
111 		Properties properties = new Properties();
112     	properties.put(Echo.class, EchoImpl.class.getName());
113     	try {
114     		Util.getAllPropertiesByPrefixAndSort(properties, Property.INTERCEPTOR_CLASS);
115     		fail("The properties must be a String (not Class)");
116 		} catch (Exception e) {
117 			assertTrue(true);
118 		}
119 	}
120 
121 	public void testIsClassInArray() throws Exception {
122 		boolean isInArray = Util.isClassInArray(null, null);
123 		assertEquals(isInArray, false);
124 		
125 		isInArray = Util.isClassInArray(null, UtilTest.class);
126 		assertEquals(isInArray, false);
127 		
128 		isInArray = Util.isClassInArray(new Class[0], null);
129 		assertEquals(isInArray, false);
130 
131 		isInArray = Util.isClassInArray(new Class[] {ConverterTest.class, UtilTest.class}, this.getClass());
132 		assertEquals(isInArray, true);
133 		
134 		isInArray = Util.isClassInArray(new Class[] {ConverterTest.class, UtilTest.class}, InvokerTest.class);
135 		assertEquals(isInArray, false);
136 		
137 	}
138 	
139 	public void testPrintArray() throws Exception {
140 		String lvResult = Util.printArray(null);
141 		assertEquals("Array is NULL", lvResult);
142 		
143 		lvResult = Util.printArray(new Object[] {new Integer(4711)});
144 		assertEquals("4711 -> java.lang.Integer\n", lvResult);
145 	}
146 	
147 	public void testArray2String() throws Exception {
148 		String lvResult = Util.array2String(null);
149 		assertNull(lvResult);
150 		
151 		lvResult = Util.array2String(new Object [] { new Integer (4711), new Integer (911) });
152 		assertEquals("4711 ; 911 ; ", lvResult);
153 	}
154 	
155 	public void testMap2String() throws Exception {
156 		String lvResult = Util.map2String(null, null);
157 		assertNull(lvResult);
158 		
159 		Map lvMap = new HashMap();
160 		lvMap.put(new Integer(4711), new Integer(911));
161 		lvResult = Util.map2String(lvMap, null);
162 		assertEquals("[4711 = 911] ", lvResult);
163 		
164 		lvMap.put(new Integer(2), new Integer(3));
165 		lvResult = Util.map2String(lvMap, null);		
166 		assertEquals("[2 = 3] [4711 = 911] ", lvResult);
167 		
168 		lvMap.put("class", this.getClass());
169 		lvResult = Util.map2String(lvMap, null);
170 		assertEquals("[2 = 3] [4711 = 911]  -> (class = class test.crispy.util.UtilTest)", lvResult);
171 
172 		lvMap.put("vector", new Vector());
173 		lvResult = Util.map2String(lvMap, null);
174 		assertEquals("[2 = 3] [4711 = 911]  -> (class = class test.crispy.util.UtilTest)", lvResult);
175 		
176 	}
177 	
178 	public void testPrintMapInfo() throws Exception {
179 		Util.printMapInfo(null);
180 		
181 		Map lvMap = new HashMap();
182 		lvMap.put(new Integer(4711), new Integer(911));
183 		Util.printMapInfo(lvMap);
184 	}
185 	
186 	public void testIsPortFree() throws Exception {
187 		boolean isPortFree = Util.isPortFree(7007);
188 		assertTrue(isPortFree);
189 		
190 		MiniServer lvMiniServer = new MiniRestServer(7007);
191 		lvMiniServer.start();
192 		isPortFree = Util.isPortFree(7007);
193 		assertFalse(isPortFree);
194 		lvMiniServer.stop();
195 	}
196 	
197 	public void testCreateTree() throws Exception {		
198 		Util.createTree(null, new DefaultMutableTreeNode());		
199 		Util.createTree(new Integer(7), new DefaultMutableTreeNode());
200 		Util.createTree(new Vector(), new DefaultMutableTreeNode());
201 
202 		Kunde lvKunde = new Kunde("Test");
203 		Adresse lvAdresse1 = new Adresse();
204 		lvAdresse1.setOrt("London");
205 		Adresse lvAdresse2 = new Adresse();
206 		lvAdresse2.setOrt("New York");
207 		lvKunde.getAdressen().add(lvAdresse1);
208 		lvKunde.getAdressen().add(lvAdresse2);
209 		Util.createTree(lvKunde, new DefaultMutableTreeNode());
210 		
211 		Util.createTreeByCollection(lvKunde.getAdressen(), new DefaultMutableTreeNode(), null);
212 		Util.createTreeByCollection(null, new DefaultMutableTreeNode(), null);
213 
214 		Util.createTreeByMap(null, new DefaultMutableTreeNode(), null);
215 		Map lvMap = new HashMap();
216 		lvMap.put(new Integer(4711), new Integer(911));
217 		Util.createTree(lvMap, new DefaultMutableTreeNode());
218 		lvMap.put(new Vector(), new Vector());
219 		Util.createTree(lvMap, new DefaultMutableTreeNode());
220 		lvMap.put(new HashMap(), new HashMap());
221 		Util.createTree(lvMap, new DefaultMutableTreeNode());
222 		
223 		Vector v = new Vector();
224 		v.add(lvKunde.getAdressen());
225 		v.add(lvMap);
226 		Util.createTreeByCollection(v, new DefaultMutableTreeNode(), null);
227 		
228 	}
229 	
230 	public void testcreateObject() throws Exception {
231 		Object o = Util.createObject(null);
232 		assertNull(o);
233 		try {
234 			o = Util.createObject("not.valid.Calss");
235 			fail("Is not a valid Class String");
236 		} catch (Exception e) {
237 			assertTrue(true);
238 		}
239 		o = Util.createObject(EchoImpl.class.getName());
240 		assertNotNull(o);
241 		assertTrue(o instanceof EchoImpl);
242 	}
243 	
244 	public void testSeparateUrlAndPortWithNullValue() throws Exception {
245 		String lvUrlAndPort[] = Util.separateHostAndPort(null);
246 		assertNull(lvUrlAndPort);
247 	}
248 	
249 	public void testSeparateUrlAndPort() throws Exception {
250 		String lvUrlAndPort[] = Util.separateHostAndPort("myhost.com:8182");
251 		assertNotNull(lvUrlAndPort);
252 		assertEquals(lvUrlAndPort.length, 2);
253 		assertEquals(lvUrlAndPort[0], "myhost.com");
254 		assertEquals(lvUrlAndPort[1], "8182");
255 	}
256 
257 	public void testSeparateUrlAndPortInvalideUrl() throws Exception {
258 		try {
259 			String lvUrlAndPort[] = Util.separateHostAndPort("myhost.com");
260 			fail("Illegal Url and Port must throw Exception");
261 		} catch (IllegalArgumentException e) {
262 			assertTrue(true);
263 		}
264 		
265 		try {
266 			String lvUrlAndPort[] = Util.separateHostAndPort("myhost.com:abc");
267 			fail("Illegal Port must throw Exception");
268 		} catch (IllegalArgumentException e) {
269 			assertTrue(true);
270 		}
271 	}
272 
273 	public void testFindDeepestThrowable() throws Exception {
274 		String lvMessage = "JUnit-Test-Message";
275 		InvocationException lvException = new InvocationException(lvMessage);
276 		Throwable lvFindThrowable = Util.findDeepestThrowable(lvException);
277 		assertNotNull(lvFindThrowable);
278 		assertEquals(lvFindThrowable.getMessage(), lvMessage);
279 	}
280 	
281 	public void testFindDeepestThrowable2() throws Exception {
282 		String lvMessage = "JUnit-Test-Message";
283 		JUnitTestException lvUnitTestException = new JUnitTestException(lvMessage);
284 		InvocationException lvException = new InvocationException("No-Message", lvUnitTestException);
285 		
286 		Throwable lvFindThrowable = Util.findDeepestThrowable(lvException);
287 		assertNotNull(lvFindThrowable);
288 		assertEquals(lvFindThrowable.getMessage(), lvMessage);
289 	}
290 	
291 	public void testFindDeepestThrowable3() throws Exception {
292 		String lvMessage = "JUnit-Test-Message";
293 		JUnitTestException lvUnitTestException = new JUnitTestException(lvMessage);
294 		InvocationException lvException = new InvocationException("No-Message-1", lvUnitTestException);
295 		InvocationException lvException2 = new InvocationException("No-Message-2", lvException);
296 		
297 		Throwable lvFindThrowable = Util.findDeepestThrowable(lvException2);
298 		assertNotNull(lvFindThrowable);
299 		assertEquals(lvFindThrowable.getMessage(), lvMessage);
300 		
301 		lvFindThrowable = Util.findDeepestThrowable(lvException);
302 		assertNotNull(lvFindThrowable);
303 		assertEquals(lvFindThrowable.getMessage(), lvMessage);
304 	}
305 
306 
307 }