/*
* Copyright 2010 Christopher Pheby
*
* Licensed 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 org.jadira.bindings.core.utils.reflection;
import static org.junit.Assert.assertEquals;
import java.net.URL;
import org.junit.Test;
public class ClassUtilsTest {
@Test
public void testGetClass() {
String className = "java.net.URL";
assertEquals(URL.class, ClassUtils.getClass(getClass().getClassLoader(), className));
assertEquals(URL.class, ClassUtils.getClass(getClass().getClassLoader(), className + " "));
assertEquals(new URL[]{}.getClass(), ClassUtils.getClass(getClass().getClassLoader(), className + "[]"));
assertEquals(new URL[][]{}.getClass(), ClassUtils.getClass(getClass().getClassLoader(), className + "[][]"));
assertEquals(Long.TYPE, ClassUtils.getClass(getClass().getClassLoader(), "long"));
assertEquals(Boolean.TYPE, ClassUtils.getClass(getClass().getClassLoader(), "boolean"));
assertEquals(Float.TYPE, ClassUtils.getClass(getClass().getClassLoader(), "float"));
assertEquals(Short.TYPE, ClassUtils.getClass(getClass().getClassLoader(), "short"));
assertEquals(Byte.TYPE, ClassUtils.getClass(getClass().getClassLoader(), "byte"));
assertEquals(Double.TYPE, ClassUtils.getClass(getClass().getClassLoader(), "double"));
assertEquals(Character.TYPE, ClassUtils.getClass(getClass().getClassLoader(), "char"));
assertEquals(new long[]{}.getClass(), ClassUtils.getClass(getClass().getClassLoader(), "long[]"));
assertEquals(new boolean[]{}.getClass(), ClassUtils.getClass(getClass().getClassLoader(), "boolean[]"));
assertEquals(new float[]{}.getClass(), ClassUtils.getClass(getClass().getClassLoader(), "float[]"));
assertEquals(new short[]{}.getClass(), ClassUtils.getClass(getClass().getClassLoader(), "short[]"));
assertEquals(new byte[]{}.getClass(), ClassUtils.getClass(getClass().getClassLoader(), "byte[]"));
assertEquals(new double[]{}.getClass(), ClassUtils.getClass(getClass().getClassLoader(), "double[]"));
assertEquals(new char[]{}.getClass(), ClassUtils.getClass(getClass().getClassLoader(), "char[]"));
assertEquals(new long[][]{}.getClass(), ClassUtils.getClass(getClass().getClassLoader(), "long[][]"));
}
@Test
public void testDetermineQualifiedName() {
String className = "org.jadira.bindings.core.utils.string.ClassUtilsTest";
assertEquals("org.jadira.bindings.core.utils.string.ClassUtilsTest", ClassUtils.determineQualifiedName(className));
assertEquals("org.jadira.bindings.core.utils.string.ClassUtilsTest", ClassUtils.determineQualifiedName(className + " "));
assertEquals("[Lorg.jadira.bindings.core.utils.string.ClassUtilsTest;", ClassUtils.determineQualifiedName(className + "[]"));
assertEquals("[[Lorg.jadira.bindings.core.utils.string.ClassUtilsTest;", ClassUtils.determineQualifiedName(className + "[][]"));
assertEquals("long", ClassUtils.determineQualifiedName("long"));
assertEquals("boolean", ClassUtils.determineQualifiedName("boolean"));
assertEquals("float", ClassUtils.determineQualifiedName("float"));
assertEquals("short", ClassUtils.determineQualifiedName("short"));
assertEquals("byte", ClassUtils.determineQualifiedName("byte"));
assertEquals("double", ClassUtils.determineQualifiedName("double"));
assertEquals("char", ClassUtils.determineQualifiedName("char"));
assertEquals("[J", ClassUtils.determineQualifiedName("long[]"));
assertEquals("[Z", ClassUtils.determineQualifiedName("boolean[]"));
assertEquals("[F", ClassUtils.determineQualifiedName("float[]"));
assertEquals("[S", ClassUtils.determineQualifiedName("short[]"));
assertEquals("[B", ClassUtils.determineQualifiedName("byte[]"));
assertEquals("[D", ClassUtils.determineQualifiedName("double[]"));
assertEquals("[C", ClassUtils.determineQualifiedName("char[]"));
assertEquals("[[J", ClassUtils.determineQualifiedName("long[][]"));
assertEquals("[[Ljava.net.URL;", ClassUtils.determineQualifiedName("java.net.URL[][]"));
}
@Test
public void testDetermineReadableClassName() {
String className = "org.jadira.bindings.core.utils.string.ClassUtilsTest";
assertEquals("org.jadira.bindings.core.utils.string.ClassUtilsTest", ClassUtils.determineReadableClassName(className));
assertEquals("org.jadira.bindings.core.utils.string.ClassUtilsTest", ClassUtils.determineReadableClassName(className + " "));
assertEquals("org.jadira.bindings.core.utils.string.ClassUtilsTest[]", ClassUtils.determineReadableClassName("[L" + className + ";"));
assertEquals("org.jadira.bindings.core.utils.string.ClassUtilsTest[][]", ClassUtils.determineReadableClassName("[[L" + className + ";"));
assertEquals("long", ClassUtils.determineReadableClassName("long"));
assertEquals("boolean", ClassUtils.determineReadableClassName("boolean"));
assertEquals("float", ClassUtils.determineReadableClassName("float"));
assertEquals("short", ClassUtils.determineReadableClassName("short"));
assertEquals("byte", ClassUtils.determineReadableClassName("byte"));
assertEquals("double", ClassUtils.determineReadableClassName("double"));
assertEquals("char", ClassUtils.determineReadableClassName("char"));
assertEquals("long[]", ClassUtils.determineReadableClassName("[J"));
assertEquals("boolean[]", ClassUtils.determineReadableClassName("[Z"));
assertEquals("float[]", ClassUtils.determineReadableClassName("[F"));
assertEquals("short[]", ClassUtils.determineReadableClassName("[S"));
assertEquals("byte[]", ClassUtils.determineReadableClassName("[B"));
assertEquals("double[]", ClassUtils.determineReadableClassName("[D"));
assertEquals("char[]", ClassUtils.determineReadableClassName("[C"));
assertEquals("long[][]", ClassUtils.determineReadableClassName("[[J"));
assertEquals("java.net.URL[][]", ClassUtils.determineReadableClassName("[[Ljava.net.URL;"));
}
}