1fc95c99cfa4921fef424f3f411d013b821589e69Elliott Hughes/* 2561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Licensed to the Apache Software Foundation (ASF) under one or more 3561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * contributor license agreements. See the NOTICE file distributed with 4561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * this work for additional information regarding copyright ownership. 5561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * The ASF licenses this file to You under the Apache License, Version 2.0 6561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * (the "License"); you may not use this file except in compliance with 7561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * the License. You may obtain a copy of the License at 8fc95c99cfa4921fef424f3f411d013b821589e69Elliott Hughes * 9561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * http://www.apache.org/licenses/LICENSE-2.0 10fc95c99cfa4921fef424f3f411d013b821589e69Elliott Hughes * 11561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Unless required by applicable law or agreed to in writing, software 12561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * distributed under the License is distributed on an "AS IS" BASIS, 13561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * See the License for the specific language governing permissions and 15561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * limitations under the License. 16561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 17561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 18561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespackage org.apache.harmony.logging.tests.java.util.logging; 19561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 20561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.io.IOException; 21561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.io.OutputStream; 22561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.io.UnsupportedEncodingException; 23561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.security.Permission; 24561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Properties; 25561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.logging.ErrorManager; 26561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.logging.Filter; 27561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.logging.Formatter; 28561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.logging.Handler; 29561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.logging.Level; 30561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.logging.LogManager; 31561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.logging.LogRecord; 32561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.logging.LoggingPermission; 33561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.logging.SimpleFormatter; 34561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 35561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport junit.framework.TestCase; 36561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport org.apache.harmony.logging.tests.java.util.logging.util.EnvironmentHelper; 37561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport tests.util.CallVerificationStack; 38561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 39561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes/** 40561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Test suite for the class java.util.logging.Handler. 41561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 42561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespublic class HandlerTest extends TestCase { 438d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath private static String className = HandlerTest.class.getName(); 448d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 458d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath /* 468d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * @see TestCase#setUp() 478d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath */ 488d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath protected void setUp() throws Exception { 498d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath super.setUp(); 508d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 518d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 528d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath /* 538d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * @see TestCase#tearDown() 548d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath */ 558d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath protected void tearDown() throws Exception { 568d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath super.tearDown(); 57561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes CallVerificationStack.getInstance().clear(); 588d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 598d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 608d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath /** 618d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * Constructor for HandlerTest. 628d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * 638d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * @param arg0 648d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath */ 658d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public HandlerTest(String arg0) { 668d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath super(arg0); 678d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 688d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 698d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath /* 708d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * Test the constructor. 718d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath */ 728d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void testConstructor() { 738d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath MockHandler h = new MockHandler(); 748d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertSame(h.getLevel(), Level.ALL); 758d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertNull(h.getFormatter()); 768d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertNull(h.getFilter()); 778d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertNull(h.getEncoding()); 788d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertTrue(h.getErrorManager() instanceof ErrorManager); 798d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 808d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 818d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath /* 828d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * Test the constructor, with properties set 838d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath */ 848d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void testConstructor_Properties() throws Exception { 858d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath Properties p = new Properties(); 868d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath p.put("java.util.logging.MockHandler.level", "FINE"); 878d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath p 888d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath .put("java.util.logging.MockHandler.filter", className 898d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath + "$MockFilter"); 908d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath p.put("java.util.logging.Handler.formatter", className 918d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath + "$MockFormatter"); 928d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath p.put("java.util.logging.MockHandler.encoding", "utf-8"); 938d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath LogManager.getLogManager().readConfiguration( 948d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath EnvironmentHelper.PropertiesToInputStream(p)); 958d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 968d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertEquals(LogManager.getLogManager().getProperty( 978d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath "java.util.logging.MockHandler.level"), "FINE"); 988d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertEquals(LogManager.getLogManager().getProperty( 998d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath "java.util.logging.MockHandler.encoding"), "utf-8"); 1008d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath MockHandler h = new MockHandler(); 1018d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertSame(h.getLevel(), Level.ALL); 1028d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertNull(h.getFormatter()); 1038d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertNull(h.getFilter()); 1048d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertNull(h.getEncoding()); 1058d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertTrue(h.getErrorManager() instanceof ErrorManager); 1068d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath LogManager.getLogManager().reset(); 1078d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 1088d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 1098d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath /* 1108d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * Abstract method, no test needed. 1118d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath */ 1128d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void testClose() { 1138d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath MockHandler h = new MockHandler(); 1148d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath h.close(); 1158d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 1168d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 1178d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath /* 1188d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * Abstract method, no test needed. 1198d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath */ 1208d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void testFlush() { 1218d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath MockHandler h = new MockHandler(); 1228d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath h.flush(); 1238d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 1248d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 1258d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath /* 1268d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * Abstract method, no test needed. 1278d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath */ 1288d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void testPublish() { 1298d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath MockHandler h = new MockHandler(); 1308d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath h.publish(null); 1318d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 1328d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 1338d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath /* 1348d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * Test getEncoding & setEncoding methods with supported encoding. 1358d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath */ 1368d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void testGetSetEncoding_Normal() throws Exception { 1378d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath MockHandler h = new MockHandler(); 1388d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath h.setEncoding("iso-8859-1"); 1398d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertEquals("iso-8859-1", h.getEncoding()); 1408d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 1418d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 1428d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath /* 1438d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * Test getEncoding & setEncoding methods with null. 1448d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath */ 1458d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void testGetSetEncoding_Null() throws Exception { 1468d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath MockHandler h = new MockHandler(); 1478d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath h.setEncoding(null); 1488d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertNull(h.getEncoding()); 1498d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 1508d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 1518d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath /* 1528d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * Test getEncoding & setEncoding methods with unsupported encoding. 1538d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath */ 1548d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void testGetSetEncoding_Unsupported() { 1558d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath MockHandler h = new MockHandler(); 1568d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath try { 1578d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath h.setEncoding("impossible"); 1588d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath fail("Should throw UnsupportedEncodingException!"); 1598d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } catch (UnsupportedEncodingException e) { 1608d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 1618d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertNull(h.getEncoding()); 1628d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 1638d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 1648d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath /* 1658d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * Test getErrorManager & setErrorManager methods with non-null value. 1668d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath */ 1678d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void testGetSetErrorManager_Normal() throws Exception { 1688d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath MockHandler h = new MockHandler(); 1698d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath ErrorManager man = new ErrorManager(); 1708d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath h.setErrorManager(man); 1718d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertSame(man, h.getErrorManager()); 1728d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 1738d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 1748d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath /* 1758d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * Test getErrorManager & setErrorManager methods with null. 1768d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath */ 1778d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void testGetSetErrorManager_Null() throws Exception { 1788d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath MockHandler h = new MockHandler(); 1798d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath // test set null 1808d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath try { 1818d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath h.setErrorManager(null); 1828d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath fail("Should throw NullPointerException!"); 1838d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } catch (NullPointerException e) { 1848d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 1858d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 1868d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath // test reset null 1878d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath try { 1888d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath h.setErrorManager(new ErrorManager()); 1898d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath h.setErrorManager(null); 1908d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath fail("Should throw NullPointerException!"); 1918d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } catch (NullPointerException e) { 1928d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 1938d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 1948d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 1958d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath /* 1968d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * Test getFilter & setFilter methods with non-null value. 1978d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath */ 1988d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void testGetSetFilter_Normal() throws Exception { 1998d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath MockHandler h = new MockHandler(); 2008d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath Filter f = new MockFilter(); 2018d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath h.setFilter(f); 2028d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertSame(f, h.getFilter()); 2038d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 2048d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 2058d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath /* 2068d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * Test getFilter & setFilter methods with null. 2078d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath */ 2088d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void testGetSetFilter_Null() throws Exception { 2098d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath MockHandler h = new MockHandler(); 2108d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath // test set null 2118d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath h.setFilter(null); 2128d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 2138d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath // test reset null 2148d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath h.setFilter(new MockFilter()); 2158d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath h.setFilter(null); 2168d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 2178d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 2188d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath /* 2198d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * Test getFormatter & setFormatter methods with non-null value. 2208d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath */ 2218d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void testGetSetFormatter_Normal() throws Exception { 2228d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath MockHandler h = new MockHandler(); 2238d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath Formatter f = new SimpleFormatter(); 2248d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath h.setFormatter(f); 2258d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertSame(f, h.getFormatter()); 2268d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 2278d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 2288d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath /* 2298d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * Test getFormatter & setFormatter methods with null. 2308d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath */ 2318d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void testGetSetFormatter_Null() throws Exception { 2328d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath MockHandler h = new MockHandler(); 2338d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath // test set null 2348d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath try { 2358d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath h.setFormatter(null); 2368d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath fail("Should throw NullPointerException!"); 2378d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } catch (NullPointerException e) { 2388d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 2398d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 2408d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath // test reset null 2418d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath try { 2428d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath h.setFormatter(new SimpleFormatter()); 2438d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath h.setFormatter(null); 2448d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath fail("Should throw NullPointerException!"); 2458d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } catch (NullPointerException e) { 2468d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 2478d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 2488d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 2498d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath /* 2508d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * Test getLevel & setLevel methods with non-null value. 2518d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath */ 2528d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void testGetSetLevel_Normal() throws Exception { 2538d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath MockHandler h = new MockHandler(); 2548d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath Level f = Level.CONFIG; 2558d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath h.setLevel(f); 2568d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertSame(f, h.getLevel()); 2578d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 2588d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 2598d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath /* 2608d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * Test getLevel & setLevel methods with null. 2618d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath */ 2628d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void testGetSetLevel_Null() throws Exception { 2638d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath MockHandler h = new MockHandler(); 2648d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath // test set null 2658d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath try { 2668d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath h.setLevel(null); 2678d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath fail("Should throw NullPointerException!"); 2688d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } catch (NullPointerException e) { 2698d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 2708d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 2718d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath // test reset null 2728d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath try { 2738d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath h.setLevel(Level.CONFIG); 2748d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath h.setLevel(null); 2758d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath fail("Should throw NullPointerException!"); 2768d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } catch (NullPointerException e) { 2778d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 2788d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 2798d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 2808d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath /* 2818d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * Use no filter 2828d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath */ 2838d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void testIsLoggable_NoFilter() { 2848d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath MockHandler h = new MockHandler(); 2858d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath LogRecord r = new LogRecord(Level.CONFIG, null); 2868d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertTrue(h.isLoggable(r)); 2878d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 2888d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath h.setLevel(Level.CONFIG); 2898d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertTrue(h.isLoggable(r)); 2908d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 2918d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath h.setLevel(Level.SEVERE); 2928d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertFalse(h.isLoggable(r)); 2938d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 2948d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath r.setLevel(Level.OFF); 2958d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath h.setLevel(Level.OFF); 2968d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertFalse(h.isLoggable(r)); 2978d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 2988d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 2998d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath /* 3008d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * Use a filter 3018d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath */ 3028d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void testIsLoggable_WithFilter() { 3038d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath MockHandler h = new MockHandler(); 3048d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath LogRecord r = new LogRecord(Level.CONFIG, null); 3058d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath h.setFilter(new MockFilter()); 3068d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertFalse(h.isLoggable(r)); 3078d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 3088d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath h.setLevel(Level.CONFIG); 3098d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertFalse(h.isLoggable(r)); 3108d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertSame(r, CallVerificationStack.getInstance().pop()); 3118d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 3128d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath h.setLevel(Level.SEVERE); 3138d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertFalse(h.isLoggable(r)); 3148d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertSame(r, CallVerificationStack.getInstance().pop()); 3158d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 3168d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 3178d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath /** 3188d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * @tests java.util.logging.Handler#isLoggable(LogRecord) 3198d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath */ 3208d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void testIsLoggable_Null() { 3218d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath MockHandler h = new MockHandler(); 3228d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath try { 3238d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath h.isLoggable(null); 3248d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath fail("should throw NullPointerException"); 3258d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } catch (NullPointerException e) { 3268d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath // expected 3278d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 3288d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 3298d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 3308d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath /* 3318d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * Used to enable the testing of Handler because Handler is an abstract 3328d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * class. 3338d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath */ 3348d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public static class MockHandler extends Handler { 3358d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 3368d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void close() { 3378d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 3388d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 3398d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void flush() { 3408d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 3418d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 3428d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void publish(LogRecord record) { 3438d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 3448d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 3458d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void reportError(String msg, Exception ex, int code) { 3468d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath super.reportError(msg, ex, code); 3478d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 3488d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 3498d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 3508d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath /* 3518d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * A mock filter, always return false. 3528d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath */ 3538d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public static class MockFilter implements Filter { 3548d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 3558d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public boolean isLoggable(LogRecord record) { 3568d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath CallVerificationStack.getInstance().push(record); 3578d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath return false; 3588d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 3598d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 3608d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 3618d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath /* 3628d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * A mock error manager, used to validate the expected method is called with 3638d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * the expected parameters. 3648d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath */ 3658d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public static class MockErrorManager extends ErrorManager { 3668d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 3678d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void error(String msg, Exception ex, int errorCode) { 3688d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath CallVerificationStack.getInstance().push(msg); 3698d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath CallVerificationStack.getInstance().push(ex); 3708d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath CallVerificationStack.getInstance().push(errorCode); 3718d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 3728d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 3738d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 3748d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public static class NullOutputStream extends OutputStream { 375561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @Override 376561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void write(int arg0) throws IOException { 377561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 378561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 379561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 380561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes} 381