001: /*
002: * Licensed to the Apache Software Foundation (ASF) under one or more
003: * contributor license agreements. See the NOTICE file distributed with
004: * this work for additional information regarding copyright ownership.
005: * The ASF licenses this file to You under the Apache License, Version 2.0
006: * (the "License"); you may not use this file except in compliance with
007: * the License. You may obtain a copy of the License at
008: *
009: * http://www.apache.org/licenses/LICENSE-2.0
010: *
011: * Unless required by applicable law or agreed to in writing, software
012: * distributed under the License is distributed on an "AS IS" BASIS,
013: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014: * See the License for the specific language governing permissions and
015: * limitations under the License.
016: */
017:
018: /**
019: * @author Evgueni V. Brevnov, Roman S. Bushmanov
020: * @version $Revision$
021: */package java.lang;
022:
023: import java.io.Serializable;
024: import java.security.Permission;
025:
026: import junit.framework.TestCase;
027:
028: /**
029: * tested class: java.lang.Class
030: * tested method: isInstance
031: */
032: public class ClassTestIsInstance extends TestCase {
033:
034: /**
035: * the isInstance() method returns false if argument is null.
036: */
037: public void test1() {
038: assertFalse(Object.class.isInstance(null));
039: }
040:
041: /**
042: * the isInstance() method returns false if this class represetnts primitive
043: * type.
044: */
045: public void test2() {
046: assertFalse("Assert 0:", Integer.TYPE
047: .isInstance(new Integer(1)));
048: assertFalse("Assert 1:", int.class.isInstance(new Integer(1)));
049: }
050:
051: /**
052: * checks widening refernce conversion.
053: */
054: public void test3() {
055: assertTrue(Object.class.isInstance(new Character('a')));
056: }
057:
058: /**
059: * The Serializable interface is super interface of the Boolean class. So
060: * the Boolean class is instance of the Serializable interface.
061: */
062: public void test4() {
063: assertTrue(Serializable.class.isInstance(new Boolean(true)));
064: }
065:
066: /**
067: * Each array has the Object class as its super class.
068: */
069: public void test5() {
070: assertTrue(Object.class.isInstance(new int[0]));
071: }
072:
073: /**
074: * Array of primitive types is not an instance of array of objects.
075: */
076: public void test6() {
077: assertFalse(new Object[0].getClass().isInstance(new int[0]));
078: }
079:
080: /**
081: * the isInstance() method returns false if this class represetnts an array
082: * of primitive types.
083: */
084: public void test7() {
085: assertFalse("Assert 0:", new double[0].getClass().isInstance(
086: new int[0]));
087: assertFalse("Assert 1:", new int[0].getClass().isInstance(
088: new double[0]));
089: }
090:
091: /**
092: * checks whether array components can be converted by widening reference
093: * conversion.
094: */
095: public void test8() {
096: assertTrue("Assert 0:", new Object[0].getClass().isInstance(
097: new String[0]));
098: assertFalse("Assert 1:", new String[0].getClass().isInstance(
099: new Object[0]));
100: }
101:
102: /**
103: * The Permission class is super class of the RuntimePermission class.
104: */
105: public void test9() {
106: Object o = new RuntimePermission("createClassLoader");
107: assertTrue(Permission.class.isInstance(o));
108: }
109: }
|