1021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson/* 2021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson * Licensed to the Apache Software Foundation (ASF) under one or more 3021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson * contributor license agreements. See the NOTICE file distributed with 4021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson * this work for additional information regarding copyright ownership. 5021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson * The ASF licenses this file to You under the Apache License, Version 2.0 6021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson * (the "License"); you may not use this file except in compliance with 7021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson * the License. You may obtain a copy of the License at 8021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson * 9021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson * http://www.apache.org/licenses/LICENSE-2.0 10021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson * 11021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson * Unless required by applicable law or agreed to in writing, software 12021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson * distributed under the License is distributed on an "AS IS" BASIS, 13021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson * See the License for the specific language governing permissions and 15021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson * limitations under the License. 16021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson */ 17021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson 18021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilsonpackage libcore.java.util.logging; 19021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson 20021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson 21021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilsonimport java.io.IOException; 22021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilsonimport java.io.InputStream; 23021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilsonimport java.util.Enumeration; 24021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilsonimport java.util.Properties; 25021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilsonimport java.util.logging.Handler; 26021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilsonimport java.util.logging.LogManager; 27021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilsonimport java.util.logging.LogRecord; 28021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilsonimport java.util.logging.Logger; 29021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilsonimport junit.framework.TestCase; 30021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson 31021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilsonpublic class OldLogManagerTest extends TestCase { 32021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson 33021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson private static final String FOO = "LogManagerTestFoo"; 34021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson 35021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson LogManager mockManager; 36021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson 37021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson LogManager manager = LogManager.getLogManager(); 38021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson 39021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson Properties props; 40021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson 41021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson private static String className = OldLogManagerTest.class.getName(); 42021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson 43021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson static Handler handler = null; 44021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson 45021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson @Override protected void setUp() throws Exception { 46021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson super.setUp(); 47021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson mockManager = new MockLogManager(); 48021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson handler = new MockHandler(); 49021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson props = new Properties(); 50021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson props.put("handlers", className + "$MockHandler " + className + "$MockHandler"); 51021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson props.put("java.util.logging.FileHandler.pattern", "%h/java%u.log"); 52021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson props.put("java.util.logging.FileHandler.limit", "50000"); 53021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson props.put("java.util.logging.FileHandler.count", "5"); 54021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson props.put("java.util.logging.FileHandler.formatter", "java.util.logging.XMLFormatter"); 55021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson props.put(".level", "FINE"); 56021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson props.put("java.util.logging.ConsoleHandler.level", "OFF"); 57021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson props.put("java.util.logging.ConsoleHandler.formatter","java.util.logging.SimpleFormatter"); 58021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson props.put("LogManagerTestFoo.handlers", "java.util.logging.ConsoleHandler"); 59021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson props.put("LogManagerTestFoo.level", "WARNING"); 60021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson } 61021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson 62021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson 63021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson 64021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson /* 65021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson * @see TestCase#tearDown() 66021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson */ 67021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson @Override 68021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson protected void tearDown() throws Exception { 69021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson super.tearDown(); 70021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson handler = null; 71021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson } 72021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson 73021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson public void testLogManager() { 74021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson class TestLogManager extends LogManager { 75021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson public TestLogManager() { 76021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson super(); 77021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson } 78021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson } 79021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson TestLogManager tlm = new TestLogManager(); 80021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson assertNotNull(tlm.toString()); 81021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson } 82021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson 83021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson /* 84021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson * test for method public Logger getLogger(String name) 85021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson * test covers following use cases: 86021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson * case 1: test default and valid value 87021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson * case 2: test throw NullPointerException 88021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson * case 3: test bad name 89021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson * case 4: check correct tested value 90021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson */ 91021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson 92021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson public void testGetLogger() throws Exception { 93021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson 94021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson // case 1: test default and valid value 95021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson Logger log = new MockLogger(FOO, null); 96021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson Logger foo = mockManager.getLogger(FOO); 97021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson assertNull("Logger should be null", foo); 98021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson assertTrue("logger wasn't registered successfully", mockManager.addLogger(log)); 99021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson foo = mockManager.getLogger(FOO); 100021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson assertSame("two loggers not refer to the same object", foo, log); 101021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson assertNull("logger foo should not haven parent", foo.getParent()); 102021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson 103021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson // case 2: test throw NullPointerException 104021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson try { 105021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson mockManager.getLogger(null); 106021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson fail("get null should throw NullPointerException"); 107021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson } catch (NullPointerException e) { 108021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson } 109021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson 110021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson // case 3: test bad name 111021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson assertNull("LogManager should not have logger with unforeseen name", mockManager 112021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson .getLogger("bad name")); 113021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson 114021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson // case 4: check correct tested value 115021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson Enumeration<String> enumar = mockManager.getLoggerNames(); 116021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson int i = 0; 117021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson while (enumar.hasMoreElements()) { 118021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson String name = enumar.nextElement(); 119021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson i++; 120021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson assertEquals("name logger should be equal to foreseen name", FOO, name); 121021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson } 122021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson assertEquals("LogManager should contain one element", 1, i); 123021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson } 124021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson 125021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson /* 126021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson * test for method public Logger getLogger(String name) 127021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson */ 128021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson public void testGetLogger_duplicateName() throws Exception { 129021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson // test duplicate name 130021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson // add logger with duplicate name has no effect 131021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson mockManager.reset(); 132021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson Logger foo2 = new MockLogger(FOO, null); 133021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson Logger foo3 = new MockLogger(FOO, null); 134021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson mockManager.addLogger(foo2); 135021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson assertSame(foo2, mockManager.getLogger(FOO)); 136021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson mockManager.addLogger(foo3); 137021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson assertSame(foo2, mockManager.getLogger(FOO)); 138021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson 139021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson Enumeration<String> enumar2 = mockManager.getLoggerNames(); 140021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson int i = 0; 141021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson while (enumar2.hasMoreElements()) { 142021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson enumar2.nextElement(); 143021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson i++; 144021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson } 145021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson assertEquals(1, i); 146021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson } 147021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson 148021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson /* 149021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson * test for method public Logger getLogger(String name) 150021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson */ 151021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson public void testGetLogger_hierarchy() throws Exception { 152021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson // test hierarchy 153021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson Logger foo = new MockLogger("testGetLogger_hierachy.foo", null); 154021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson // but for non-mock LogManager, foo's parent should be root 155021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson assertTrue(manager.addLogger(foo)); 156021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson assertSame(manager.getLogger(""), manager.getLogger("testGetLogger_hierachy.foo") 157021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson .getParent()); 158021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson } 159021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson 160021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson /* 161021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson * test for method public Logger getLogger(String name) 162021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson */ 163021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson public void testGetLogger_nameSpace() throws Exception { 164021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson // test name with space 165021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson Logger foo = new MockLogger(FOO, null); 166021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson Logger fooBeforeSpace = new MockLogger(FOO + " ", null); 167021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson Logger fooAfterSpace = new MockLogger(" " + FOO, null); 168021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson Logger fooWithBothSpace = new MockLogger(" " + FOO + " ", null); 169021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson assertTrue(mockManager.addLogger(foo)); 170021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson assertTrue(mockManager.addLogger(fooBeforeSpace)); 171021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson assertTrue(mockManager.addLogger(fooAfterSpace)); 172021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson assertTrue(mockManager.addLogger(fooWithBothSpace)); 173021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson 174021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson assertSame(foo, mockManager.getLogger(FOO)); 175021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson assertSame(fooBeforeSpace, mockManager.getLogger(FOO + " ")); 176021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson assertSame(fooAfterSpace, mockManager.getLogger(" " + FOO)); 177021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson assertSame(fooWithBothSpace, mockManager.getLogger(" " + FOO + " ")); 178021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson } 179021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson 180021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson /* 181021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson * test for method public void checkAccess() throws SecurityException 182021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson */ 183021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson public void testCheckAccess() { 184021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson try { 185021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson manager.checkAccess(); 186021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson } catch (SecurityException e) { 187021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson fail("securityException should not be thrown"); 188021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson } 189021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson } 190021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson 191021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson public void testReadConfiguration() throws SecurityException, 192021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson IOException { 193021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson 194021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson MockConfigLogManager lm = new MockConfigLogManager(); 195021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson assertFalse(lm.isCalled); 196021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson 197021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson lm.readConfiguration(); 198021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson assertTrue(lm.isCalled); 199021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson } 200021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson 201021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson public void testReadConfigurationInputStream_IOException_1parm() throws SecurityException { 202021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson try { 203021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson mockManager.readConfiguration(new MockInputStream()); 204021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson fail("should throw IOException"); 205021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson } catch (IOException expected) { 206021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson } 207021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson } 208021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson 209021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson public static class MockInputStream extends InputStream { 210021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson @Override public int read() throws IOException { 211021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson throw new IOException(); 212021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson } 213021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson } 214021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson 215021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson public static class MockLogger extends Logger { 216021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson public MockLogger(String name, String rbName) { 217021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson super(name, rbName); 218021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson } 219021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson } 220021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson 221021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson public static class MockLogManager extends LogManager {} 222021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson 223021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson public static class MockConfigLogManager extends LogManager { 224021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson public boolean isCalled = false; 225021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson 226021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson public void readConfiguration(InputStream ins) throws IOException { 227021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson isCalled = true; 228021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson super.readConfiguration(ins); 229021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson } 230021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson } 231021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson 232021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson public static class MockHandler extends Handler { 233021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson static int number = 0; 234021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson 235021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson public MockHandler() { 236021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson addNumber(); 237021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson } 238021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson 239021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson private synchronized void addNumber() { 240021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson number++; 241021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson } 242021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson 243021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson public void close() { 244021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson minusNumber(); 245021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson } 246021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson 247021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson private synchronized void minusNumber() { 248021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson number--; 249021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson } 250021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson 251021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson public void flush() {} 252021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson 253021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson public void publish(LogRecord record) {} 254021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson } 255021f5003db85c4fbdc597aa7bb8fbb1e1dc9ab6bJesse Wilson} 256