001/* 002 * Copyright 2010 Christopher Pheby 003 * 004 * Licensed under the Apache License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.apache.org/licenses/LICENSE-2.0 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016package org.jadira.bindings.core.utils.reflection; 017 018import static org.junit.Assert.assertEquals; 019 020import java.net.URL; 021 022import org.junit.Test; 023 024public class ClassUtilsTest { 025 026 @Test 027 public void testGetClass() { 028 029 String className = "java.net.URL"; 030 031 assertEquals(URL.class, ClassUtils.getClass(getClass().getClassLoader(), className)); 032 assertEquals(URL.class, ClassUtils.getClass(getClass().getClassLoader(), className + " ")); 033 assertEquals(new URL[]{}.getClass(), ClassUtils.getClass(getClass().getClassLoader(), className + "[]")); 034 assertEquals(new URL[][]{}.getClass(), ClassUtils.getClass(getClass().getClassLoader(), className + "[][]")); 035 036 assertEquals(Long.TYPE, ClassUtils.getClass(getClass().getClassLoader(), "long")); 037 assertEquals(Boolean.TYPE, ClassUtils.getClass(getClass().getClassLoader(), "boolean")); 038 assertEquals(Float.TYPE, ClassUtils.getClass(getClass().getClassLoader(), "float")); 039 assertEquals(Short.TYPE, ClassUtils.getClass(getClass().getClassLoader(), "short")); 040 assertEquals(Byte.TYPE, ClassUtils.getClass(getClass().getClassLoader(), "byte")); 041 assertEquals(Double.TYPE, ClassUtils.getClass(getClass().getClassLoader(), "double")); 042 assertEquals(Character.TYPE, ClassUtils.getClass(getClass().getClassLoader(), "char")); 043 044 assertEquals(new long[]{}.getClass(), ClassUtils.getClass(getClass().getClassLoader(), "long[]")); 045 assertEquals(new boolean[]{}.getClass(), ClassUtils.getClass(getClass().getClassLoader(), "boolean[]")); 046 assertEquals(new float[]{}.getClass(), ClassUtils.getClass(getClass().getClassLoader(), "float[]")); 047 assertEquals(new short[]{}.getClass(), ClassUtils.getClass(getClass().getClassLoader(), "short[]")); 048 assertEquals(new byte[]{}.getClass(), ClassUtils.getClass(getClass().getClassLoader(), "byte[]")); 049 assertEquals(new double[]{}.getClass(), ClassUtils.getClass(getClass().getClassLoader(), "double[]")); 050 assertEquals(new char[]{}.getClass(), ClassUtils.getClass(getClass().getClassLoader(), "char[]")); 051 052 assertEquals(new long[][]{}.getClass(), ClassUtils.getClass(getClass().getClassLoader(), "long[][]")); 053 } 054 055 @Test 056 public void testDetermineQualifiedName() { 057 058 String className = "org.jadira.bindings.core.utils.string.ClassUtilsTest"; 059 060 assertEquals("org.jadira.bindings.core.utils.string.ClassUtilsTest", ClassUtils.determineQualifiedName(className)); 061 assertEquals("org.jadira.bindings.core.utils.string.ClassUtilsTest", ClassUtils.determineQualifiedName(className + " ")); 062 assertEquals("[Lorg.jadira.bindings.core.utils.string.ClassUtilsTest;", ClassUtils.determineQualifiedName(className + "[]")); 063 assertEquals("[[Lorg.jadira.bindings.core.utils.string.ClassUtilsTest;", ClassUtils.determineQualifiedName(className + "[][]")); 064 065 assertEquals("long", ClassUtils.determineQualifiedName("long")); 066 assertEquals("boolean", ClassUtils.determineQualifiedName("boolean")); 067 assertEquals("float", ClassUtils.determineQualifiedName("float")); 068 assertEquals("short", ClassUtils.determineQualifiedName("short")); 069 assertEquals("byte", ClassUtils.determineQualifiedName("byte")); 070 assertEquals("double", ClassUtils.determineQualifiedName("double")); 071 assertEquals("char", ClassUtils.determineQualifiedName("char")); 072 073 assertEquals("[J", ClassUtils.determineQualifiedName("long[]")); 074 assertEquals("[Z", ClassUtils.determineQualifiedName("boolean[]")); 075 assertEquals("[F", ClassUtils.determineQualifiedName("float[]")); 076 assertEquals("[S", ClassUtils.determineQualifiedName("short[]")); 077 assertEquals("[B", ClassUtils.determineQualifiedName("byte[]")); 078 assertEquals("[D", ClassUtils.determineQualifiedName("double[]")); 079 assertEquals("[C", ClassUtils.determineQualifiedName("char[]")); 080 081 assertEquals("[[J", ClassUtils.determineQualifiedName("long[][]")); 082 083 assertEquals("[[Ljava.net.URL;", ClassUtils.determineQualifiedName("java.net.URL[][]")); 084 } 085 086 @Test 087 public void testDetermineReadableClassName() { 088 089 String className = "org.jadira.bindings.core.utils.string.ClassUtilsTest"; 090 091 assertEquals("org.jadira.bindings.core.utils.string.ClassUtilsTest", ClassUtils.determineReadableClassName(className)); 092 assertEquals("org.jadira.bindings.core.utils.string.ClassUtilsTest", ClassUtils.determineReadableClassName(className + " ")); 093 assertEquals("org.jadira.bindings.core.utils.string.ClassUtilsTest[]", ClassUtils.determineReadableClassName("[L" + className + ";")); 094 assertEquals("org.jadira.bindings.core.utils.string.ClassUtilsTest[][]", ClassUtils.determineReadableClassName("[[L" + className + ";")); 095 096 assertEquals("long", ClassUtils.determineReadableClassName("long")); 097 assertEquals("boolean", ClassUtils.determineReadableClassName("boolean")); 098 assertEquals("float", ClassUtils.determineReadableClassName("float")); 099 assertEquals("short", ClassUtils.determineReadableClassName("short")); 100 assertEquals("byte", ClassUtils.determineReadableClassName("byte")); 101 assertEquals("double", ClassUtils.determineReadableClassName("double")); 102 assertEquals("char", ClassUtils.determineReadableClassName("char")); 103 104 assertEquals("long[]", ClassUtils.determineReadableClassName("[J")); 105 assertEquals("boolean[]", ClassUtils.determineReadableClassName("[Z")); 106 assertEquals("float[]", ClassUtils.determineReadableClassName("[F")); 107 assertEquals("short[]", ClassUtils.determineReadableClassName("[S")); 108 assertEquals("byte[]", ClassUtils.determineReadableClassName("[B")); 109 assertEquals("double[]", ClassUtils.determineReadableClassName("[D")); 110 assertEquals("char[]", ClassUtils.determineReadableClassName("[C")); 111 112 assertEquals("long[][]", ClassUtils.determineReadableClassName("[[J")); 113 114 assertEquals("java.net.URL[][]", ClassUtils.determineReadableClassName("[[Ljava.net.URL;")); 115 } 116}