/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package libcore.java.lang; import junit.framework.TestCase; public class OldThrowableTest extends TestCase { public void test_ConstructorLStringLThrowable() { String message = "Test message"; NullPointerException npe = new NullPointerException(); Throwable thr = new Throwable(message, npe); assertEquals("message is incorrect.", message, thr.getMessage()); assertEquals("cause is incorrect.", npe, thr.getCause()); thr = new Throwable(null, npe); assertNull("message is not null.", thr.getMessage()); assertEquals("cause is incorrect.", npe, thr.getCause()); thr = new Throwable(message, null); assertEquals("message is incorrect.", message, thr.getMessage()); assertNull("cause is not null.", thr.getCause()); } public void test_ConstructorLThrowable() { NullPointerException npe = new NullPointerException(); Throwable thr = new Throwable(npe); assertEquals("Returned cause is incorrect.", npe, thr.getCause()); thr = new Throwable((Throwable) null); assertNull("The cause is not null.", thr.getCause()); } public void test_getLocalizedMessage() { String testMessage = "Test message"; Throwable e = new Throwable(testMessage); assertEquals("Returned incorrect localized message.", testMessage, e.getLocalizedMessage()); TestThrowable tt = new TestThrowable(testMessage); assertEquals("localized message", tt.getLocalizedMessage()); } class TestThrowable extends Throwable { public TestThrowable(String message) { super(message); } public String getLocalizedMessage() { return "localized message"; } } public void test_getStackTrace() { String message = "Test message"; NullPointerException npe = new NullPointerException(); Throwable thr = new Throwable(message, npe); StackTraceElement[] ste = thr.getStackTrace(); assertNotNull("Returned stack trace is empty", ste.length != 0); } public void test_initCause() { String message = "Test message"; NullPointerException npe = new NullPointerException(); IllegalArgumentException iae = new IllegalArgumentException(); Throwable thr = new Throwable(); thr.initCause(iae); assertEquals("getCause returns incorrect cause.", iae, thr.getCause()); thr = new Throwable("message"); thr.initCause(npe); assertEquals("getCause returns incorrect cause.", npe, thr.getCause()); thr = new Throwable(message, npe); try { thr.initCause(iae); fail("IllegalStateException was not thrown."); } catch(IllegalStateException ise) { //expected } thr = new Throwable(npe); try { thr.initCause(iae); fail("IllegalStateException was not thrown."); } catch(IllegalStateException ise) { //expected } thr = new Throwable(); try { thr.initCause(thr); fail("IllegalArgumentException was not thrown."); } catch(IllegalArgumentException ise) { //expected } } public void test_setStackTrace() { NullPointerException npe = new NullPointerException(); Throwable thr = new Throwable(npe); StackTraceElement[] ste = thr.getStackTrace(); Throwable thr1 = new Throwable(npe); thr1.setStackTrace(ste); assertEquals(ste.length, thr1.getStackTrace().length); try { thr.setStackTrace(null); fail("NullPointerException is not thrown."); } catch(NullPointerException np) { //expected } } }