Path: blob/master/test/jdk/java/lang/Class/getPackageName/Basic.java
41153 views
/*1* Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.2* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.3*4* This code is free software; you can redistribute it and/or modify it5* under the terms of the GNU General Public License version 2 only, as6* published by the Free Software Foundation.7*8* This code is distributed in the hope that it will be useful, but WITHOUT9* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or10* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License11* version 2 for more details (a copy is included in the LICENSE file that12* accompanied this code).13*14* You should have received a copy of the GNU General Public License version15* 2 along with this work; if not, write to the Free Software Foundation,16* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.17*18* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA19* or visit www.oracle.com if you need additional information or have any20* questions.21*/2223/**24* @test25* @compile Basic.java26* @run testng p.Basic27* @summary Basic test for java.lang.Class::getPackageName28*/2930package p;3132import org.testng.annotations.Test;33import org.testng.annotations.DataProvider;34import static org.testng.Assert.*;3536public class Basic {373839// -- member classes --4041static class Nested {42static class Foo { }43}4445Class<?> getNestedClass1() {46return Nested.class;47}48Class<?> getNestedClass2() {49return Nested.Foo.class;50}5152class Inner {53class Foo { }54}5556Class<?> getInnerClass1() {57return Inner.class;58}59Class<?> getInnerClass2() {60return Inner.Foo.class;61}6263// -- local and anonymous classes --6465Class<?> getLocalClass1() {66class Local { }67return Local.class;68}6970Class<?> getLocalClass2() {71class Local {72class Foo { }73}74return Local.Foo.class;75}7677Class<?> getLocalClass3() {78class Local {79final Class<?> c;80Local() {81class Foo { }82this.c = Foo.class;83}84Class<?> get() {85return c;86}87}88return new Local().get();89}9091Class<?> getAnonymousClass1() {92Runnable r = new Runnable() { public void run() { } };93return r.getClass();94}9596Class<?> getAnonymousClass2() {97class Local {98Class<?> get() {99Runnable r = new Runnable() { public void run() { } };100return r.getClass();101}102}103return new Local().get();104}105106Class<?> getAnonymousClass3() {107Runnable r = () -> { };108return r.getClass();109}110111Class<?> getAnonymousClass4() {112class Local {113Class<?> get() {114Runnable r = () -> { };115return r.getClass();116}117}118return new Local().get();119}120121Class<?> getAnonymousClass5() {122class Local {123final Class<?> c;124Local() {125Runnable r = new Runnable() { public void run() { } };126this.c = r.getClass();127}128Class<?> get() {129return c;130}131}132return new Local().get();133}134135Class<?> getAnonymousClass6() {136class Local {137final Class<?> c;138Local() {139Runnable r = () -> { };140this.c = r.getClass();141}142Class<?> get() {143return c;144}145}146return new Local().get();147}148149static final String TEST_PACKAGE = Basic.class.getPackage().getName();150151@DataProvider(name = "classes")152public Object[][] classes() {153return new Object[][] {154155{ Basic.class, TEST_PACKAGE },156{ Basic[].class, TEST_PACKAGE },157{ Basic[][].class, TEST_PACKAGE },158159{ getNestedClass1(), TEST_PACKAGE },160{ getNestedClass2(), TEST_PACKAGE },161{ getInnerClass1(), TEST_PACKAGE },162{ getInnerClass2(), TEST_PACKAGE },163164{ getLocalClass1(), TEST_PACKAGE },165{ getLocalClass2(), TEST_PACKAGE },166{ getLocalClass3(), TEST_PACKAGE },167168{ getAnonymousClass1(), TEST_PACKAGE },169{ getAnonymousClass2(), TEST_PACKAGE },170{ getAnonymousClass3(), TEST_PACKAGE },171{ getAnonymousClass4(), TEST_PACKAGE },172{ getAnonymousClass5(), TEST_PACKAGE },173{ getAnonymousClass6(), TEST_PACKAGE },174175{ Object.class, "java.lang" },176{ Object[].class, "java.lang" },177{ Object[][].class, "java.lang" },178179{ int.class, "java.lang" },180{ int[].class, "java.lang" },181{ int[][].class, "java.lang" },182183{ void.class, "java.lang" },184185};186}187188@Test(dataProvider = "classes")189public void testPackageName(Class<?> type, String expected) {190assertEquals(type.getPackageName(), expected);191}192193}194195196