1e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott 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
8e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes *
9561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *     http://www.apache.org/licenses/LICENSE-2.0
10e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott 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
2084bf48564a8560403bd77eee23f7fad63e50340eNeil Fullerimport junit.framework.TestCase;
2184bf48564a8560403bd77eee23f7fad63e50340eNeil Fuller
2284bf48564a8560403bd77eee23f7fad63e50340eNeil Fullerimport org.apache.harmony.logging.tests.java.util.logging.util.EnvironmentHelper;
2384bf48564a8560403bd77eee23f7fad63e50340eNeil Fuller
2484bf48564a8560403bd77eee23f7fad63e50340eNeil Fullerimport java.io.InputStream;
2584bf48564a8560403bd77eee23f7fad63e50340eNeil Fullerimport java.util.Arrays;
26561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Locale;
27561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.MissingResourceException;
28561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Properties;
29561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.ResourceBundle;
30561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.logging.Filter;
31561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.logging.Handler;
32561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.logging.Level;
33561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.logging.LogManager;
34561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.logging.LogRecord;
35561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.logging.Logger;
36561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
37561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport tests.util.CallVerificationStack;
38561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
39561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes/**
40561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Test suite for the class java.util.logging.Logger.
41561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */
42561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespublic class LoggerTest extends TestCase {
43561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
4484bf48564a8560403bd77eee23f7fad63e50340eNeil Fuller    private final static String VALID_RESOURCE_BUNDLE = "bundles/com/android/java/util/logging/res";
45561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
4684bf48564a8560403bd77eee23f7fad63e50340eNeil Fuller    private final static String VALID_RESOURCE_BUNDLE2 =
4784bf48564a8560403bd77eee23f7fad63e50340eNeil Fuller            "bundles/com/android/java/util/logging/res2";
48561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
4984bf48564a8560403bd77eee23f7fad63e50340eNeil Fuller    private final static String VALID_RESOURCE_BUNDLE3 =
5084bf48564a8560403bd77eee23f7fad63e50340eNeil Fuller            "bundles/com/android/java/util/logging/res3";
51561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
528d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    private final static String INVALID_RESOURCE_BUNDLE = "impossible_not_existing";
53e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes
5484bf48564a8560403bd77eee23f7fad63e50340eNeil Fuller    private final static String LOGGING_CONFIG_RESOURCE =
5584bf48564a8560403bd77eee23f7fad63e50340eNeil Fuller            "config/com/android/java/util/logging/logging.config";
56561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
578d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    private final static String VALID_KEY = "LOGGERTEST";
58561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
598d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    private final static String VALID_VALUE = "Test_ZH_CN";
60561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
618d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    private final static String VALID_VALUE2 = "Test_NoLocale2";
62561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
638d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    private Logger sharedLogger = null;
64561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
658d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    private Locale oldLocale = null;
66e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes
678d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
688d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * @see TestCase#setUp()
698d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
708d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    protected void setUp() throws Exception {
718d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        super.setUp();
728d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        oldLocale = Locale.getDefault();
738d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Locale.setDefault(new Locale("zh", "CN"));
748d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        sharedLogger = new MockLogger("SharedLogger", VALID_RESOURCE_BUNDLE);
758d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        sharedLogger.addHandler(new MockHandler());
768d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
77561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
788d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
798d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Reset the log manager.
808d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
818d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    protected void tearDown() throws Exception {
82561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        CallVerificationStack.getInstance().clear();
838d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Locale.setDefault(oldLocale);
84561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        super.tearDown();
858d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
868d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
878d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /**
888d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath     * Constructor for LoggerTest.
898d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath     *
908d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath     * @param arg0
918d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath     */
928d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public LoggerTest(String arg0) {
938d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        super(arg0);
948d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
958d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
968d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
978d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test the global logger
988d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
998d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testGlobalLogger() {
1008d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(Logger.global.getFilter());
1018d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(0, Logger.global.getHandlers().length);
1028d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(Logger.global.getLevel());
1038d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals("global", Logger.global.getName());
1048d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(Logger.global.getParent().getParent());
1058d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(Logger.global.getResourceBundle());
1068d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(Logger.global.getResourceBundleName());
1078d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(Logger.global.getUseParentHandlers());
1088d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(Logger.global, Logger.getLogger("global"));
1098d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(Logger.global, LogManager.getLogManager()
1108d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                .getLogger("global"));
1118d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
1128d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
1138d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
1148d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test constructor under normal conditions.
1158d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      *
1168d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * TODO: using a series of class loaders to load resource bundles
1178d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
1188d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testConstructor_Normal() {
1198d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        MockLogger mlog = new MockLogger("myname", VALID_RESOURCE_BUNDLE);
1208d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(mlog.getFilter());
1218d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(0, mlog.getHandlers().length);
1228d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(mlog.getLevel());
1238d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals("myname", mlog.getName());
1248d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(mlog.getParent());
1258d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        ResourceBundle rb = mlog.getResourceBundle();
1268d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(VALID_VALUE, rb.getString(VALID_KEY));
1278d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(mlog.getResourceBundleName(), VALID_RESOURCE_BUNDLE);
1288d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(mlog.getUseParentHandlers());
1298d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
1308d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
1318d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
1328d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test constructor with null parameters.
1338d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
1348d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testConstructor_Null() {
1358d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        MockLogger mlog = new MockLogger(null, null);
1368d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(mlog.getFilter());
1378d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(0, mlog.getHandlers().length);
1388d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(mlog.getLevel());
1398d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(mlog.getName());
1408d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(mlog.getParent());
1418d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(mlog.getResourceBundle());
1428d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(mlog.getResourceBundleName());
1438d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(mlog.getUseParentHandlers());
1448d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
1458d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
1468d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
1478d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test constructor with invalid name.
1488d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
1498d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testConstructor_InvalidName() {
1508d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        MockLogger mlog = new MockLogger("...#$%%^&&()-_+=!@~./,[]{};:'\\\"?|",
1518d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                null);
1528d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals("...#$%%^&&()-_+=!@~./,[]{};:'\\\"?|", mlog.getName());
1538d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
1548d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
1558d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
1568d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test constructor with empty name.
1578d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
1588d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testConstructor_EmptyName() {
1598d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        MockLogger mlog = new MockLogger("", null);
1608d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals("", mlog.getName());
1618d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
1628d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
1638d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
1648d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test constructor with invalid resource bundle name.
1658d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
1668d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testConstructor_InvalidResourceBundle() {
1678d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        try {
1688d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath            new MockLogger(null, INVALID_RESOURCE_BUNDLE);
1698d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath            fail("Should throw MissingResourceException!");
1708d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        } catch (MissingResourceException e) {
1718d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        }
1728d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        // try empty string
1738d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        try {
1748d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath            new MockLogger(null, "");
1758d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath            fail("Should throw MissingResourceException!");
1768d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        } catch (MissingResourceException e) {
1778d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        }
1788d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
1798d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
1808d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
1818d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test getAnonymousLogger(String resourceBundleName) with valid resource
1828d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * bundle.
1838d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
1848d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testGetAnonymousLogger_ValidResourceBundle() {
1858d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger alog = Logger.getAnonymousLogger(VALID_RESOURCE_BUNDLE);
1868d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNotSame(alog, Logger.getAnonymousLogger(VALID_RESOURCE_BUNDLE));
1878d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(alog.getFilter());
1888d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(0, alog.getHandlers().length);
1898d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(alog.getLevel());
1908d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(alog.getName());
1918d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(alog.getParent().getParent());
1928d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(VALID_VALUE, alog.getResourceBundle().getString(VALID_KEY));
1938d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(alog.getResourceBundleName(), VALID_RESOURCE_BUNDLE);
1948d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(alog.getUseParentHandlers());
1958d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
1968d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
1978d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
1988d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test getAnonymousLogger(String resourceBundleName) with null resource
1998d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * bundle.
2008d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
2018d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testGetAnonymousLogger_NullResourceBundle() {
2028d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger alog = Logger.getAnonymousLogger(null);
2038d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNotSame(alog, Logger.getAnonymousLogger(null));
2048d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(alog.getFilter());
2058d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(0, alog.getHandlers().length);
2068d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(alog.getLevel());
2078d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(alog.getName());
2088d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(alog.getParent().getParent());
2098d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(alog.getResourceBundle());
2108d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(alog.getResourceBundleName());
2118d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(alog.getUseParentHandlers());
2128d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
2138d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
2148d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
2158d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test getAnonymousLogger(String resourceBundleName) with invalid resource
2168d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * bundle.
2178d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
2188d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testGetAnonymousLogger_InvalidResourceBundle() {
2198d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        try {
2208d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath            Logger.getAnonymousLogger(INVALID_RESOURCE_BUNDLE);
2218d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath            fail("Should throw MissingResourceException!");
2228d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        } catch (MissingResourceException e) {
2238d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        }
2248d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        // try empty name
2258d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        try {
2268d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath            Logger.getAnonymousLogger("");
2278d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath            fail("Should throw MissingResourceException!");
2288d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        } catch (MissingResourceException e) {
2298d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        }
2308d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
2318d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
2328d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
2338d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test getLogger(String), getting a logger with no parent.
2348d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
2358d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testGetLogger_Normal() throws Exception {
2368d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        // config the level
2378d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Properties p = new Properties();
2388d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        p.put("testGetLogger_Normal_ANewLogger.level", "ALL");
2398d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        LogManager.getLogManager().readConfiguration(
2408d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                EnvironmentHelper.PropertiesToInputStream(p));
2418d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
2428d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(LogManager.getLogManager().getLogger(
2438d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                "testGetLogger_Normal_ANewLogger"));
2448d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        // create a new logger
2458d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger log = Logger.getLogger("testGetLogger_Normal_ANewLogger");
2468d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        // get an existing logger
2478d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(log, Logger.getLogger("testGetLogger_Normal_ANewLogger"));
2488d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        // check it has been registered
2498d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(log, LogManager.getLogManager().getLogger(
2508d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                "testGetLogger_Normal_ANewLogger"));
2518d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
2528d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(log.getFilter());
2538d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(0, log.getHandlers().length);
2548d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        // check it's set to the preconfigured level
2558d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(Level.ALL, log.getLevel());
2568d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals("testGetLogger_Normal_ANewLogger", log.getName());
2578d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(log.getParent().getParent());
2588d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(log.getResourceBundle());
2598d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(log.getResourceBundleName());
2608d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(log.getUseParentHandlers());
2618d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
2628d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
2638d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
2648d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test getLogger(String), getting a logger with invalid level configured.
2658d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
2668d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testGetLogger_InvalidLevel() throws Exception {
2678d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        // config the level
2688d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Properties p = new Properties();
2698d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        p
2708d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                .put("testGetLogger_InvalidLevel_ANewLogger.level",
2718d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                        "impossible_level");
2728d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        LogManager.getLogManager().readConfiguration(
2738d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                EnvironmentHelper.PropertiesToInputStream(p));
2748d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
2758d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(LogManager.getLogManager().getLogger(
2768d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                "testGetLogger_InvalidLevel_ANewLogger"));
2778d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        // create a new logger
2788d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger log = Logger.getLogger("testGetLogger_InvalidLevel_ANewLogger");
2798d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        // get an existing logger
2808d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(log, Logger
2818d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                .getLogger("testGetLogger_InvalidLevel_ANewLogger"));
2828d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        // check it has been registered
2838d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(log, LogManager.getLogManager().getLogger(
2848d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                "testGetLogger_InvalidLevel_ANewLogger"));
2858d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(log.getLevel());
2868d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
2878d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
2888d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
2898d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test getLogger(String) with null name.
2908d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
2918d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testGetLogger_Null() {
2928d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        try {
2938d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath            Logger.getLogger(null);
2948d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath            fail("Should throw NullPointerException!");
2958d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        } catch (NullPointerException e) {
2968d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        }
297561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        Logger logger = Logger.getLogger("", null);
298561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertNull(logger.getResourceBundleName());
299e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes        assertNull(logger.getResourceBundle());
3008d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
3018d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
3028d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
3038d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test getLogger(String) with invalid name.
3048d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
3058d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testGetLogger_Invalid() {
3068d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger log = Logger.getLogger("...#$%%^&&()-_+=!@~./,[]{};:'\\\"?|");
3078d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals("...#$%%^&&()-_+=!@~./,[]{};:'\\\"?|", log.getName());
3088d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
3098d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
3108d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
3118d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test getLogger(String) with empty name.
3128d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
3138d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testGetLogger_Empty() {
3148d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNotNull(LogManager.getLogManager().getLogger(""));
3158d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger log = Logger.getLogger("");
3168d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(log, LogManager.getLogManager().getLogger(""));
3178d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(log.getFilter());
3188d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(0, log.getHandlers().length);
3198d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        // check it's set to the preconfigured level
3208d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(Level.INFO, log.getLevel());
3218d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals("", log.getName());
3228d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(log.getParent());
3238d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(log.getResourceBundle());
3248d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(log.getResourceBundleName());
3258d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(log.getUseParentHandlers());
3268d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
3278d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
3288d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
3298d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test getLogger(String), getting a logger with existing parent.
3308d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
3318d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testGetLogger_WithParentNormal() {
3328d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(LogManager.getLogManager().getLogger(
3338d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                "testGetLogger_WithParent_ParentLogger"));
3348d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        // create the parent logger
3358d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger pLog = Logger.getLogger("testGetLogger_WithParent_ParentLogger",
3368d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                VALID_RESOURCE_BUNDLE);
3378d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        pLog.setLevel(Level.CONFIG);
3388d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        pLog.addHandler(new MockHandler());
3398d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        pLog.setFilter(new MockFilter());
3408d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        pLog.setUseParentHandlers(false);
3418d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
3428d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(LogManager.getLogManager().getLogger(
3438d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                "testGetLogger_WithParent_ParentLogger.child"));
3448d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        // create the child logger
3458d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger log = Logger
3468d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                .getLogger("testGetLogger_WithParent_ParentLogger.child");
3478d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(log.getFilter());
3488d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(0, log.getHandlers().length);
3498d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(log.getLevel());
3508d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals("testGetLogger_WithParent_ParentLogger.child", log
3518d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                .getName());
3528d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(log.getParent(), pLog);
3538d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(log.getResourceBundle());
3548d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(log.getResourceBundleName());
3558d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(log.getUseParentHandlers());
3568d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
3578d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
3588d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    // /*
3598d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    // * Test getLogger(String), getting a logger with existing parent, using
3608d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    // * abnormal names (containing '.').
3618d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    // */
3628d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    // public void testGetLogger_WithParentAbnormal() {
3638d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    // Logger log = Logger.getLogger(".");
3648d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    // assertSame(log.getParent(), Logger.getLogger(""));
3658d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    // Logger log2 = Logger.getLogger("..");
3668d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    // assertSame(log2.getParent(), Logger.getLogger(""));
3678d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    // //TODO: a lot more can be tested
3688d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    // }
3698d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
3708d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
3718d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test getLogger(String, String), getting a logger with no parent.
3728d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
3738d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testGetLoggerWithRes_Normal() throws Exception {
3748d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        // config the level
3758d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Properties p = new Properties();
3768d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        p.put("testGetLoggerWithRes_Normal_ANewLogger.level", "ALL");
3778d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        LogManager.getLogManager().readConfiguration(
3788d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                EnvironmentHelper.PropertiesToInputStream(p));
3798d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
3808d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(LogManager.getLogManager().getLogger(
3818d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                "testGetLoggerWithRes_Normal_ANewLogger"));
3828d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        // create a new logger
3838d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger log = Logger.getLogger("testGetLoggerWithRes_Normal_ANewLogger",
3848d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                VALID_RESOURCE_BUNDLE);
3858d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        // get an existing logger
3868d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(log, Logger
3878d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                .getLogger("testGetLoggerWithRes_Normal_ANewLogger"));
3888d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        // check it has been registered
3898d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(log, LogManager.getLogManager().getLogger(
3908d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                "testGetLoggerWithRes_Normal_ANewLogger"));
3918d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
3928d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(log.getFilter());
3938d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(0, log.getHandlers().length);
3948d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        // check it's set to the preconfigured level
3958d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(Level.ALL, log.getLevel());
3968d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals("testGetLoggerWithRes_Normal_ANewLogger", log.getName());
3978d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(log.getParent().getParent());
3988d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(VALID_VALUE, log.getResourceBundle().getString(VALID_KEY));
3998d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(log.getResourceBundleName(), VALID_RESOURCE_BUNDLE);
4008d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(log.getUseParentHandlers());
4018d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
4028d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
4038d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
4048d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test getLogger(String, String) with null parameters.
4058d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
4068d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testGetLoggerWithRes_Null() {
4078d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger.getLogger("testGetLoggerWithRes_Null_ANewLogger", null);
4088d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        try {
4098d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath            Logger.getLogger(null, VALID_RESOURCE_BUNDLE);
4108d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath            fail("Should throw NullPointerException!");
4118d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        } catch (NullPointerException e) {
4128d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        }
4138d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
4148d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
4158d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
4168d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test getLogger(String, String) with invalid resource bundle.
4178d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
4188d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testGetLoggerWithRes_InvalidRes() {
4198d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        try {
4208d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath            Logger.getLogger("", INVALID_RESOURCE_BUNDLE);
4218d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath            fail("Should throw MissingResourceException!");
4228d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        } catch (MissingResourceException e) {
4238d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        }
4248d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(Logger.getLogger("").getResourceBundle());
4258d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(Logger.getLogger("").getResourceBundleName());
4268d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        // try empty string
4278d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        try {
4288d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath            Logger.getLogger("", "");
4298d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath            fail("Should throw MissingResourceException!");
4308d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        } catch (MissingResourceException e) {
4318d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        }
4328d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
4338d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
4348d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
4358d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test getLogger(String, String) with valid resource bundle, to get an
4368d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * existing logger with no associated resource bundle.
4378d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
4388d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testGetLoggerWithRes_ExistingLoggerWithNoRes() {
4398d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(LogManager.getLogManager().getLogger(
4408d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                "testGetLoggerWithRes_ExistingLoggerWithNoRes_ANewLogger"));
4418d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        // create a new logger
4428d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger log1 = Logger
4438d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                .getLogger("testGetLoggerWithRes_ExistingLoggerWithNoRes_ANewLogger");
4448d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        // get an existing logger
4458d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger log2 = Logger.getLogger(
4468d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                "testGetLoggerWithRes_ExistingLoggerWithNoRes_ANewLogger",
4478d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                VALID_RESOURCE_BUNDLE);
4488d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(log1, log2);
4498d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(VALID_VALUE, log1.getResourceBundle().getString(VALID_KEY));
4508d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(log1.getResourceBundleName(), VALID_RESOURCE_BUNDLE);
4518d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
4528d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
4538d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
4548d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test getLogger(String, String) with valid resource bundle, to get an
4558d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * existing logger with the same associated resource bundle.
4568d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
4578d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testGetLoggerWithRes_ExistingLoggerWithSameRes() {
4588d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(LogManager.getLogManager().getLogger(
4598d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                "testGetLoggerWithRes_ExistingLoggerWithSameRes_ANewLogger"));
4608d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        // create a new logger
4618d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger log1 = Logger.getLogger(
4628d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                "testGetLoggerWithRes_ExistingLoggerWithSameRes_ANewLogger",
4638d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                VALID_RESOURCE_BUNDLE);
4648d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        // get an existing logger
4658d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger log2 = Logger.getLogger(
4668d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                "testGetLoggerWithRes_ExistingLoggerWithSameRes_ANewLogger",
4678d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                VALID_RESOURCE_BUNDLE);
4688d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(log1, log2);
4698d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(VALID_VALUE, log1.getResourceBundle().getString(VALID_KEY));
4708d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(log1.getResourceBundleName(), VALID_RESOURCE_BUNDLE);
4718d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
4728d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
4738d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
4748d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test getLogger(String, String) with valid resource bundle, to get an
4758d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * existing logger with different associated resource bundle.
4768d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
4778d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testGetLoggerWithRes_ExistingLoggerWithDiffRes() {
478561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertNull(LogManager.getLogManager().getLogger(
479561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                "testGetLoggerWithRes_ExistingLoggerWithDiffRes_ANewLogger"));
480561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // create a new logger
481561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        Logger log1 = Logger.getLogger(
482561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                "testGetLoggerWithRes_ExistingLoggerWithDiffRes_ANewLogger",
483561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                VALID_RESOURCE_BUNDLE);
484561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertNotNull(log1);
485561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // get an existing logger
486561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
487561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Logger.getLogger("testGetLoggerWithRes_ExistingLoggerWithDiffRes_ANewLogger",
488561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                    VALID_RESOURCE_BUNDLE2);
489561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw IllegalArgumentException!");
490561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IllegalArgumentException e) {
491561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
492561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
493561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
494561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            Logger.getLogger("testGetLoggerWithRes_ExistingLoggerWithDiffRes_ANewLogger", null);
495561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw IllegalArgumentException!");
496561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IllegalArgumentException e) {
497561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
498561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
499561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
5008d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
5018d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test getLogger(String, String) with invalid name.
5028d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
5038d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testGetLoggerWithRes_InvalidName() {
5048d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger log = Logger.getLogger(
5058d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                "...#$%%^&&()-_+=!@~./,[]{};:'\\\"?|WithRes",
5068d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                VALID_RESOURCE_BUNDLE);
5078d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals("...#$%%^&&()-_+=!@~./,[]{};:'\\\"?|WithRes", log
5088d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                .getName());
5098d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
510561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
5118d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
5128d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test getLogger(String, String) with empty name.
5138d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
5148d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testGetLoggerWithRes_Empty() {
5158d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger log = Logger.getLogger("", VALID_RESOURCE_BUNDLE);
5168d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(log, LogManager.getLogManager().getLogger(""));
5178d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(log.getFilter());
5188d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(0, log.getHandlers().length);
5198d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        // check it's set to the preconfigured level
5208d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(Level.INFO, log.getLevel());
5218d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals("", log.getName());
5228d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(log.getParent());
5238d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(VALID_VALUE, log.getResourceBundle().getString(VALID_KEY));
5248d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(log.getResourceBundleName(), VALID_RESOURCE_BUNDLE);
5258d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(log.getUseParentHandlers());
5268d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
5278d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
5288d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
5298d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test getLogger(String, String), getting a logger with existing parent.
5308d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
5318d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testGetLoggerWithRes_WithParentNormal() {
5328d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(LogManager.getLogManager().getLogger(
5338d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                "testGetLoggerWithRes_WithParent_ParentLogger"));
5348d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        // create the parent logger
5358d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger pLog = Logger
5368d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                .getLogger("testGetLoggerWithRes_WithParent_ParentLogger");
5378d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        pLog.setLevel(Level.CONFIG);
5388d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        pLog.addHandler(new MockHandler());
5398d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        pLog.setFilter(new MockFilter());
5408d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        pLog.setUseParentHandlers(false);
5418d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
5428d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(LogManager.getLogManager().getLogger(
5438d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                "testGetLoggerWithRes_WithParent_ParentLogger.child"));
5448d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        // create the child logger
5458d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger log = Logger.getLogger(
5468d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                "testGetLoggerWithRes_WithParent_ParentLogger.child",
5478d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                VALID_RESOURCE_BUNDLE);
5488d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(log.getFilter());
5498d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(0, log.getHandlers().length);
5508d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(log.getLevel());
5518d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals("testGetLoggerWithRes_WithParent_ParentLogger.child", log
5528d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                .getName());
5538d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(log.getParent(), pLog);
5548d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(VALID_VALUE, log.getResourceBundle().getString(VALID_KEY));
5558d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(log.getResourceBundleName(), VALID_RESOURCE_BUNDLE);
5568d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(log.getUseParentHandlers());
5578d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
5588d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
5598d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
5608d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test addHandler(Handler) for a named logger with sufficient privilege.
5618d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
5628d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testAddHandler_NamedLoggerSufficientPrivilege() {
5638d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger log = Logger
5648d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                .getLogger("testAddHandler_NamedLoggerSufficientPrivilege");
5658d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        MockHandler h = new MockHandler();
5668d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(log.getHandlers().length, 0);
5678d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        log.addHandler(h);
5688d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(log.getHandlers().length, 1);
5698d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(log.getHandlers()[0], h);
5708d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
5718d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
5728d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
5738d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test addHandler(Handler) for a named logger with sufficient privilege,
5748d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * add duplicate handlers.
5758d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
5768d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testAddHandler_NamedLoggerSufficientPrivilegeDuplicate() {
5778d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger log = Logger
5788d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                .getLogger("testAddHandler_NamedLoggerSufficientPrivilegeDuplicate");
5798d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        MockHandler h = new MockHandler();
5808d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(log.getHandlers().length, 0);
5818d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        log.addHandler(h);
5828d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        log.addHandler(h);
5838d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(log.getHandlers().length, 2);
5848d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(log.getHandlers()[0], h);
5858d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(log.getHandlers()[1], h);
5868d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
5878d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
5888d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
5898d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test addHandler(Handler) with a null handler.
5908d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
5918d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testAddHandler_Null() {
5928d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger log = Logger.getLogger("testAddHandler_Null");
5938d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        try {
5948d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath            log.addHandler(null);
5958d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath            fail("Should throw NullPointerException!");
5968d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        } catch (NullPointerException e) {
597561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
5988d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(log.getHandlers().length, 0);
5998d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
600e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes
601561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /*
6028d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test addHandler(Handler) for an anonymous logger with sufficient
6038d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * privilege.
6048d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
6058d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testAddHandler_AnonyLoggerSufficientPrivilege() {
6068d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger log = Logger.getAnonymousLogger();
6078d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        MockHandler h = new MockHandler();
6088d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(log.getHandlers().length, 0);
6098d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        log.addHandler(h);
6108d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(log.getHandlers().length, 1);
6118d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(log.getHandlers()[0], h);
6128d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
6138d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
6148d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
6158d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test removeHandler(Handler) for a named logger with sufficient privilege,
6168d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * remove an existing handler.
6178d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
6188d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testRemoveHandler_NamedLoggerSufficientPrivilege() {
6198d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger log = Logger
6208d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                .getLogger("testRemoveHandler_NamedLoggerSufficientPrivilege");
6218d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        MockHandler h = new MockHandler();
6228d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        log.addHandler(h);
6238d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(log.getHandlers().length, 1);
6248d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        log.removeHandler(h);
6258d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(log.getHandlers().length, 0);
6268d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
6278d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
6288d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
6298d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test removeHandler(Handler) for a named logger with sufficient privilege,
6308d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * remove a non-existing handler.
6318d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
6328d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testRemoveHandler_NamedLoggerSufficientPrivilegeNotExisting() {
6338d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger log = Logger
6348d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                .getLogger("testRemoveHandler_NamedLoggerSufficientPrivilegeNotExisting");
6358d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        MockHandler h = new MockHandler();
6368d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(log.getHandlers().length, 0);
6378d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        log.removeHandler(h);
6388d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(log.getHandlers().length, 0);
6398d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
6408d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
6418d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
6428d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test removeHandler(Handler) with a null handler.
6438d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
6448d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testRemoveHandler_Null() {
6458d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger log = Logger.getLogger("testRemoveHandler_Null");
6468d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        log.removeHandler(null);
6478d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(log.getHandlers().length, 0);
6488d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
6498d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
6508d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
6518d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test removeHandler(Handler) for an anonymous logger with sufficient
6528d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * privilege.
6538d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
6548d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testRemoveHandler_AnonyLoggerSufficientPrivilege() {
6558d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger log = Logger.getAnonymousLogger();
6568d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        MockHandler h = new MockHandler();
6578d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        log.addHandler(h);
6588d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(log.getHandlers().length, 1);
6598d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        log.removeHandler(h);
6608d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(log.getHandlers().length, 0);
6618d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
6628d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
6638d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
6648d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test getHandlers() when there's no handler.
6658d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
6668d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testGetHandlers_None() {
6678d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger log = Logger.getLogger("testGetHandlers_None");
6688d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(log.getHandlers().length, 0);
6698d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
6708d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
6718d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
6728d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test getHandlers() when there are several handlers.
6738d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
6748d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testGetHandlers_Several() {
6758d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger log = Logger.getLogger("testGetHandlers_None");
6768d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(log.getHandlers().length, 0);
6778d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        MockHandler h1 = new MockHandler();
6788d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        MockHandler h2 = new MockHandler();
6798d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        MockHandler h3 = new MockHandler();
6808d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        log.addHandler(h1);
6818d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        log.addHandler(h2);
6828d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        log.addHandler(h3);
6838d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(log.getHandlers().length, 3);
6848d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(log.getHandlers()[0], h1);
6858d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(log.getHandlers()[1], h2);
6868d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(log.getHandlers()[2], h3);
6878d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        // remove one
6888d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        log.removeHandler(h2);
6898d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(log.getHandlers().length, 2);
6908d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(log.getHandlers()[0], h1);
6918d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(log.getHandlers()[1], h3);
6928d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
6938d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
6948d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
6958d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test getFilter & setFilter with normal value for a named logger, having
6968d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * sufficient privilege.
6978d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
6988d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testGetSetFilter_NamedLoggerSufficientPrivilege() {
6998d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger log = Logger
7008d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                .getLogger("testGetSetFilter_NamedLoggerSufficientPrivilege");
7018d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Filter f = new MockFilter();
7028d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
7038d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(log.getFilter());
7048d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        log.setFilter(f);
7058d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(f, log.getFilter());
7068d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
7078d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
7088d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
7098d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test getFilter & setFilter with null value, having sufficient privilege.
7108d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
7118d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testGetSetFilter_Null() {
7128d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger log = Logger.getLogger("testGetSetFilter_Null");
7138d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
7148d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(log.getFilter());
7158d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        log.setFilter(null);
7168d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(log.getFilter());
7178d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        log.setFilter(new MockFilter());
7188d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        log.setFilter(null);
7198d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(log.getFilter());
7208d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
7218d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
7228d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
7238d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test setFilter for an anonymous logger with sufficient privilege.
7248d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
7258d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testSetFilter_AnonyLoggerSufficientPrivilege() {
7268d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger log = Logger.getAnonymousLogger();
7278d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Filter f = new MockFilter();
7288d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(log.getFilter());
7298d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        log.setFilter(f);
7308d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(f, log.getFilter());
7318d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
7328d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
7338d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
7348d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test getLevel & setLevel with normal value for a named logger, having
7358d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * sufficient privilege.
7368d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
7378d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testGetSetLevel_NamedLoggerSufficientPrivilege() {
7388d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger log = Logger
7398d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                .getLogger("testGetSetLevel_NamedLoggerSufficientPrivilege");
7408d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
7418d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(log.getLevel());
7428d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        log.setLevel(Level.CONFIG);
7438d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(Level.CONFIG, log.getLevel());
7448d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
7458d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
7468d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
7478d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test getLevel & setLevel with null value, having sufficient privilege.
7488d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
7498d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testGetSetLevel_Null() {
7508d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger log = Logger.getLogger("testGetSetLevel_Null");
7518d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
7528d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(log.getLevel());
7538d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        log.setLevel(null);
7548d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(log.getLevel());
7558d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        log.setLevel(Level.CONFIG);
7568d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        log.setLevel(null);
7578d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(log.getLevel());
7588d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
7598d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
7608d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
7618d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test setLevel for an anonymous logger with sufficient privilege.
7628d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
7638d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testSetLevel_AnonyLoggerSufficientPrivilege() {
7648d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger log = Logger.getAnonymousLogger();
7658d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(log.getLevel());
7668d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        log.setLevel(Level.CONFIG);
7678d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(Level.CONFIG, log.getLevel());
7688d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
7698d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
7708d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
7718d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test getUseParentHandlers & setUseParentHandlers with normal value for a
7728d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * named logger, having sufficient privilege.
7738d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
7748d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testGetSetUseParentHandlers_NamedLoggerSufficientPrivilege() {
7758d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger log = Logger
7768d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                .getLogger("testGetSetUseParentHandlers_NamedLoggerSufficientPrivilege");
7778d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
7788d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(log.getUseParentHandlers());
7798d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        log.setUseParentHandlers(false);
7808d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertFalse(log.getUseParentHandlers());
7818d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
7828d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
7838d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
7848d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test setUseParentHandlers for an anonymous logger with sufficient
7858d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * privilege.
7868d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
7878d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testSetUseParentHandlers_AnonyLoggerSufficientPrivilege() {
7888d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger log = Logger.getAnonymousLogger();
7898d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(log.getUseParentHandlers());
7908d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        log.setUseParentHandlers(false);
7918d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertFalse(log.getUseParentHandlers());
7928d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
7938d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
7948d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
7958d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test getParent() for root logger.
7968d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
7978d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testGetParent_Root() {
7988d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(Logger.getLogger("").getParent());
7998d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
8008d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
8018d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
8028d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test getParent() for normal named loggers.
8038d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
8048d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testGetParent_NormalNamed() {
8058d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger log = Logger.getLogger("testGetParent_NormalNamed");
8068d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(log.getParent(), Logger.getLogger(""));
8078d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger child = Logger.getLogger("testGetParent_NormalNamed.child");
8088d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(child.getParent(), log);
8098d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger child2 = Logger.getLogger("testGetParent_NormalNamed.a.b.c");
8108d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(child2.getParent(), log);
8118d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
8128d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
8138d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
8148d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test getParent() for anonymous loggers.
8158d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
8168d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testGetParent_Anonymous() {
8178d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(Logger.getAnonymousLogger().getParent(), Logger
8188d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                .getLogger(""));
8198d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
8208d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
8218d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
8228d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test setParent(Logger) for the mock logger since it is advised not to
8238d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * call this method on named loggers. Test normal conditions.
8248d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
8258d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testSetParent_Normal() {
8268d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger log = new MockLogger(null, null);
8278d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger parent = new MockLogger(null, null);
8288d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(log.getParent());
8298d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        log.setParent(parent);
8308d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(log.getParent(), parent);
8318d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
8328d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
8338d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
8348d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test setParent(Logger) with null.
8358d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
8368d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testSetParent_Null() {
8378d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        try {
8388d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath            (new MockLogger(null, null)).setParent(null);
8398d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath            fail("Should throw NullPointerException!");
8408d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        } catch (NullPointerException e) {
8418d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        }
8428d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
8438d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
8448d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
8458d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test getName() for normal names.
8468d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
8478d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testGetName_Normal() {
8488d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger log = Logger.getLogger("testGetName_Normal");
8498d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals("testGetName_Normal", log.getName());
8508d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
8518d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger mlog = new MockLogger("testGetName_Normal", null);
8528d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals("testGetName_Normal", mlog.getName());
8538d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
854561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
8558d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
8568d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test getName() for empty name.
8578d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
8588d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testGetName_Empty() {
859561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        Logger log = Logger.getLogger("");
8608d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals("", log.getName());
8618d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
8628d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger mlog = new MockLogger("", null);
8638d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals("", mlog.getName());
8648d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
8658d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
8668d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
8678d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test getName() for null name.
8688d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
8698d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testGetName_Null() {
8708d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger log = Logger.getAnonymousLogger();
8718d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(log.getName());
8728d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
8738d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger mlog = new MockLogger(null, null);
8748d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(mlog.getName());
8758d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
8768d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
8778d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
8788d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test getResourceBundle() when it it not null.
8798d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
8808d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testGetResourceBundle_Normal() {
8818d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger log = Logger.getLogger("testGetResourceBundle_Normal",
8828d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                VALID_RESOURCE_BUNDLE);
8838d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(VALID_VALUE, log.getResourceBundle().getString(VALID_KEY));
8848d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
8858d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger mlog = new MockLogger(null, VALID_RESOURCE_BUNDLE);
8868d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(VALID_VALUE, mlog.getResourceBundle().getString(VALID_KEY));
8878d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
8888d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
8898d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
8908d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test getResourceBundle() when it it null.
8918d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
8928d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testGetResourceBundle_Null() {
8938d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger log = Logger.getLogger("testGetResourceBundle_Null", null);
8948d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(log.getResourceBundle());
8958d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
8968d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger mlog = new MockLogger(null, null);
8978d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(mlog.getResourceBundle());
8988d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
8998d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
9008d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
9018d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test getResourceBundleName() when it it not null.
9028d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
9038d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testGetResourceBundleName_Normal() {
9048d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger log = Logger.getLogger("testGetResourceBundleName_Normal",
9058d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                VALID_RESOURCE_BUNDLE);
9068d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(VALID_RESOURCE_BUNDLE, log.getResourceBundleName());
9078d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
9088d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger mlog = new MockLogger(null, null);
9098d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(mlog.getResourceBundleName());
9108d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
9118d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
9128d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
9138d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test getResourceBundleName() when it it null.
9148d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
9158d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testGetResourceBundleName_Null() {
9168d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger log = Logger.getLogger("testGetResourceBundleName_Null", null);
9178d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(log.getResourceBundleName());
9188d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
9198d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger mlog = new MockLogger(null, null);
9208d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(mlog.getResourceBundleName());
9218d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
9228d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
9238d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
9248d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test isLoggable(Level).
9258d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
9268d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testIsLoggable() {
9278d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        MockLogger mlog = new MockLogger(null, null);
9288d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(mlog.getLevel());
9298d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(mlog.getParent());
9308d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
9318d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(mlog.isLoggable(Level.SEVERE));
9328d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(mlog.isLoggable(Level.WARNING));
9338d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(mlog.isLoggable(Level.INFO));
9348d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertFalse(mlog.isLoggable(Level.CONFIG));
9358d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertFalse(mlog.isLoggable(Level.FINE));
9368d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertFalse(mlog.isLoggable(Level.ALL));
9378d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(mlog.isLoggable(Level.OFF));
9388d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
9398d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        mlog.setLevel(Level.CONFIG);
9408d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(mlog.isLoggable(Level.SEVERE));
9418d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(mlog.isLoggable(Level.CONFIG));
9428d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertFalse(mlog.isLoggable(Level.ALL));
9438d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(mlog.isLoggable(Level.OFF));
9448d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
9458d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        mlog.setLevel(Level.ALL);
9468d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(mlog.isLoggable(Level.ALL));
9478d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(mlog.isLoggable(Level.SEVERE));
9488d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(mlog.isLoggable(Level.OFF));
9498d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
9508d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        mlog.setLevel(Level.OFF);
9518d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertFalse(mlog.isLoggable(Level.ALL));
9528d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertFalse(mlog.isLoggable(Level.SEVERE));
9538d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertFalse(mlog.isLoggable(Level.OFF));
9548d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
9558d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
9568d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
9578d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test throwing(String, String, Throwable) with normal values.
9588d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
9598d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testThrowing_Normal() {
9608d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Throwable t = new Throwable();
9618d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setLevel(Level.FINER);
9628d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.throwing("sourceClass", "sourceMethod", t);
9638d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop();
9648d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
9658d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLoggerName(), this.sharedLogger.getName());
9668d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(r.getMessage(), "THROW");
9678d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundleName(), this.sharedLogger
9688d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                .getResourceBundleName());
9698d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundle(), this.sharedLogger.getResourceBundle());
9708d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceClassName(), "sourceClass");
9718d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceMethodName(), "sourceMethod");
9728d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLevel(), Level.FINER);
9738d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getParameters(), null);
9748d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getThrown(), t);
9758d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
9768d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setLevel(Level.FINE);
9778d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.throwing("sourceClass", "sourceMethod", t);
9788d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
9798d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
9808d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
9818d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
9828d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test throwing(String, String, Throwable) with null values.
9838d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
9848d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testThrowing_Null() {
9858d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger child = new MockLogger("childLogger", null);
9868d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger parent = new MockLogger("parentLogger", VALID_RESOURCE_BUNDLE2);
9878d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.addHandler(new MockHandler());
9888d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.setParent(parent);
9898d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
9908d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.setLevel(Level.FINER);
9918d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.throwing(null, null, null);
9928d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop();
9938d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
9948d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLoggerName(), child.getName());
9958d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(r.getMessage(), "THROW");
9968d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundleName(), parent.getResourceBundleName());
9978d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundle(), parent.getResourceBundle());
9988d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceClassName(), null);
9998d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceMethodName(), null);
10008d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLevel(), Level.FINER);
10018d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getParameters(), null);
10028d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getThrown(), null);
10038d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
10048d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
10058d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
10068d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test entering(String, String) with normal values.
10078d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
10088d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testEntering_StringString_Normal() {
10098d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setLevel(Level.FINER);
10108d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.entering("sourceClass", "sourceMethod");
10118d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop();
10128d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
10138d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLoggerName(), this.sharedLogger.getName());
10148d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(r.getMessage(), "ENTRY");
10158d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundleName(), this.sharedLogger
10168d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                .getResourceBundleName());
10178d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundle(), this.sharedLogger.getResourceBundle());
10188d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceClassName(), "sourceClass");
10198d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceMethodName(), "sourceMethod");
10208d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLevel(), Level.FINER);
10218d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getParameters(), null);
10228d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getThrown(), null);
10238d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
10248d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setLevel(Level.FINE);
10258d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.entering("sourceClass", "sourceMethod");
10268d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
10278d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
10288d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
10298d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
10308d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test entering(String, String) with null values.
10318d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
10328d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testEntering_StringString_Null() {
10338d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger child = new MockLogger("childLogger", null);
10348d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger parent = new MockLogger("parentLogger", VALID_RESOURCE_BUNDLE2);
10358d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.addHandler(new MockHandler());
10368d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.setParent(parent);
10378d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
10388d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.setLevel(Level.FINER);
10398d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.entering(null, null);
10408d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop();
10418d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
10428d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLoggerName(), child.getName());
10438d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(r.getMessage(), "ENTRY");
10448d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundleName(), parent.getResourceBundleName());
10458d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundle(), parent.getResourceBundle());
10468d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceClassName(), null);
10478d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceMethodName(), null);
10488d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLevel(), Level.FINER);
10498d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getParameters(), null);
10508d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getThrown(), null);
1051561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
1052561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
10538d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
10548d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test entering(String, String, Object) with normal values.
10558d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
10568d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testEntering_StringStringObject_Normal() {
10578d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Object param = new Object();
10588d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setLevel(Level.FINER);
10598d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.entering("sourceClass", "sourceMethod", param);
10608d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop();
10618d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
10628d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLoggerName(), this.sharedLogger.getName());
10638d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(r.getMessage(), "ENTRY {0}");
10648d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundleName(), this.sharedLogger
10658d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                .getResourceBundleName());
10668d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundle(), this.sharedLogger.getResourceBundle());
10678d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceClassName(), "sourceClass");
10688d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceMethodName(), "sourceMethod");
10698d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLevel(), Level.FINER);
10708d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getParameters()[0], param);
10718d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(1, r.getParameters().length);
10728d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getThrown(), null);
10738d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
10748d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setLevel(Level.FINE);
10758d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.entering("sourceClass", "sourceMethod", param);
10768d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
10778d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
10788d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
10798d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
10808d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test entering(String, String, Object) with null values.
10818d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
10828d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testEntering_StringStringObject_Null() {
10838d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger child = new MockLogger("childLogger", null);
10848d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger parent = new MockLogger("parentLogger", VALID_RESOURCE_BUNDLE2);
10858d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.addHandler(new MockHandler());
10868d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.setParent(parent);
10878d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
10888d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.setLevel(Level.FINER);
10898d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.entering(null, null, (Object) null);
10908d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop();
10918d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
10928d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLoggerName(), child.getName());
10938d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(r.getMessage(), "ENTRY {0}");
10948d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundleName(), parent.getResourceBundleName());
10958d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundle(), parent.getResourceBundle());
10968d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceClassName(), null);
10978d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceMethodName(), null);
10988d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLevel(), Level.FINER);
10998d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(r.getParameters().length, 1);
11008d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(r.getParameters()[0]);
11018d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getThrown(), null);
11028d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
11038d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
11048d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
11058d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test entering(String, String, Object[]) with normal values.
11068d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
11078d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testEntering_StringStringObjects_Normal() {
11088d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Object[] params = new Object[2];
11098d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        params[0] = new Object();
11108d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        params[1] = new Object();
11118d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setLevel(Level.FINER);
11128d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.entering("sourceClass", "sourceMethod", params);
11138d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop();
11148d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
11158d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLoggerName(), this.sharedLogger.getName());
11168d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(r.getMessage(), "ENTRY {0} {1}");
11178d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundleName(), this.sharedLogger
11188d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                .getResourceBundleName());
11198d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundle(), this.sharedLogger.getResourceBundle());
11208d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceClassName(), "sourceClass");
11218d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceMethodName(), "sourceMethod");
11228d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLevel(), Level.FINER);
11238d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getParameters()[0], params[0]);
11248d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getParameters()[1], params[1]);
11258d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(2, r.getParameters().length);
11268d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getThrown(), null);
11278d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
11288d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setLevel(Level.FINE);
11298d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.entering("sourceClass", "sourceMethod", params);
11308d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
11318d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
11328d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
11338d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
11348d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test entering(String, String, Object[]) with null class name and method
11358d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * name and empty parameter array.
11368d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
11378d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testEntering_StringStringObjects_NullEmpty() {
11388d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger child = new MockLogger("childLogger", null);
11398d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger parent = new MockLogger("parentLogger", VALID_RESOURCE_BUNDLE2);
11408d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.addHandler(new MockHandler());
11418d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.setParent(parent);
11428d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
11438d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.setLevel(Level.FINER);
11448d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.entering(null, null, new Object[0]);
11458d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop();
11468d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
11478d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLoggerName(), child.getName());
11488d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(r.getMessage(), "ENTRY");
11498d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundleName(), parent.getResourceBundleName());
11508d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundle(), parent.getResourceBundle());
11518d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceClassName(), null);
11528d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceMethodName(), null);
11538d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLevel(), Level.FINER);
11548d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(0, r.getParameters().length);
11558d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getThrown(), null);
11568d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
11578d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
11588d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
11598d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test entering(String, String, Object[]) with null values with appropriate
11608d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * logging level set.
11618d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
11628d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testEntering_StringStringObjects_Null() {
11638d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        sharedLogger.setLevel(Level.FINER);
11648d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        sharedLogger.entering(null, null, (Object[]) null);
11658d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        // regression test for Harmony-1265
11668d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop();
11678d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
11688d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(sharedLogger.getName(), r.getLoggerName());
11698d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals("ENTRY", r.getMessage());
11708d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(sharedLogger.getResourceBundleName(), r
11718d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                .getResourceBundleName());
11728d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(sharedLogger.getResourceBundle(), r.getResourceBundle());
11738d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(r.getSourceClassName());
11748d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(r.getSourceMethodName());
11758d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(Level.FINER, r.getLevel());
11768d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(r.getParameters());
11778d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(r.getThrown());
11788d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
11798d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
11808d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
11818d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test entering(String, String, Object[]) with null values with
11828d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * inappropriate logging level set.
11838d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
11848d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testEntering_StringStringObjects_NullDisabled() {
11858d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setLevel(Level.FINE);
11868d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.entering(null, null, (Object[]) null);
11878d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
11888d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
11898d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
11908d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
11918d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test exiting(String, String) with normal values.
11928d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
11938d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testExiting_StringString_Normal() {
11948d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setLevel(Level.FINER);
11958d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.exiting("sourceClass", "sourceMethod");
11968d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop();
11978d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
11988d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLoggerName(), this.sharedLogger.getName());
11998d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(r.getMessage(), "RETURN");
12008d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundleName(), this.sharedLogger
12018d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                .getResourceBundleName());
12028d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundle(), this.sharedLogger.getResourceBundle());
12038d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceClassName(), "sourceClass");
12048d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceMethodName(), "sourceMethod");
12058d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLevel(), Level.FINER);
12068d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(r.getParameters());
12078d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getThrown(), null);
12088d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
12098d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setLevel(Level.FINE);
12108d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.exiting("sourceClass", "sourceMethod");
12118d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
12128d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
12138d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
12148d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
12158d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test exiting(String, String) with null values.
12168d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
12178d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testExiting_StringString_Null() {
12188d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger child = new MockLogger("childLogger", null);
12198d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger parent = new MockLogger("parentLogger", VALID_RESOURCE_BUNDLE2);
12208d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.addHandler(new MockHandler());
12218d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.setParent(parent);
12228d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
12238d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.setLevel(Level.FINER);
12248d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.exiting(null, null);
12258d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop();
12268d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
12278d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLoggerName(), child.getName());
12288d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(r.getMessage(), "RETURN");
12298d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundleName(), parent.getResourceBundleName());
12308d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundle(), parent.getResourceBundle());
12318d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceClassName(), null);
12328d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceMethodName(), null);
12338d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLevel(), Level.FINER);
12348d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getParameters(), null);
12358d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getThrown(), null);
12368d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
12378d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
12388d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
12398d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test exiting(String, String, Object) with normal values.
12408d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
12418d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testExiting_StringStringObject_Normal() {
12428d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Object param = new Object();
12438d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setLevel(Level.FINER);
12448d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.exiting("sourceClass", "sourceMethod", param);
12458d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop();
12468d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
12478d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLoggerName(), this.sharedLogger.getName());
12488d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(r.getMessage(), "RETURN {0}");
12498d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundleName(), this.sharedLogger
12508d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                .getResourceBundleName());
12518d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundle(), this.sharedLogger.getResourceBundle());
12528d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceClassName(), "sourceClass");
12538d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceMethodName(), "sourceMethod");
12548d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLevel(), Level.FINER);
12558d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getParameters()[0], param);
12568d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(1, r.getParameters().length);
12578d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getThrown(), null);
12588d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
12598d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setLevel(Level.FINE);
12608d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.exiting("sourceClass", "sourceMethod", param);
12618d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
12628d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
12638d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
12648d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
12658d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test exiting(String, String, Object) with null values.
12668d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
12678d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testExiting_StringStringObject_Null() {
12688d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger child = new MockLogger("childLogger", null);
12698d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger parent = new MockLogger("parentLogger", VALID_RESOURCE_BUNDLE2);
12708d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.addHandler(new MockHandler());
12718d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.setParent(parent);
12728d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
12738d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.setLevel(Level.FINER);
12748d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.exiting(null, null, (Object) null);
12758d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop();
12768d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
12778d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLoggerName(), child.getName());
12788d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(r.getMessage(), "RETURN {0}");
12798d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundleName(), parent.getResourceBundleName());
12808d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundle(), parent.getResourceBundle());
12818d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceClassName(), null);
12828d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceMethodName(), null);
12838d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLevel(), Level.FINER);
12848d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(r.getParameters().length, 1);
12858d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(r.getParameters()[0]);
12868d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getThrown(), null);
12878d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
12888d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
12898d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
12908d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test config(String) with normal values.
12918d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
12928d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testConfig_Normal() {
12938d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setLevel(Level.CONFIG);
12948d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.config("config msg");
12958d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop();
12968d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
12978d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLoggerName(), this.sharedLogger.getName());
12988d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(r.getMessage(), "config msg");
12998d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundleName(), this.sharedLogger
13008d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                .getResourceBundleName());
13018d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundle(), this.sharedLogger.getResourceBundle());
13028d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceClassName(), null);
13038d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceMethodName(), null);
13048d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLevel(), Level.CONFIG);
13058d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(r.getParameters());
13068d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getThrown(), null);
13078d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
13088d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setLevel(Level.INFO);
13098d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.config("config again");
13108d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
13118d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
13128d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
13138d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
13148d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test config(String) with null values.
13158d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
13168d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testConfig_Null() {
13178d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger child = new MockLogger("childLogger", null);
13188d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger parent = new MockLogger("parentLogger", VALID_RESOURCE_BUNDLE2);
13198d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.addHandler(new MockHandler());
13208d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.setParent(parent);
13218d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
13228d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.setLevel(Level.CONFIG);
13238d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.config(null);
13248d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop();
13258d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
13268d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLoggerName(), child.getName());
13278d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(r.getMessage());
13288d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundleName(), parent.getResourceBundleName());
13298d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundle(), parent.getResourceBundle());
13308d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceClassName(), null);
13318d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceMethodName(), null);
13328d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLevel(), Level.CONFIG);
13338d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(r.getParameters());
13348d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getThrown(), null);
13358d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
13368d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setLevel(Level.INFO);
13378d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.config(null);
13388d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
13398d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
13408d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
13418d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
13428d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test fine(String) with normal values.
13438d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
13448d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testFine_Normal() {
13458d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setLevel(Level.FINE);
13468d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.fine("fine msg");
13478d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop();
13488d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
13498d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLoggerName(), this.sharedLogger.getName());
13508d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundle(), this.sharedLogger.getResourceBundle());
13518d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(r.getMessage(), "fine msg");
13528d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundleName(), this.sharedLogger
13538d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                .getResourceBundleName());
13548d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceClassName(), null);
13558d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceMethodName(), null);
13568d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLevel(), Level.FINE);
13578d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(r.getParameters());
13588d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getThrown(), null);
13598d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
13608d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setLevel(Level.CONFIG);
13618d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.fine("fine again");
13628d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
13638d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
13648d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
13658d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
13668d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test fine(String) with null values.
13678d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
13688d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testFine_Null() {
13698d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger child = new MockLogger("childLogger", null);
13708d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger parent = new MockLogger("parentLogger", VALID_RESOURCE_BUNDLE2);
13718d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.addHandler(new MockHandler());
13728d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.setParent(parent);
13738d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
13748d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.setLevel(Level.FINE);
13758d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.fine(null);
13768d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop();
13778d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
13788d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLoggerName(), child.getName());
13798d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(r.getMessage());
13808d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundleName(), parent.getResourceBundleName());
13818d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundle(), parent.getResourceBundle());
13828d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceClassName(), null);
13838d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceMethodName(), null);
13848d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLevel(), Level.FINE);
13858d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(r.getParameters());
13868d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getThrown(), null);
13878d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
13888d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setLevel(Level.CONFIG);
13898d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.fine(null);
13908d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
13918d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
13928d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
13938d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
13948d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test finer(String) with normal values.
13958d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
13968d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testFiner_Normal() {
13978d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setLevel(Level.FINER);
13988d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.finer("finer msg");
13998d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop();
14008d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
14018d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLoggerName(), this.sharedLogger.getName());
14028d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(r.getMessage(), "finer msg");
14038d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundleName(), this.sharedLogger
14048d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                .getResourceBundleName());
14058d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundle(), this.sharedLogger.getResourceBundle());
14068d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceClassName(), null);
14078d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceMethodName(), null);
14088d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLevel(), Level.FINER);
14098d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(r.getParameters());
14108d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getThrown(), null);
14118d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
14128d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setLevel(Level.FINE);
14138d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.finer("finer again");
14148d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
14158d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
14168d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
14178d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
14188d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test finer(String) with null values.
14198d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
14208d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testFiner_Null() {
14218d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger child = new MockLogger("childLogger", null);
14228d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger parent = new MockLogger("parentLogger", VALID_RESOURCE_BUNDLE2);
14238d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.addHandler(new MockHandler());
14248d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.setParent(parent);
14258d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
14268d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.setLevel(Level.FINER);
14278d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.finer(null);
14288d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop();
14298d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
14308d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLoggerName(), child.getName());
14318d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(r.getMessage());
14328d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundleName(), parent.getResourceBundleName());
14338d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundle(), parent.getResourceBundle());
14348d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceClassName(), null);
14358d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceMethodName(), null);
14368d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLevel(), Level.FINER);
14378d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(r.getParameters());
14388d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getThrown(), null);
14398d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
14408d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setLevel(Level.FINE);
14418d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.finer(null);
14428d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
14438d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
14448d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
14458d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
14468d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test finest(String) with normal values.
14478d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
14488d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testFinest_Normal() {
14498d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setLevel(Level.FINEST);
14508d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.finest("finest msg");
14518d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop();
14528d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
14538d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLoggerName(), this.sharedLogger.getName());
14548d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(r.getMessage(), "finest msg");
14558d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundleName(), this.sharedLogger
14568d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                .getResourceBundleName());
14578d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundle(), this.sharedLogger.getResourceBundle());
14588d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceClassName(), null);
14598d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceMethodName(), null);
14608d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLevel(), Level.FINEST);
14618d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(r.getParameters());
14628d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getThrown(), null);
14638d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
14648d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setLevel(Level.FINER);
14658d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.finest("finest again");
14668d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
14678d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
14688d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
14698d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
14708d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test finest(String) with null values.
14718d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
14728d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testFinest_Null() {
14738d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger child = new MockLogger("childLogger", null);
14748d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger parent = new MockLogger("parentLogger", VALID_RESOURCE_BUNDLE2);
14758d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.addHandler(new MockHandler());
14768d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.setParent(parent);
14778d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
14788d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.setLevel(Level.FINEST);
14798d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.finest(null);
14808d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop();
14818d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
14828d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLoggerName(), child.getName());
14838d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(r.getMessage());
14848d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundleName(), parent.getResourceBundleName());
14858d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundle(), parent.getResourceBundle());
14868d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceClassName(), null);
14878d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceMethodName(), null);
14888d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLevel(), Level.FINEST);
14898d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(r.getParameters());
14908d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getThrown(), null);
14918d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
14928d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setLevel(Level.FINER);
14938d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.finest(null);
14948d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
14958d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
14968d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
14978d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
14988d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test info(String) with normal values.
14998d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
15008d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testInfo_Normal() {
15018d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setLevel(Level.INFO);
15028d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.info("info msg");
15038d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop();
15048d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
15058d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLoggerName(), this.sharedLogger.getName());
15068d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(r.getMessage(), "info msg");
15078d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundleName(), this.sharedLogger
15088d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                .getResourceBundleName());
15098d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundle(), this.sharedLogger.getResourceBundle());
15108d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceClassName(), null);
15118d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceMethodName(), null);
15128d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLevel(), Level.INFO);
15138d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(r.getParameters());
15148d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getThrown(), null);
15158d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
15168d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setLevel(Level.WARNING);
15178d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.info("info again");
15188d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
15198d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
15208d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
15218d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
15228d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test info(String) with null values.
15238d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
15248d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testInfo_Null() {
15258d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger child = new MockLogger("childLogger", null);
15268d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger parent = new MockLogger("parentLogger", VALID_RESOURCE_BUNDLE2);
15278d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.addHandler(new MockHandler());
15288d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.setParent(parent);
15298d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
15308d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.setLevel(Level.INFO);
15318d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.info(null);
15328d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop();
15338d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
15348d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLoggerName(), child.getName());
15358d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(r.getMessage());
15368d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundleName(), parent.getResourceBundleName());
15378d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundle(), parent.getResourceBundle());
15388d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceClassName(), null);
15398d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceMethodName(), null);
15408d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLevel(), Level.INFO);
15418d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(r.getParameters());
15428d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getThrown(), null);
15438d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
15448d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setLevel(Level.WARNING);
15458d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.info(null);
15468d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
15478d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
15488d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
15498d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
15508d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test warning(String) with normal values.
15518d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
15528d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testWarning_Normal() {
15538d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setLevel(Level.WARNING);
15548d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.warning("warning msg");
15558d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop();
15568d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
15578d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLoggerName(), this.sharedLogger.getName());
15588d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(r.getMessage(), "warning msg");
15598d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundleName(), this.sharedLogger
15608d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                .getResourceBundleName());
15618d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundle(), this.sharedLogger.getResourceBundle());
15628d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceClassName(), null);
15638d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceMethodName(), null);
15648d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLevel(), Level.WARNING);
15658d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(r.getParameters());
15668d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getThrown(), null);
15678d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
15688d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setLevel(Level.SEVERE);
15698d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.warning("warning again");
15708d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
15718d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
15728d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
15738d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
15748d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test warning(String) with null values.
15758d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
15768d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testWarning_Null() {
15778d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger child = new MockLogger("childLogger", null);
15788d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger parent = new MockLogger("parentLogger", VALID_RESOURCE_BUNDLE2);
15798d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.addHandler(new MockHandler());
15808d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.setParent(parent);
15818d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
15828d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.setLevel(Level.WARNING);
15838d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.warning(null);
15848d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop();
15858d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
15868d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLoggerName(), child.getName());
15878d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(r.getMessage());
15888d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundleName(), parent.getResourceBundleName());
15898d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundle(), parent.getResourceBundle());
15908d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceClassName(), null);
15918d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceMethodName(), null);
15928d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLevel(), Level.WARNING);
15938d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(r.getParameters());
15948d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getThrown(), null);
15958d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
15968d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setLevel(Level.SEVERE);
15978d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.warning(null);
15988d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
15998d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
16008d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
16018d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
16028d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test severe(String) with normal values.
16038d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
16048d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testSevere_Normal() {
16058d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setLevel(Level.SEVERE);
16068d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.severe("severe msg");
16078d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop();
16088d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
16098d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLoggerName(), this.sharedLogger.getName());
16108d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(r.getMessage(), "severe msg");
16118d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundleName(), this.sharedLogger
16128d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                .getResourceBundleName());
16138d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundle(), this.sharedLogger.getResourceBundle());
16148d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceClassName(), null);
16158d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceMethodName(), null);
16168d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLevel(), Level.SEVERE);
16178d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(r.getParameters());
16188d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getThrown(), null);
16198d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
16208d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setLevel(Level.OFF);
16218d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.severe("severe again");
16228d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
16238d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
16248d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
16258d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
16268d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test severe(String) with null values.
16278d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
16288d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testSevere_Null() {
16298d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger child = new MockLogger("childLogger", null);
16308d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger parent = new MockLogger("parentLogger", VALID_RESOURCE_BUNDLE2);
16318d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.addHandler(new MockHandler());
16328d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.setParent(parent);
16338d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
16348d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.setLevel(Level.SEVERE);
16358d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.severe(null);
16368d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop();
16378d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
16388d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLoggerName(), child.getName());
16398d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(r.getMessage());
16408d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundleName(), parent.getResourceBundleName());
16418d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundle(), parent.getResourceBundle());
16428d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceClassName(), null);
16438d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceMethodName(), null);
16448d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLevel(), Level.SEVERE);
16458d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(r.getParameters());
16468d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getThrown(), null);
16478d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
16488d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setLevel(Level.OFF);
16498d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.severe(null);
16508d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
16518d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
16528d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
16538d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
16548d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test log(Level, String) with normal values.
16558d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
16568d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testLog_LevelString_Normal() {
16578d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setLevel(Level.INFO);
16588d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.log(Level.INFO, "log(Level, String) msg");
16598d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop();
16608d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
16618d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLoggerName(), this.sharedLogger.getName());
16628d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(r.getMessage(), "log(Level, String) msg");
16638d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundleName(), this.sharedLogger
16648d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                .getResourceBundleName());
16658d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundle(), this.sharedLogger.getResourceBundle());
16668d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceClassName(), null);
16678d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceMethodName(), null);
16688d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLevel(), Level.INFO);
16698d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(r.getParameters());
16708d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getThrown(), null);
16718d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
16728d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.log(Level.CONFIG, "log(Level, String) msg");
16738d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
16748d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setLevel(Level.OFF);
16758d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.log(Level.OFF, "log(Level, String) msg");
16768d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
16778d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
16788d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
16798d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
16808d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test log(Level, String) with null message.
16818d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
16828d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testLog_LevelString_NullMsg() {
16838d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger child = new MockLogger("childLogger", null);
16848d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger parent = new MockLogger("parentLogger", VALID_RESOURCE_BUNDLE2);
16858d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.addHandler(new MockHandler());
16868d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.setParent(parent);
16878d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
16888d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.setLevel(Level.INFO);
16898d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.log(Level.INFO, null);
16908d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop();
16918d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
16928d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLoggerName(), child.getName());
16938d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(r.getMessage());
16948d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundleName(), parent.getResourceBundleName());
16958d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundle(), parent.getResourceBundle());
16968d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceClassName(), null);
16978d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceMethodName(), null);
16988d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLevel(), Level.INFO);
16998d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(r.getParameters());
17008d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getThrown(), null);
17018d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
17028d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
17038d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
17048d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test log(Level, String) with null level.
17058d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
17068d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testLog_LevelString_NullLevel() {
17078d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        // this.sharedLogger.setLevel(Level.OFF);
17088d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        try {
17098d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath            this.sharedLogger.log(null, "log(Level, String) msg");
17108d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath            fail("Should throw NullPointerException!");
17118d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        } catch (NullPointerException e) {
17128d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        }
17138d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
17148d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
17158d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
17168d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test log(Level, String, Object) with normal values.
17178d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
17188d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testLog_LevelStringObject_Normal() {
17198d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Object param = new Object();
17208d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setLevel(Level.INFO);
17218d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.log(Level.INFO, "log(Level, String, Object) msg",
17228d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                param);
17238d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop();
17248d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
17258d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLoggerName(), this.sharedLogger.getName());
17268d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(r.getMessage(), "log(Level, String, Object) msg");
17278d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundleName(), this.sharedLogger
17288d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                .getResourceBundleName());
17298d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundle(), this.sharedLogger.getResourceBundle());
17308d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceClassName(), null);
17318d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceMethodName(), null);
17328d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLevel(), Level.INFO);
17338d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(1, r.getParameters().length);
17348d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(param, r.getParameters()[0]);
17358d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getThrown(), null);
17368d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
17378d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.log(Level.CONFIG, "log(Level, String, Object) msg",
17388d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                param);
17398d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
17408d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setLevel(Level.OFF);
17418d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.log(Level.OFF, "log(Level, String, Object) msg",
17428d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                param);
17438d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
17448d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
17458d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
17468d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
17478d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test log(Level, String, Object) with null message and object.
17488d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
17498d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testLog_LevelStringObject_NullMsgObj() {
17508d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger child = new MockLogger("childLogger", null);
17518d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger parent = new MockLogger("parentLogger", VALID_RESOURCE_BUNDLE2);
17528d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.addHandler(new MockHandler());
17538d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.setParent(parent);
17548d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
17558d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.setLevel(Level.INFO);
17568d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.log(Level.INFO, null, (Object) null);
17578d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop();
17588d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
17598d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLoggerName(), child.getName());
17608d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(r.getMessage());
17618d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundleName(), parent.getResourceBundleName());
17628d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundle(), parent.getResourceBundle());
17638d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceClassName(), null);
17648d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceMethodName(), null);
17658d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLevel(), Level.INFO);
17668d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(1, r.getParameters().length);
17678d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(r.getParameters()[0]);
17688d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getThrown(), null);
17698d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
17708d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
17718d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
17728d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test log(Level, String, Object) with null level.
17738d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
17748d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testLog_LevelStringObject_NullLevel() {
17758d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        // this.sharedLogger.setLevel(Level.OFF);
17768d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        try {
17778d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath            this.sharedLogger.log(null, "log(Level, String, Object) msg",
17788d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                    new Object());
17798d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath            fail("Should throw NullPointerException!");
17808d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        } catch (NullPointerException e) {
17818d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        }
17828d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
17838d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
17848d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
17858d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test log(Level, String, Object[]) with normal values.
17868d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
17878d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testLog_LevelStringObjects_Normal() {
17888d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Object[] params = new Object[2];
17898d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        params[0] = new Object();
17908d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        params[1] = new Object();
17918d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setLevel(Level.INFO);
17928d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.log(Level.INFO, "log(Level, String, Object[]) msg",
17938d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                params);
17948d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop();
17958d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
17968d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLoggerName(), this.sharedLogger.getName());
17978d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(r.getMessage(), "log(Level, String, Object[]) msg");
17988d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundleName(), this.sharedLogger
17998d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                .getResourceBundleName());
18008d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundle(), this.sharedLogger.getResourceBundle());
18018d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceClassName(), null);
18028d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceMethodName(), null);
18038d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLevel(), Level.INFO);
18048d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(2, r.getParameters().length);
18058d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(params[0], r.getParameters()[0]);
18068d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(params[1], r.getParameters()[1]);
18078d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getThrown(), null);
18088d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
18098d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.log(Level.CONFIG, "log(Level, String, Object[]) msg",
18108d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                params);
18118d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
18128d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setLevel(Level.OFF);
18138d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.log(Level.OFF, "log(Level, String, Object[]) msg",
18148d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                params);
18158d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
18168d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
18178d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
18188d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
18198d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test log(Level, String, Object[]) with null message and object.
18208d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
18218d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testLog_LevelStringObjects_NullMsgObj() {
18228d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger child = new MockLogger("childLogger", null);
18238d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger parent = new MockLogger("parentLogger", VALID_RESOURCE_BUNDLE2);
18248d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.addHandler(new MockHandler());
18258d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.setParent(parent);
18268d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
18278d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.setLevel(Level.INFO);
18288d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.log(Level.INFO, null, (Object[]) null);
18298d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop();
18308d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
18318d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLoggerName(), child.getName());
18328d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(r.getMessage());
18338d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundleName(), parent.getResourceBundleName());
18348d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundle(), parent.getResourceBundle());
18358d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceClassName(), null);
18368d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceMethodName(), null);
18378d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLevel(), Level.INFO);
18388d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(r.getParameters());
18398d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getThrown(), null);
18408d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
18418d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
18428d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
18438d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test log(Level, String, Object[]) with null level.
18448d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
18458d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testLog_LevelStringObjects_NullLevel() {
18468d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        // this.sharedLogger.setLevel(Level.OFF);
18478d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        try {
18488d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath            this.sharedLogger.log(null, "log(Level, String, Object[]) msg",
18498d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                    new Object[0]);
18508d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath            fail("Should throw NullPointerException!");
18518d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        } catch (NullPointerException e) {
18528d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        }
18538d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
18548d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
18558d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
18568d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test log(Level, String, Throwable) with normal values.
18578d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
18588d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testLog_LevelStringThrowable_Normal() {
18598d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Throwable t = new Throwable();
18608d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setLevel(Level.INFO);
18618d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.log(Level.INFO, "log(Level, String, Throwable) msg",
18628d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                t);
18638d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop();
18648d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
18658d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLoggerName(), this.sharedLogger.getName());
18668d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(r.getMessage(), "log(Level, String, Throwable) msg");
18678d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundleName(), this.sharedLogger
18688d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                .getResourceBundleName());
18698d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundle(), this.sharedLogger.getResourceBundle());
18708d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceClassName(), null);
18718d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceMethodName(), null);
18728d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLevel(), Level.INFO);
18738d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(r.getParameters());
18748d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getThrown(), t);
18758d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
18768d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.log(Level.CONFIG,
18778d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                "log(Level, String, Throwable) msg", t);
18788d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
18798d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setLevel(Level.OFF);
18808d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger
18818d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                .log(Level.OFF, "log(Level, String, Throwable) msg", t);
18828d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
18838d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
18848d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
18858d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
18868d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test log(Level, String, Throwable) with null message and throwable.
18878d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
18888d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testLog_LevelStringThrowable_Null() {
18898d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger child = new MockLogger("childLogger", null);
18908d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger parent = new MockLogger("parentLogger", VALID_RESOURCE_BUNDLE2);
18918d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.addHandler(new MockHandler());
18928d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.setParent(parent);
18938d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
18948d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.setLevel(Level.INFO);
18958d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.log(Level.INFO, null, (Throwable) null);
18968d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop();
18978d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
18988d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLoggerName(), child.getName());
18998d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(r.getMessage());
19008d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundleName(), parent.getResourceBundleName());
19018d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundle(), parent.getResourceBundle());
19028d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceClassName(), null);
19038d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceMethodName(), null);
19048d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLevel(), Level.INFO);
19058d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(r.getParameters());
19068d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getThrown(), null);
19078d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
19088d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
19098d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
19108d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test log(Level, String, Throwable) with null level.
19118d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
19128d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testLog_LevelStringThrowable_NullLevel() {
19138d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        // this.sharedLogger.setLevel(Level.OFF);
19148d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        try {
19158d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath            this.sharedLogger.log(null, "log(Level, String, Throwable) msg",
19168d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                    new Throwable());
19178d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath            fail("Should throw NullPointerException!");
19188d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        } catch (NullPointerException e) {
19198d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        }
19208d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
19218d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
19228d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
19238d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test logp(Level, String, String, String) with normal values.
19248d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
19258d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testLogp_LevelStringStringString_Normal() {
19268d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setLevel(Level.INFO);
19278d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.logp(Level.INFO, "sourceClass", "sourceMethod",
19288d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                "logp(Level, String, String, String) msg");
19298d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop();
19308d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
19318d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLoggerName(), this.sharedLogger.getName());
19328d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(r.getMessage(), "logp(Level, String, String, String) msg");
19338d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundleName(), this.sharedLogger
19348d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                .getResourceBundleName());
19358d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundle(), this.sharedLogger.getResourceBundle());
19368d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceClassName(), "sourceClass");
19378d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceMethodName(), "sourceMethod");
19388d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLevel(), Level.INFO);
19398d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(r.getParameters());
19408d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getThrown(), null);
19418d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
19428d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.logp(Level.CONFIG, "sourceClass", "sourceMethod",
19438d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                "logp(Level, String, String, String) msg");
19448d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
19458d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setLevel(Level.OFF);
19468d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.logp(Level.OFF, "sourceClass", "sourceMethod",
19478d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                "logp(Level, String, String, String) msg");
19488d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
19498d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
19508d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
19518d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
19528d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test logp(Level, String, String, String) with null message.
19538d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
19548d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testLogp_LevelStringStringString_NullMsg() {
19558d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger child = new MockLogger("childLogger", null);
19568d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger parent = new MockLogger("parentLogger", VALID_RESOURCE_BUNDLE2);
19578d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.addHandler(new MockHandler());
19588d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.setParent(parent);
19598d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
19608d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.setLevel(Level.INFO);
19618d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.logp(Level.INFO, null, null, null);
19628d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop();
19638d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
19648d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLoggerName(), child.getName());
19658d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(r.getMessage());
19668d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundleName(), parent.getResourceBundleName());
19678d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundle(), parent.getResourceBundle());
19688d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceClassName(), null);
19698d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceMethodName(), null);
19708d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLevel(), Level.INFO);
19718d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(r.getParameters());
19728d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getThrown(), null);
19738d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
19748d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
19758d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
19768d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test logp(Level, String, String, String) with null level.
19778d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
19788d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testLogp_LevelStringStringString_NullLevel() {
19798d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        // this.sharedLogger.setLevel(Level.OFF);
19808d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        try {
19818d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath            this.sharedLogger.logp(null, "sourceClass", "sourceMethod",
19828d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                    "logp(Level, String, String, String) msg");
19838d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath            fail("Should throw NullPointerException!");
19848d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        } catch (NullPointerException e) {
19858d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        }
19868d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
19878d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
19888d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
19898d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test logp(Level, String, String, String, Object) with normal values.
19908d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
19918d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testLogp_LevelStringStringStringObject_Normal() {
19928d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Object param = new Object();
19938d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setLevel(Level.INFO);
19948d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.logp(Level.INFO, "sourceClass", "sourceMethod",
19958d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                "logp(Level, String, String, String, Object) msg", param);
19968d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop();
19978d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
19988d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLoggerName(), this.sharedLogger.getName());
19998d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(r.getMessage(),
20008d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                "logp(Level, String, String, String, Object) msg");
20018d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundleName(), this.sharedLogger
20028d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                .getResourceBundleName());
20038d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundle(), this.sharedLogger.getResourceBundle());
20048d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceClassName(), "sourceClass");
20058d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceMethodName(), "sourceMethod");
20068d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLevel(), Level.INFO);
20078d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(1, r.getParameters().length);
20088d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(param, r.getParameters()[0]);
20098d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getThrown(), null);
20108d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
20118d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.logp(Level.CONFIG, "sourceClass", "sourceMethod",
20128d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                "logp(Level, String, String, String, Object) msg", param);
20138d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
20148d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setLevel(Level.OFF);
20158d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.logp(Level.OFF, "sourceClass", "sourceMethod",
20168d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                "logp(Level, String, String, String, Object) msg", param);
20178d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
20188d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
20198d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
20208d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
20218d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test logp(Level, String, String, String, Object) with null message and
20228d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * object.
20238d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
20248d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testLogp_LevelStringStringStringObject_NullMsgObj() {
20258d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger child = new MockLogger("childLogger", null);
20268d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger parent = new MockLogger("parentLogger", VALID_RESOURCE_BUNDLE2);
20278d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.addHandler(new MockHandler());
20288d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.setParent(parent);
20298d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
20308d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.setLevel(Level.INFO);
20318d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.logp(Level.INFO, null, null, null, (Object) null);
20328d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop();
20338d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
20348d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLoggerName(), child.getName());
20358d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(r.getMessage());
20368d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundleName(), parent.getResourceBundleName());
20378d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundle(), parent.getResourceBundle());
20388d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceClassName(), null);
20398d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceMethodName(), null);
20408d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLevel(), Level.INFO);
20418d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(1, r.getParameters().length);
20428d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(r.getParameters()[0]);
20438d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getThrown(), null);
20448d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
20458d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
20468d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
20478d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test logp(Level, String, String, String, Object) with null level.
20488d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
20498d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testLogp_LevelStringStringStringObject_NullLevel() {
20508d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        // this.sharedLogger.setLevel(Level.OFF);
20518d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        try {
20528d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath            this.sharedLogger.logp(null, "sourceClass", "sourceMethod",
20538d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                    "logp(Level, String, String, String, Object) msg",
20548d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                    new Object());
20558d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath            fail("Should throw NullPointerException!");
20568d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        } catch (NullPointerException e) {
20578d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        }
20588d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
20598d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
20608d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
20618d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test logp(Level, String, String, String, Object[]) with normal values.
20628d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
20638d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testLogp_LevelStringStringStringObjects_Normal() {
20648d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Object[] params = new Object[2];
20658d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        params[0] = new Object();
20668d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        params[1] = new Object();
20678d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setLevel(Level.INFO);
20688d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.logp(Level.INFO, "sourceClass", "sourceMethod",
20698d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                "logp(Level, String, String, String, Object[]) msg", params);
20708d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop();
20718d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
20728d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLoggerName(), this.sharedLogger.getName());
20738d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(r.getMessage(),
20748d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                "logp(Level, String, String, String, Object[]) msg");
20758d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundleName(), this.sharedLogger
20768d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                .getResourceBundleName());
20778d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundle(), this.sharedLogger.getResourceBundle());
20788d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceClassName(), "sourceClass");
20798d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceMethodName(), "sourceMethod");
20808d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLevel(), Level.INFO);
20818d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(2, r.getParameters().length);
20828d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(params[0], r.getParameters()[0]);
20838d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(params[1], r.getParameters()[1]);
20848d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getThrown(), null);
20858d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
20868d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.logp(Level.CONFIG, "sourceClass", "sourceMethod",
20878d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                "logp(Level, String, String, String, Object[]) msg", params);
20888d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
20898d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setLevel(Level.OFF);
20908d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.logp(Level.OFF, "sourceClass", "sourceMethod",
20918d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                "logp(Level, String, String, String, Object[]) msg", params);
20928d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
20938d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
20948d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
20958d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
20968d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test logp(Level, String, String, String, Object[]) with null message and
20978d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * object.
20988d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
20998d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testLogp_LevelStringStringStringObjects_NullMsgObj() {
21008d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger child = new MockLogger("childLogger", null);
21018d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger parent = new MockLogger("parentLogger", VALID_RESOURCE_BUNDLE2);
21028d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.addHandler(new MockHandler());
21038d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.setParent(parent);
21048d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
21058d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.setLevel(Level.INFO);
21068d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.logp(Level.INFO, null, null, null, (Object[]) null);
21078d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop();
21088d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
21098d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLoggerName(), child.getName());
21108d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(r.getMessage());
21118d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundleName(), parent.getResourceBundleName());
21128d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundle(), parent.getResourceBundle());
21138d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceClassName(), null);
21148d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceMethodName(), null);
21158d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLevel(), Level.INFO);
21168d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(r.getParameters());
21178d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getThrown(), null);
21188d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
21198d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
21208d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
21218d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test logp(Level, String, String, String, Object[]) with null level.
21228d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
21238d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testLogp_LevelStringStringStringObjects_NullLevel() {
21248d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        // this.sharedLogger.setLevel(Level.OFF);
21258d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        try {
21268d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath            this.sharedLogger.logp(null, "sourceClass", "sourceMethod",
21278d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                    "logp(Level, String, String, String, Object[]) msg",
21288d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                    new Object[0]);
21298d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath            fail("Should throw NullPointerException!");
21308d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        } catch (NullPointerException e) {
21318d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        }
21328d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
21338d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
21348d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
21358d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test logp(Level, String, String, String, Throwable) with normal values.
21368d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
21378d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testLogp_LevelStringStringStringThrowable_Normal() {
21388d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Throwable t = new Throwable();
21398d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setLevel(Level.INFO);
21408d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.logp(Level.INFO, "sourceClass", "sourceMethod",
21418d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                "logp(Level, String, String, String, Throwable) msg", t);
21428d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop();
21438d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
21448d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLoggerName(), this.sharedLogger.getName());
21458d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(r.getMessage(),
21468d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                "logp(Level, String, String, String, Throwable) msg");
21478d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundleName(), this.sharedLogger
21488d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                .getResourceBundleName());
21498d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundle(), this.sharedLogger.getResourceBundle());
21508d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceClassName(), "sourceClass");
21518d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceMethodName(), "sourceMethod");
21528d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLevel(), Level.INFO);
21538d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(r.getParameters());
21548d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getThrown(), t);
21558d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
21568d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.logp(Level.CONFIG, "sourceClass", "sourceMethod",
21578d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                "logp(Level, String, String, String, Throwable) msg", t);
21588d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
21598d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setLevel(Level.OFF);
21608d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.logp(Level.OFF, "sourceClass", "sourceMethod",
21618d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                "logp(Level, String, String, String, Throwable) msg", t);
21628d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
21638d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
21648d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
21658d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
21668d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test logp(Level, String, String, String, Throwable) with null message and
21678d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * throwable.
21688d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
21698d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testLogp_LevelStringTStringStringhrowable_Null() {
21708d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger child = new MockLogger("childLogger", null);
21718d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger parent = new MockLogger("parentLogger", VALID_RESOURCE_BUNDLE2);
21728d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.addHandler(new MockHandler());
21738d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.setParent(parent);
21748d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
21758d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.setLevel(Level.INFO);
21768d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.logp(Level.INFO, null, null, null, (Throwable) null);
21778d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop();
21788d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
21798d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLoggerName(), child.getName());
21808d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(r.getMessage());
21818d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundleName(), parent.getResourceBundleName());
21828d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundle(), parent.getResourceBundle());
21838d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceClassName(), null);
21848d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceMethodName(), null);
21858d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLevel(), Level.INFO);
21868d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(r.getParameters());
21878d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getThrown(), null);
21888d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
21898d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
21908d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
21918d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test logp(Level, String, String, String, Throwable) with null level.
21928d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
21938d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testLogp_LevelStringStringStringThrowable_NullLevel() {
21948d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        // this.sharedLogger.setLevel(Level.OFF);
21958d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        try {
21968d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath            this.sharedLogger.logp(null, "sourceClass", "sourceMethod",
21978d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                    "log(Level, String, String, String, Throwable) msg",
21988d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                    new Throwable());
21998d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath            fail("Should throw NullPointerException!");
22008d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        } catch (NullPointerException e) {
22018d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        }
22028d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
22038d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
22048d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
22058d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test logrb(Level, String, String, String, String) with normal values.
22068d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
22078d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testLogrb_LevelStringStringString_Normal() {
22088d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setLevel(Level.INFO);
22098d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.logrb(Level.INFO, "sourceClass", "sourceMethod",
22108d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                VALID_RESOURCE_BUNDLE2,
22118d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                "logrb(Level, String, String, String, String) msg");
22128d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop();
22138d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
22148d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLoggerName(), this.sharedLogger.getName());
22158d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(r.getMessage(),
22168d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                "logrb(Level, String, String, String, String) msg");
22178d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundleName(), VALID_RESOURCE_BUNDLE2);
22188d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(VALID_VALUE2, r.getResourceBundle().getString(VALID_KEY));
22198d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceClassName(), "sourceClass");
22208d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceMethodName(), "sourceMethod");
22218d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLevel(), Level.INFO);
22228d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(r.getParameters());
22238d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getThrown(), null);
22248d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
22258d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.logrb(Level.CONFIG, "sourceClass", "sourceMethod",
22268d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                VALID_RESOURCE_BUNDLE2,
22278d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                "logrb(Level, String, String, String, String) msg");
22288d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
22298d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setLevel(Level.OFF);
22308d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.logrb(Level.OFF, "sourceClass", "sourceMethod",
22318d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                VALID_RESOURCE_BUNDLE2,
22328d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                "logrb(Level, String, String, String, String) msg");
22338d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
22348d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
22358d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
22368d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
22378d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test logrb(Level, String, String, String, String) with null message.
22388d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
22398d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testLogrb_LevelStringStringString_NullMsg() {
22408d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setLevel(Level.INFO);
22418d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.logrb(Level.INFO, null, null, null, null);
22428d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop();
22438d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
22448d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLoggerName(), this.sharedLogger.getName());
22458d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(r.getMessage());
22468d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundleName(), null);
22478d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceClassName(), null);
22488d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceMethodName(), null);
22498d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLevel(), Level.INFO);
22508d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(r.getParameters());
22518d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getThrown(), null);
22528d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
22538d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
22548d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
22558d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test logrb(Level, String, String, String) with null level.
22568d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
22578d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testLogrb_LevelStringStringString_NullLevel() {
22588d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        // this.sharedLogger.setLevel(Level.OFF);
22598d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        try {
22608d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath            this.sharedLogger.logrb(null, "sourceClass", "sourceMethod",
22618d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                    VALID_RESOURCE_BUNDLE2,
22628d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                    "logrb(Level, String, String, String, String) msg");
22638d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath            fail("Should throw NullPointerException!");
22648d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        } catch (NullPointerException e) {
22658d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        }
22668d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
22678d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
22688d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
22698d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test logrb(Level, String, String, String, String) with invalid resource
22708d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * bundle.
22718d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
22728d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testLogrb_LevelStringStringString_InvalidRes() {
22738d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setLevel(Level.ALL);
22748d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.logrb(Level.ALL, "sourceClass", "sourceMethod",
22758d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                INVALID_RESOURCE_BUNDLE,
22768d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                "logrb(Level, String, String, String, String) msg");
22778d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop();
22788d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
22798d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLoggerName(), this.sharedLogger.getName());
22808d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(r.getMessage(),
22818d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                "logrb(Level, String, String, String, String) msg");
22828d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundleName(), INVALID_RESOURCE_BUNDLE);
22838d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundle(), null);
22848d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceClassName(), "sourceClass");
22858d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceMethodName(), "sourceMethod");
22868d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLevel(), Level.ALL);
22878d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(r.getParameters());
22888d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getThrown(), null);
22898d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
22908d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
22918d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
22928d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test logrb(Level, String, String, String, String, Object) with normal
22938d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * values.
22948d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
22958d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testLogrb_LevelStringStringStringObject_Normal() {
22968d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Object param = new Object();
22978d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setLevel(Level.INFO);
22988d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.logrb(Level.INFO, "sourceClass", "sourceMethod",
22998d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                VALID_RESOURCE_BUNDLE2,
23008d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                "logrb(Level, String, String, String, String, Object) msg",
23018d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                param);
23028d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop();
23038d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
23048d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLoggerName(), this.sharedLogger.getName());
23058d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(r.getMessage(),
23068d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                "logrb(Level, String, String, String, String, Object) msg");
23078d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundleName(), VALID_RESOURCE_BUNDLE2);
23088d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceClassName(), "sourceClass");
23098d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceMethodName(), "sourceMethod");
23108d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLevel(), Level.INFO);
23118d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(1, r.getParameters().length);
23128d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(param, r.getParameters()[0]);
23138d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getThrown(), null);
23148d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
23158d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.logrb(Level.CONFIG, "sourceClass", "sourceMethod",
23168d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                VALID_RESOURCE_BUNDLE2,
23178d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                "logrb(Level, String, String, String, String, Object) msg",
23188d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                param);
23198d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
23208d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setLevel(Level.OFF);
23218d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.logrb(Level.OFF, "sourceClass", "sourceMethod",
23228d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                VALID_RESOURCE_BUNDLE2,
23238d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                "logrb(Level, String, String, String, String, Object) msg",
23248d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                param);
23258d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
23268d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
23278d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
23288d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
23298d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test logrb(Level, String, String, String, String, Object) with null
23308d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * message and object.
23318d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
23328d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testLogrb_LevelStringStringStringObject_NullMsgObj() {
23338d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setLevel(Level.INFO);
23348d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.logrb(Level.INFO, null, null, null, null,
23358d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (Object) null);
23368d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop();
23378d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
23388d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLoggerName(), this.sharedLogger.getName());
23398d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(r.getMessage());
23408d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundleName(), null);
23418d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceClassName(), null);
23428d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceMethodName(), null);
23438d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLevel(), Level.INFO);
23448d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(1, r.getParameters().length);
23458d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(r.getParameters()[0]);
23468d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getThrown(), null);
23478d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
23488d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
23498d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
23508d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test logrb(Level, String, String, String, String, Object) with null
23518d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * level.
23528d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
23538d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testLogrb_LevelStringStringStringObject_NullLevel() {
23548d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        // this.sharedLogger.setLevel(Level.OFF);
23558d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        try {
23568d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath            this.sharedLogger.logrb(null, "sourceClass", "sourceMethod",
23578d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                    VALID_RESOURCE_BUNDLE2,
23588d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                    "logrb(Level, String, String, String, String, Object) msg",
23598d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                    new Object());
23608d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath            fail("Should throw NullPointerException!");
23618d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        } catch (NullPointerException e) {
23628d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        }
23638d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
23648d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
23658d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
23668d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test logrb(Level, String, String, String, String, Object) with invalid
23678d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * resource bundle.
23688d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
23698d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testLogrb_LevelStringStringStringObject_InvalidRes() {
23708d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Object param = new Object();
23718d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setLevel(Level.ALL);
23728d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.logrb(Level.ALL, "sourceClass", "sourceMethod",
23738d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                INVALID_RESOURCE_BUNDLE,
23748d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                "logrb(Level, String, String, String, String) msg", param);
23758d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop();
23768d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
23778d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLoggerName(), this.sharedLogger.getName());
23788d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(r.getMessage(),
23798d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                "logrb(Level, String, String, String, String) msg");
23808d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundleName(), INVALID_RESOURCE_BUNDLE);
23818d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundle(), null);
23828d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceClassName(), "sourceClass");
23838d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceMethodName(), "sourceMethod");
23848d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLevel(), Level.ALL);
23858d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(1, r.getParameters().length);
23868d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(param, r.getParameters()[0]);
23878d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getThrown(), null);
23888d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
23898d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
23908d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
23918d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test logrb(Level, String, String, String, String, Object[]) with normal
23928d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * values.
23938d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
23948d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testLogrb_LevelStringStringStringObjects_Normal() {
23958d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Object[] params = new Object[2];
23968d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        params[0] = new Object();
23978d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        params[1] = new Object();
23988d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setLevel(Level.INFO);
23998d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.logrb(Level.INFO, "sourceClass", "sourceMethod",
24008d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                VALID_RESOURCE_BUNDLE2,
24018d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                "logrb(Level, String, String, String, String, Object[]) msg",
24028d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                params);
24038d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop();
24048d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
24058d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLoggerName(), this.sharedLogger.getName());
24068d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(r.getMessage(),
24078d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                "logrb(Level, String, String, String, String, Object[]) msg");
24088d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundleName(), VALID_RESOURCE_BUNDLE2);
24098d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceClassName(), "sourceClass");
24108d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceMethodName(), "sourceMethod");
24118d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLevel(), Level.INFO);
24128d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(2, r.getParameters().length);
24138d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(params[0], r.getParameters()[0]);
24148d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(params[1], r.getParameters()[1]);
24158d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getThrown(), null);
24168d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
24178d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.logrb(Level.CONFIG, "sourceClass", "sourceMethod",
24188d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                VALID_RESOURCE_BUNDLE2,
24198d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                "logrb(Level, String, String, String, String, Object[]) msg",
24208d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                params);
24218d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
24228d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setLevel(Level.OFF);
24238d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.logrb(Level.OFF, "sourceClass", "sourceMethod",
24248d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                VALID_RESOURCE_BUNDLE2,
24258d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                "logrb(Level, String, String, String, String, Object[]) msg",
24268d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                params);
24278d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
24288d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
24298d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
24308d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
24318d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test logrb(Level, String, String, String, String, Object[]) with null
24328d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * message and object.
24338d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
24348d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testLogrb_LevelStringStringStringObjects_NullMsgObj() {
24358d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setLevel(Level.INFO);
24368d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.logrb(Level.INFO, null, null, null, null,
24378d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (Object[]) null);
24388d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop();
24398d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
24408d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLoggerName(), this.sharedLogger.getName());
24418d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(r.getMessage());
24428d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundleName(), null);
24438d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceClassName(), null);
24448d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceMethodName(), null);
24458d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLevel(), Level.INFO);
24468d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(r.getParameters());
24478d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getThrown(), null);
24488d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
24498d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
24508d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
24518d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test logrb(Level, String, String, String, String, Object[]) with null
24528d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * level.
24538d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
24548d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testLogrb_LevelStringStringStringObjects_NullLevel() {
24558d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        // this.sharedLogger.setLevel(Level.OFF);
24568d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        try {
24578d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath            this.sharedLogger
24588d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                    .logrb(
24598d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                            null,
24608d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                            "sourceClass",
24618d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                            "sourceMethod",
24628d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                            VALID_RESOURCE_BUNDLE2,
24638d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                            "logrb(Level, String, String, String, String, Object[]) msg",
24648d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                            new Object[0]);
24658d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath            fail("Should throw NullPointerException!");
24668d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        } catch (NullPointerException e) {
24678d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        }
24688d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
24698d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
24708d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
24718d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test logrb(Level, String, String, String, String, Object[]) with invalid
24728d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * resource bundle.
24738d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
24748d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testLogrb_LevelStringStringStringObjects_InvalidRes() {
24758d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Object[] params = new Object[2];
24768d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        params[0] = new Object();
24778d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        params[1] = new Object();
24788d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setLevel(Level.ALL);
24798d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.logrb(Level.ALL, "sourceClass", "sourceMethod",
24808d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                INVALID_RESOURCE_BUNDLE,
24818d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                "logrb(Level, String, String, String, String) msg", params);
24828d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop();
24838d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
24848d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLoggerName(), this.sharedLogger.getName());
24858d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(r.getMessage(),
24868d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                "logrb(Level, String, String, String, String) msg");
24878d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundleName(), INVALID_RESOURCE_BUNDLE);
24888d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundle(), null);
24898d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceClassName(), "sourceClass");
24908d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceMethodName(), "sourceMethod");
24918d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLevel(), Level.ALL);
24928d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(2, r.getParameters().length);
24938d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(params[0], r.getParameters()[0]);
24948d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(params[1], r.getParameters()[1]);
24958d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getThrown(), null);
24968d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
24978d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
24988d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
24998d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test logrb(Level, String, String, String, String, Throwable) with normal
25008d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * values.
25018d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
25028d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testLogrb_LevelStringStringStringThrowable_Normal() {
25038d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Throwable t = new Throwable();
25048d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setLevel(Level.INFO);
25058d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.logrb(Level.parse("1611"), "sourceClass",
25068d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                "sourceMethod", VALID_RESOURCE_BUNDLE2,
25078d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                "logrb(Level, String, String, String, String, Throwable) msg",
25088d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                t);
25098d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop();
25108d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
25118d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLoggerName(), this.sharedLogger.getName());
25128d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(r.getMessage(),
25138d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                "logrb(Level, String, String, String, String, Throwable) msg");
25148d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundleName(), VALID_RESOURCE_BUNDLE2);
25158d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceClassName(), "sourceClass");
25168d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceMethodName(), "sourceMethod");
25178d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLevel(), Level.parse("1611"));
25188d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(r.getParameters());
25198d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getThrown(), t);
25208d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(Level.parse("1611").getResourceBundleName());
25218d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
25228d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.logrb(Level.CONFIG, "sourceClass", "sourceMethod",
25238d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                VALID_RESOURCE_BUNDLE2,
25248d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                "logrb(Level, String, String, String, String, Throwable) msg",
25258d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                t);
25268d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
25278d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setLevel(Level.OFF);
25288d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.logrb(Level.OFF, "sourceClass", "sourceMethod",
25298d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                VALID_RESOURCE_BUNDLE2,
25308d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                "logrb(Level, String, String, String, String, Throwable) msg",
25318d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                t);
25328d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
25338d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
25348d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
25358d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
25368d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test logrb(Level, String, String, String, String, Throwable) with null
25378d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * message and throwable.
25388d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
25398d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testLogrb_LevelStringTStringStringhrowable_NullMsgObj() {
25408d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setLevel(Level.INFO);
25418d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.logrb(Level.INFO, null, null, null, null,
25428d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                (Throwable) null);
25438d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop();
25448d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
25458d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLoggerName(), this.sharedLogger.getName());
25468d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(r.getMessage());
25478d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundleName(), null);
25488d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceClassName(), null);
25498d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceMethodName(), null);
25508d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLevel(), Level.INFO);
25518d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(r.getParameters());
25528d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getThrown(), null);
25538d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
25548d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
25558d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
25568d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test logrb(Level, String, String, String, String, Throwable) with null
25578d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * level.
25588d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
25598d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testLogrb_LevelStringStringStringThrowable_NullLevel() {
25608d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        // this.sharedLogger.setLevel(Level.OFF);
25618d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        try {
25628d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath            this.sharedLogger
25638d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                    .logrb(
25648d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                            null,
25658d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                            "sourceClass",
25668d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                            "sourceMethod",
25678d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                            VALID_RESOURCE_BUNDLE2,
25688d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                            "log(Level, String, String, String, String, Throwable) msg",
25698d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                            new Throwable());
25708d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath            fail("Should throw NullPointerException!");
25718d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        } catch (NullPointerException e) {
25728d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        }
25738d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
25748d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
25758d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
25768d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test logrb(Level, String, String, String, String, Throwable) with invalid
25778d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * resource bundle.
25788d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
25798d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testLogrb_LevelStringStringStringThrowable_InvalidRes() {
25808d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Throwable t = new Throwable();
25818d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setLevel(Level.ALL);
25828d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.logrb(Level.ALL, "sourceClass", "sourceMethod",
25838d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                INVALID_RESOURCE_BUNDLE,
25848d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                "logrb(Level, String, String, String, String) msg", t);
25858d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop();
25868d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
25878d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLoggerName(), this.sharedLogger.getName());
25888d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(r.getMessage(),
25898d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                "logrb(Level, String, String, String, String) msg");
25908d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundleName(), INVALID_RESOURCE_BUNDLE);
25918d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundle(), null);
25928d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceClassName(), "sourceClass");
25938d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceMethodName(), "sourceMethod");
25948d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLevel(), Level.ALL);
25958d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(r.getParameters());
25968d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getThrown(), t);
25978d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
25988d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
25998d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
26008d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test log(LogRecord) for a normal log record. Meanwhile the logger has an
26018d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * appropriate level, no filter, no parent.
26028d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
26038d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testLog_LogRecord_AppropriateLevelNoFilterNoParent() {
26048d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        LogRecord r = new LogRecord(Level.INFO,
26058d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                "testLog_LogRecord_AppropriateLevelNoFilterNoParent");
26068d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
26078d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setLevel(Level.INFO);
26088d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.log(r);
26098d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
26108d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r, CallVerificationStack.getInstance().pop());
26118d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
26128d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLoggerName(), null);
26138d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(r.getMessage(),
26148d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                "testLog_LogRecord_AppropriateLevelNoFilterNoParent");
26158d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundleName(), null);
26168d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceClassName(), null);
26178d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceMethodName(), null);
26188d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLevel(), Level.INFO);
26198d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(r.getParameters());
26208d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getThrown(), null);
26218d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
26228d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
26238d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
26248d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test log(LogRecord) with null log record.
26258d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
26268d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testLog_LogRecord_Null() {
26278d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setLevel(Level.INFO);
26288d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        try {
26298d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath            this.sharedLogger.log(null);
26308d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath            fail("Should throw NullPointerException!");
26318d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        } catch (NullPointerException e) {
26328d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        }
26338d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
26348d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
26358d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
26368d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test log(LogRecord) for a normal log record. Meanwhile the logger has an
26378d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * inappropriate level, no filter, no parent.
26388d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
26398d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testLog_LogRecord_InppropriateLevelNoFilterNoParent() {
26408d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        LogRecord r = new LogRecord(Level.INFO,
26418d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                "testLog_LogRecord_InppropriateLevelNoFilterNoParent");
26428d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
26438d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setLevel(Level.WARNING);
26448d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.log(r);
26458d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
26468d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
26478d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        r.setLevel(Level.OFF);
26488d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setLevel(Level.OFF);
26498d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.log(r);
26508d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
26518d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
26528d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
26538d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
26548d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test log(LogRecord) for a normal log record. Meanwhile the logger has an
26558d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * appropriate level, a filter that accepts the fed log record, no parent.
26568d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
26578d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testLog_LogRecord_AppropriateLevelTrueFilterNoParent() {
26588d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        LogRecord r = new LogRecord(Level.INFO,
26598d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                "testLog_LogRecord_AppropriateLevelTrueFilterNoParent");
26608d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
26618d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setLevel(Level.INFO);
26628d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setFilter(new MockTrueFilter());
26638d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.log(r);
26648d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
26658d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        // pop twice, one pushed by mock handler, one by true mock filter
26668d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r, CallVerificationStack.getInstance().pop());
26678d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r, CallVerificationStack.getInstance().pop());
26688d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
26698d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
26708d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLoggerName(), null);
26718d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(r.getMessage(),
26728d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                "testLog_LogRecord_AppropriateLevelTrueFilterNoParent");
26738d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundleName(), null);
26748d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceClassName(), null);
26758d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceMethodName(), null);
26768d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLevel(), Level.INFO);
26778d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(r.getParameters());
26788d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getThrown(), null);
26798d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
26808d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
26818d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
26828d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test log(LogRecord) for a normal log record. Meanwhile the logger has an
26838d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * appropriate level, a filter that rejects the fed log record, no parent.
26848d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
26858d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testLog_LogRecord_AppropriateLevelFalseFilterNoParent() {
26868d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        LogRecord r = new LogRecord(Level.INFO,
26878d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                "testLog_LogRecord_AppropriateLevelFalseFilterNoParent");
26888d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
26898d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setLevel(Level.INFO);
26908d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.setFilter(new MockFilter());
26918d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.log(r);
26928d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
26938d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        // pop only once, pushed by mock filter
26948d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r, CallVerificationStack.getInstance().pop());
26958d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
26968d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
26978d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLoggerName(), null);
26988d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(r.getMessage(),
26998d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                "testLog_LogRecord_AppropriateLevelFalseFilterNoParent");
27008d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundleName(), null);
27018d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceClassName(), null);
27028d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceMethodName(), null);
27038d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLevel(), Level.INFO);
27048d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(r.getParameters());
27058d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getThrown(), null);
27068d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
27078d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
27088d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
27098d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test that the parent's handler is notified for a new log record when
27108d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * getUseParentHandlers() is true.
27118d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
27128d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testLog_ParentInformed() {
27138d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger child = new MockLogger("childLogger", VALID_RESOURCE_BUNDLE);
27148d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger parent = new MockParentLogger("parentLogger",
27158d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                VALID_RESOURCE_BUNDLE2);
27168d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
27178d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.setParent(parent);
27188d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.setLevel(Level.INFO);
27198d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        parent.setLevel(Level.INFO);
27208d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        parent.addHandler(new MockHandler());
27218d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        LogRecord r = new LogRecord(Level.INFO, "testLog_ParentInformed");
27228d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.log(r);
27238d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(child.getUseParentHandlers());
27248d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        // pop only once, pushed by the parent logger's handler, not by the
27258d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        // parent itself!
27268d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r, CallVerificationStack.getInstance().pop());
27278d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
27288d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLoggerName(), null);
27298d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(r.getMessage(), "testLog_ParentInformed");
27308d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundleName(), null);
27318d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceClassName(), null);
27328d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceMethodName(), null);
27338d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLevel(), Level.INFO);
27348d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(r.getParameters());
27358d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getThrown(), null);
27368d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
27378d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        // set the child logger to disabling level
27388d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.setLevel(Level.SEVERE);
27398d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.log(r);
27408d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
27418d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
27428d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        // set the parent logger to disabling level
27438d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.setLevel(Level.INFO);
27448d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        parent.setLevel(Level.SEVERE);
27458d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.log(r);
27468d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r, CallVerificationStack.getInstance().pop());
27478d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
27488d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
27498d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        // set the child logger off
27508d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.setLevel(Level.OFF);
27518d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.log(r);
27528d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
27538d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
27548d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        // set the record off
27558d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        r.setLevel(Level.OFF);
27568d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.log(r);
27578d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
27588d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
27598d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
27608d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
27618d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test that the ancestor's handler is notified for a new log record when
27628d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * getUseParentHandlers() is true.
27638d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
27648d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testLog_AncestorInformed() {
27658d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger child = new MockLogger("childLogger", VALID_RESOURCE_BUNDLE);
27668d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger parent = new MockParentLogger("parentLogger",
27678d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                VALID_RESOURCE_BUNDLE2);
27688d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger ancestor = new MockParentLogger("ancestorLogger",
27698d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                VALID_RESOURCE_BUNDLE3);
27708d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
27718d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.setParent(parent);
27728d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        parent.setParent(ancestor);
27738d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.setLevel(Level.INFO);
27748d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        parent.setLevel(Level.INFO);
27758d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        ancestor.setLevel(Level.OFF);
27768d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        ancestor.addHandler(new MockHandler());
27778d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        LogRecord r = new LogRecord(Level.INFO, "testLog_AncestorInformed");
27788d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.log(r);
27798d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(child.getUseParentHandlers());
27808d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(parent.getUseParentHandlers());
27818d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        // pop only once, pushed by the ancestor's logger's handler, not by the
27828d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        // parent itself!
27838d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r, CallVerificationStack.getInstance().pop());
27848d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
27858d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
27868d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        // set parent's level to a disabling one
27878d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        parent.setLevel(Level.WARNING);
27888d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.log(r);
27898d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r, CallVerificationStack.getInstance().pop());
27908d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
27918d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
27928d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        // set child's level to a disabling one
27938d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        parent.setLevel(Level.INFO);
27948d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.setLevel(Level.WARNING);
27958d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.log(r);
27968d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
27978d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
27988d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        // set parent's useParentHandlers to false
27998d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        parent.setLevel(Level.INFO);
28008d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.setLevel(Level.INFO);
28018d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        parent.setUseParentHandlers(false);
28028d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.log(r);
28038d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
28048d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
28058d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
28068d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
28078d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test that the parent's handler is notified for a new log record when
28088d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * getUseParentHandlers() is false.
28098d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
28108d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testLog_ParentNotInformed() {
28118d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger child = new MockLogger("childLogger", VALID_RESOURCE_BUNDLE);
28128d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger parent = new MockParentLogger("parentLogger",
28138d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                VALID_RESOURCE_BUNDLE2);
28148d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
28158d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.setParent(parent);
28168d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.setLevel(Level.INFO);
28178d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        parent.setLevel(Level.INFO);
28188d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        parent.addHandler(new MockHandler());
28198d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        LogRecord r = new LogRecord(Level.INFO, "testLog_ParentInformed");
28208d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.setUseParentHandlers(false);
28218d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.log(r);
28228d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertFalse(child.getUseParentHandlers());
28238d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
28248d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
28258d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
28268d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
28278d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test that a logger with null level and no parent. Defaulted to
28288d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Level.INFO.
28298d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
28308d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testLog_NullLevelNoParent() {
28318d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        LogRecord r = new LogRecord(Level.INFO, "testLog_NullLevelNoParent");
28328d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(this.sharedLogger.getLevel());
28338d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(this.sharedLogger.getParent());
28348d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(this.sharedLogger.isLoggable(r.getLevel()));
28358d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.log(r);
28368d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r, CallVerificationStack.getInstance().pop());
28378d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
28388d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(this.sharedLogger.getLevel());
28398d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
28408d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        r.setLevel(Level.WARNING);
28418d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(this.sharedLogger.isLoggable(r.getLevel()));
28428d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.log(r);
28438d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r, CallVerificationStack.getInstance().pop());
28448d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
28458d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
28468d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        r.setLevel(Level.CONFIG);
28478d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        this.sharedLogger.log(r);
28488d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertFalse(this.sharedLogger.isLoggable(r.getLevel()));
28498d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
28508d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
28518d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
28528d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
28538d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test that a logger inherits its parent level when its level is null.
28548d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
28558d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testLog_NullLevelHasParent() {
28568d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger child = new MockLogger("childLogger", VALID_RESOURCE_BUNDLE);
28578d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger parent = new MockLogger("parentLogger", VALID_RESOURCE_BUNDLE2);
28588d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.addHandler(new MockHandler());
28598d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.setParent(parent);
28608d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        parent.setLevel(Level.FINER);
28618d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
28628d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(child.getLevel());
28638d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
28648d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        LogRecord r = new LogRecord(Level.FINE, "testLog_NullLevelHasParent");
28658d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.log(r);
28668d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(child.isLoggable(r.getLevel()));
28678d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        // pop only once, pushed by the child logger's handler
28688d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r, CallVerificationStack.getInstance().pop());
28698d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
28708d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
28718d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLoggerName(), null);
28728d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(r.getMessage(), "testLog_NullLevelHasParent");
28738d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundleName(), null);
28748d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceClassName(), null);
28758d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceMethodName(), null);
28768d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLevel(), Level.FINE);
28778d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(r.getParameters());
28788d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getThrown(), null);
28798d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(child.getLevel());
28808d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
28818d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        // set the parent logger to disabling level
28828d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        parent.setLevel(Level.CONFIG);
28838d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertFalse(child.isLoggable(r.getLevel()));
28848d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.log(r);
28858d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
28868d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(child.getLevel());
28878d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
28888d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        // test ancestor
28898d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger ancestor = new MockLogger("ancestorLogger",
28908d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                VALID_RESOURCE_BUNDLE3);
28918d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        parent.setParent(ancestor);
28928d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        parent.setLevel(null);
28938d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        parent.setUseParentHandlers(false);
28948d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        ancestor.setLevel(Level.ALL);
28958d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.log(r);
28968d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(child.isLoggable(r.getLevel()));
28978d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r, CallVerificationStack.getInstance().pop());
28988d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
28998d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(child.getLevel());
29008d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(parent.getLevel());
29018d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
29028d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
29038d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
29048d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test that a logger with null resource bundle and no parent. Defaulted to
29058d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * null.
29068d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
29078d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testLog_NullResNoParent() {
29088d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger log = new MockLogger("Logger", null);
29098d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        log.addHandler(new MockHandler());
29108d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        log.setLevel(Level.FINE);
29118d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
29128d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(log.getResourceBundle());
29138d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(log.getResourceBundleName());
29148d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(log.getParent());
29158d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        log.log(Level.INFO, "testLog_NullResNoParent");
29168d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop();
29178d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
29188d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(log.getResourceBundle());
29198d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(log.getResourceBundleName());
29208d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(r.getResourceBundle());
29218d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(r.getResourceBundleName());
29228d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
29238d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
29248d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
29258d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test that a logger inherits its parent resource bundle when its resource
29268d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * bundle is null.
29278d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
29288d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testLog_NullResHasParent() {
29298d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger child = new MockLogger("childLogger", null);
29308d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger parent = new MockLogger("parentLogger", VALID_RESOURCE_BUNDLE2);
29318d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.addHandler(new MockHandler());
29328d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.setParent(parent);
29338d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        parent.setLevel(Level.FINER);
29348d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(child.getResourceBundle());
29358d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(child.getResourceBundleName());
29368d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
29378d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.log(Level.FINE, "testLog_NullResHasParent");
29388d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        // pop only once, pushed by the child logger's handler
29398d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop();
29408d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
29418d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
29428d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLoggerName(), "childLogger");
29438d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(r.getMessage(), "testLog_NullResHasParent");
29448d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundleName(), VALID_RESOURCE_BUNDLE2);
29458d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceClassName(), null);
29468d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceMethodName(), null);
29478d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLevel(), Level.FINE);
29488d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(r.getParameters());
29498d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getThrown(), null);
29508d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(child.getResourceBundle());
29518d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(child.getResourceBundleName());
29528d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
29538d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
29548d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
29558d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test that a logger inherits its ancestor's resource bundle when its
29568d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * resource bundle and its parent's resource bundle are both null.
29578d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
29588d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testLog_NullResHasAncestor() {
29598d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger child = new MockLogger("childLogger", null);
29608d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger parent = new MockLogger("parentLogger", null);
29618d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        Logger ancestor = new MockLogger("ancestorLogger",
29628d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                VALID_RESOURCE_BUNDLE3);
29638d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.addHandler(new MockHandler());
29648d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.setParent(parent);
29658d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        parent.setParent(ancestor);
29668d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        parent.setLevel(Level.FINER);
29678d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(child.getResourceBundle());
29688d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(child.getResourceBundleName());
29698d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
29708d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        child.log(Level.FINE, "testLog_NullResHasAncestor");
29718d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        // pop only once, pushed by the child logger's handler
29728d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        LogRecord r = (LogRecord) CallVerificationStack.getInstance().pop();
29738d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
29748d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
29758d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLoggerName(), "childLogger");
29768d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertEquals(r.getMessage(), "testLog_NullResHasAncestor");
29778d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getResourceBundleName(), VALID_RESOURCE_BUNDLE3);
29788d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceClassName(), null);
29798d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getSourceMethodName(), null);
29808d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getLevel(), Level.FINE);
29818d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(r.getParameters());
29828d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertSame(r.getThrown(), null);
29838d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(child.getResourceBundle());
29848d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertNull(child.getResourceBundleName());
29858d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
29868d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
29878d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
29888d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * Test when one handler throws an exception.
29898d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
29908d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void testLog_ExceptionalHandler() {
29918d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        MockLogger l = new MockLogger("testLog_ExceptionalHandler", null);
29928d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        l.addHandler(new MockExceptionalHandler());
29938d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        l.addHandler(new MockHandler());
29948d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        try {
29958d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath            l.severe("testLog_ExceptionalHandler");
29968d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath            fail("Should throw RuntimeException!");
29978d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        } catch (RuntimeException e) {
29988d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        }
29998d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        assertTrue(CallVerificationStack.getInstance().empty());
30008d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
30018d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
30028d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /* Logger.loadResourceBundle is not publicly accessible in Android
30038d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        public void testLoadResourceBundleNonExistent() {
30048d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath            try {
30058d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                // Try a load a non-existent resource bundle.
30068d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                LoggerExtension.loadResourceBundle("missinglogger.properties");
30078d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                fail("Expected an exception.");
30088d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath            } catch (MissingResourceException ex) {
30098d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                // Expected exception is precisely a MissingResourceException
30108d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath                assertTrue(ex.getClass() == MissingResourceException.class);
30118d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath            }
30128d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        }
30138d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    */
30148d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
30158d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
30168d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath     * test initHandler
30178d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath     */
30188d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public void test_initHandler() throws Exception {
301984bf48564a8560403bd77eee23f7fad63e50340eNeil Fuller        InputStream logPropsStream = Thread.currentThread().getContextClassLoader()
302084bf48564a8560403bd77eee23f7fad63e50340eNeil Fuller                .getResourceAsStream(LOGGING_CONFIG_RESOURCE);
302184bf48564a8560403bd77eee23f7fad63e50340eNeil Fuller        try {
302284bf48564a8560403bd77eee23f7fad63e50340eNeil Fuller            LogManager lm = LogManager.getLogManager();
302384bf48564a8560403bd77eee23f7fad63e50340eNeil Fuller            lm.readConfiguration(logPropsStream);
302484bf48564a8560403bd77eee23f7fad63e50340eNeil Fuller
302584bf48564a8560403bd77eee23f7fad63e50340eNeil Fuller            Logger log = Logger.getLogger("");
302684bf48564a8560403bd77eee23f7fad63e50340eNeil Fuller            // can log properly
302784bf48564a8560403bd77eee23f7fad63e50340eNeil Fuller            Handler[] handlers = log.getHandlers();
302884bf48564a8560403bd77eee23f7fad63e50340eNeil Fuller            assertEquals(2, handlers.length);
302984bf48564a8560403bd77eee23f7fad63e50340eNeil Fuller        } finally {
303084bf48564a8560403bd77eee23f7fad63e50340eNeil Fuller            if (logPropsStream != null) {
303184bf48564a8560403bd77eee23f7fad63e50340eNeil Fuller                logPropsStream.close();
303284bf48564a8560403bd77eee23f7fad63e50340eNeil Fuller            }
303384bf48564a8560403bd77eee23f7fad63e50340eNeil Fuller        }
30348d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
30358d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
30368d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
30378d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * A mock logger, used to test the protected constructors and fields.
30388d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
30398d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public static class MockLogger extends Logger {
30408d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
30418d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        public MockLogger(String name, String resourceBundleName) {
30428d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath            super(name, resourceBundleName);
30438d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        }
30448d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
30458d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
30468d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
30478d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * A mock logger, used to test inheritance.
30488d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
30498d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public static class MockParentLogger extends Logger {
30508d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
30518d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        public MockParentLogger(String name, String resourceBundleName) {
30528d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath            super(name, resourceBundleName);
30538d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        }
30548d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
30558d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        public void log(LogRecord record) {
30568d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath            CallVerificationStack.getInstance().push(record);
30578d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath            super.log(record);
30588d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        }
30598d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
30608d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
30618d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
30628d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
30638d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * A mock handler, used to validate the expected method is called with the
30648d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * expected parameters.
30658d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
30668d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public static class MockHandler extends Handler {
30678d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
30688d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        public void close() {
30698d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath            // System.out.println("close!");
30708d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        }
30718d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
30728d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        public void flush() {
30738d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath            // System.out.println("flushed!");
30748d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        }
30758d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
30768d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        public void publish(LogRecord record) {
30778d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath            // System.out.println("publish!");
30788d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath            CallVerificationStack.getInstance().push(record);
30798d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        }
30808d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
30818d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
30828d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
30838d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * A mock handler that throws an exception when publishing a log record.
30848d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
30858d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public static class MockExceptionalHandler extends Handler {
30868d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
30878d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        public void close() {
30888d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath            // System.out.println("close!");
30898d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        }
30908d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
30918d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        public void flush() {
30928d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath            // System.out.println("flushed!");
30938d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        }
30948d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
30958d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        public void publish(LogRecord record) {
30968d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath            // System.out.println("publish!");
30978d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath            throw new RuntimeException();
30988d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        }
30998d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
31008d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
31018d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
31028d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * A mock filter, always return false.
31038d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
31048d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public static class MockFilter implements Filter {
31058d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
31068d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        public boolean isLoggable(LogRecord record) {
31078d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath            CallVerificationStack.getInstance().push(record);
31088d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath            return false;
31098d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        }
31108d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
31118d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
31128d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    /*
31138d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      * A mock filter, always return true.
31148d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath      */
31158d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    public static class MockTrueFilter implements Filter {
31168d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath
31178d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        public boolean isLoggable(LogRecord record) {
31188d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath            CallVerificationStack.getInstance().push(record);
31198d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath            return true;
31208d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath        }
31218d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath    }
3122561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes}
3123