/* * Copyright (c) 2010 Mysema Ltd. * All rights reserved. * */ package com.mysema.codegen.support; import static org.junit.Assert.assertEquals; import java.util.*; import org.junit.Test; import com.google.common.base.Optional; import com.google.common.collect.Ordering; public class ClassUtilsTest { @Test public void GetName() { assertEquals("int", ClassUtils.getName(int.class)); assertEquals("int", ClassUtils.getName(int.class, Collections.<String> emptySet(), Collections.<String> emptySet())); assertEquals("Object", ClassUtils.getName(Object.class)); assertEquals("Object[]", ClassUtils.getName(Object[].class)); assertEquals("int", ClassUtils.getName(int.class)); assertEquals("int[]", ClassUtils.getName(int[].class)); assertEquals("void", ClassUtils.getName(void.class)); assertEquals("java.util.Locale", ClassUtils.getName(Locale.class)); assertEquals("java.util.Locale[]", ClassUtils.getName(Locale[].class)); } @Test public void GetName_Packge() { assertEquals("Locale", ClassUtils.getName(Locale.class, Collections.singleton("java.util"), Collections.<String>emptySet())); assertEquals("java.util.Locale", ClassUtils.getName(Locale.class, Collections.singleton("java.util.gen"), Collections.<String>emptySet())); } @Test public void Normalize() { assertEquals(List.class, ClassUtils.normalize(ArrayList.class)); assertEquals(Set.class, ClassUtils.normalize(HashSet.class)); assertEquals(Map.class, ClassUtils.normalize(HashMap.class)); // assertEquals(Collection.class, ClassUtils.normalize(Bag.class)); } @Test public void Normalize_Accessibility() { //com.google.common.base.Absent is not public, cannot be accessed from outside package assertEquals(Optional.class, ClassUtils.normalize(Optional.absent().getClass())); //com.google.common.collect.AllEqualOrdering is not public, cannot be accessed from outside package assertEquals(Ordering.class, ClassUtils.normalize(Ordering.allEqual().getClass())); //TODO interface normalization support? How to know which one? //com.google.common.base.Functions.ToStringFunction is not public, cannot be accessed from outside package //assertEquals(Function.class, ClassUtils.normalize(Functions.toStringFunction().getClass())); } }