1561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott 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 8561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * 9561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * http://www.apache.org/licenses/LICENSE-2.0 10561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * 11561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Unless required by applicable law or agreed to in writing, software 12561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * distributed under the License is distributed on an "AS IS" BASIS, 13561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * See the License for the specific language governing permissions and 15561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * limitations under the License. 16561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 17561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 18561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespackage org.apache.harmony.logging.tests.java.util.logging; 19561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 20561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Calendar; 21561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.ResourceBundle; 22561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.logging.Level; 23561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.logging.LogRecord; 24561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.logging.SimpleFormatter; 25561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 26561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport junit.framework.TestCase; 27561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 28561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes/** 298d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * 30561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 31561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespublic class SimpleFormatterTest extends TestCase { 32561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 338d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath SimpleFormatter sf; 348d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 358d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath LogRecord lr; 368d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 378d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath private static String MSG = "test msg. pls. ignore it\nadaadasfdasfd\nadfafdadfsa"; 388d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 398d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath /* 408d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath * @see TestCase#setUp() 418d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath */ 428d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath protected void setUp() throws Exception { 438d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath super.setUp(); 448d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath sf = new SimpleFormatter(); 458d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath lr = new LogRecord(Level.FINE, MSG); 468d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 478d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 488d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void testFormatNull() { 498d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath try { 508d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath sf.format(null); 518d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath fail("should throw nullpointer exception"); 528d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } catch (NullPointerException e) { 538d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 548d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath sf.format(new LogRecord(Level.SEVERE, null)); 558d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 568d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 578d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void testLocalizedFormat() { 588d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath // if bundle set, should use localized message 598d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath ResourceBundle rb = ResourceBundle 6084bf48564a8560403bd77eee23f7fad63e50340eNeil Fuller .getBundle("bundles/com/android/java/util/logging/res"); 618d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath lr.setResourceBundle(rb); 628d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath lr.setMessage("msg"); 638d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath String localeMsg = rb.getString("msg"); 648d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath String str = sf.format(lr); 658d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertTrue(str.indexOf(localeMsg) > 0); 668d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 678d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath // if bundle not set but bundle name set, should use original message 688d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath lr.setResourceBundle(null); 6984bf48564a8560403bd77eee23f7fad63e50340eNeil Fuller lr.setResourceBundleName("bundles/com/android/java/util/logging/res"); 708d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath lr.setMessage("msg"); 718d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath str = sf.format(lr); 728d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath localeMsg = rb.getString("msg"); 738d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertTrue(str.indexOf(localeMsg) < 0); 748d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 758d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 768d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void testFormat() { 778d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath String str = sf.format(lr); 788d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath Throwable t; 798d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 808d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath lr.setMessage(MSG + " {0,number}"); 818d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath lr.setLoggerName("logger"); 828d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath lr.setResourceBundleName("rb name"); 838d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath lr.setSourceClassName("class"); 848d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath lr.setSourceMethodName("method"); 858d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath lr.setParameters(new Object[] { new Integer(100), new Object() }); 868d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath lr.setThreadID(1000); 878d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath lr.setThrown(t = new Exception("exception") { 888d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath private static final long serialVersionUID = 1L; 898d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 908d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public String getLocalizedMessage() { 918d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath return "locale"; 928d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 938d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath }); 948d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath lr.setSequenceNumber(12321312); 958d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath lr.setMillis(0); 968d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath str = sf.format(lr); 978d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath Calendar cal = Calendar.getInstance(); 988d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath cal.setTimeInMillis(12321312); 998d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertTrue(str.indexOf(String.valueOf(cal.get(Calendar.YEAR))) >= 0); 1008d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertTrue(str.indexOf("class") > 0); 1018d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertTrue(str.indexOf("method") > 0); 1028d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertTrue(str.indexOf("100") > 0); 1038d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertTrue(str.indexOf(t.toString()) > 0); 1048d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertTrue(str.indexOf(Level.FINE.getLocalizedName()) > 0); 1058d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 1068d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 1078d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void testGetHead() { 1088d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertEquals("", sf.getHead(null)); 1098d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 1108d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 1118d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void testGetTail() { 1128d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertEquals("", sf.getTail(null)); 1138d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 114561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes} 115