/*
* Copyright 2010 Chris 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.jdk;
import static org.junit.Assert.assertEquals;
import java.net.URL;
import org.junit.Test;
public class ClassStringBindingTest {
private static final ClassStringBinding BINDING = new ClassStringBinding();
@Test
public void testUnmarshal() {
String className = "java.net.URL";
assertEquals(URL.class, BINDING.unmarshal(className));
assertEquals(new URL[]{}.getClass(), BINDING.unmarshal(className + "[]"));
assertEquals(new URL[][]{}.getClass(), BINDING.unmarshal(className + "[][]"));
assertEquals(Long.TYPE, BINDING.unmarshal("long"));
assertEquals(Boolean.TYPE, BINDING.unmarshal("boolean"));
assertEquals(Float.TYPE, BINDING.unmarshal("float"));
assertEquals(Short.TYPE, BINDING.unmarshal("short"));
assertEquals(Byte.TYPE, BINDING.unmarshal("byte"));
assertEquals(Double.TYPE, BINDING.unmarshal("double"));
assertEquals(Character.TYPE, BINDING.unmarshal("char"));
assertEquals(new long[]{}.getClass(), BINDING.unmarshal("long[]"));
assertEquals(new boolean[]{}.getClass(), BINDING.unmarshal("boolean[]"));
assertEquals(new float[]{}.getClass(), BINDING.unmarshal("float[]"));
assertEquals(new short[]{}.getClass(), BINDING.unmarshal("short[]"));
assertEquals(new byte[]{}.getClass(), BINDING.unmarshal("byte[]"));
assertEquals(new double[]{}.getClass(), BINDING.unmarshal("double[]"));
assertEquals(new char[]{}.getClass(), BINDING.unmarshal("char[]"));
assertEquals(new long[][]{}.getClass(), BINDING.unmarshal("long[][]"));
}
@Test
public void testMarshal() {
assertEquals("org.jadira.bindings.core.jdk.ClassStringBindingTest", BINDING.marshal(ClassStringBindingTest.class));
assertEquals("org.jadira.bindings.core.jdk.ClassStringBindingTest[]", BINDING.marshal(new ClassStringBindingTest[]{}.getClass()));
assertEquals("org.jadira.bindings.core.jdk.ClassStringBindingTest[][]", BINDING.marshal(new ClassStringBindingTest[][]{}.getClass()));
assertEquals("long", BINDING.marshal(Long.TYPE));
assertEquals("boolean", BINDING.marshal(Boolean.TYPE));
assertEquals("float", BINDING.marshal(Float.TYPE));
assertEquals("short", BINDING.marshal(Short.TYPE));
assertEquals("byte", BINDING.marshal(Byte.TYPE));
assertEquals("double", BINDING.marshal(Double.TYPE));
assertEquals("char", BINDING.marshal(Character.TYPE));
assertEquals("long[]", BINDING.marshal(new long[]{}.getClass()));
assertEquals("boolean[]", BINDING.marshal(new boolean[]{}.getClass()));
assertEquals("float[]", BINDING.marshal(new float[]{}.getClass()));
assertEquals("short[]", BINDING.marshal(new short[]{}.getClass()));
assertEquals("byte[]", BINDING.marshal(new byte[]{}.getClass()));
assertEquals("double[]", BINDING.marshal(new double[]{}.getClass()));
assertEquals("char[]", BINDING.marshal(new char[]{}.getClass()));
assertEquals("long[][]", BINDING.marshal(new long[][]{}.getClass()));
}
}