/** * BSD-style license; for more info see http://pmd.sourceforge.net/license.html */ package net.sourceforge.pmd.lang.java.symboltable; import java.util.ArrayList; import java.util.List; import java.util.Map; import javax.swing.JComponent; import javax.swing.JTextField; import org.junit.Assert; import org.junit.Test; /** * Unit test for {@link SimpleTypedNameDeclaration} */ public class SimpleTypedNameDeclarationTest { /** * Tests the equal method. */ @Test public void testEquals() { Assert.assertEquals(byClass(SimpleTypedNameDeclaration.class), byClass(SimpleTypedNameDeclaration.class)); Assert.assertEquals(byClass(List.class), byClass(ArrayList.class)); Assert.assertEquals(byClass(ArrayList.class), byClass(List.class)); Assert.assertEquals(byName("String"), byName("String")); Assert.assertEquals(byClass(String.class), byName("String")); Assert.assertEquals(byClass(JComponent.class), byClass(JTextField.class)); Assert.assertFalse(byClass(Map.class).equals(byClass(List.class))); Assert.assertFalse(byName("A").equals(byName("B"))); Assert.assertFalse(byClass(String.class).equals(byName("A"))); Assert.assertEquals(by(Double.TYPE, "double"), by(null, "double")); Assert.assertEquals(by(Double.class, "Double"), by(null, "double")); Assert.assertEquals(by(Character.class, "Character"), by(null, "char")); Assert.assertEquals(by(Double.TYPE, "double"), by(null, "float")); Assert.assertEquals(by(Double.TYPE, "double"), by(null, "int")); Assert.assertEquals(by(Double.TYPE, "double"), by(Integer.class, "Integer")); Assert.assertEquals(by(Double.TYPE, "double"), by(null, "long")); Assert.assertEquals(by(Double.TYPE, "double"), by(Long.TYPE, "long")); Assert.assertEquals(by(Double.TYPE, "double"), by(Long.class, "Long")); Assert.assertEquals(by(Float.TYPE, "float"), by(null, "int")); Assert.assertEquals(by(Float.TYPE, "float"), by(Integer.TYPE, "int")); Assert.assertEquals(by(Float.TYPE, "float"), by(Integer.class, "Integer")); Assert.assertEquals(by(Float.TYPE, "float"), by(null, "long")); Assert.assertEquals(by(Float.TYPE, "float"), by(Long.TYPE, "long")); Assert.assertEquals(by(Float.TYPE, "float"), by(Long.class, "Long")); Assert.assertEquals(by(Integer.TYPE, "int"), by(null, "char")); Assert.assertEquals(by(Integer.TYPE, "int"), by(Character.TYPE, "char")); Assert.assertEquals(by(Integer.TYPE, "int"), by(Character.class, "Character")); Assert.assertEquals(by(Long.TYPE, "long"), by(null, "int")); Assert.assertEquals(by(Long.TYPE, "long"), by(Integer.TYPE, "int")); Assert.assertEquals(by(Long.TYPE, "long"), by(Integer.class, "Integer")); Assert.assertEquals(by(Long.TYPE, "long"), by(null, "char")); Assert.assertEquals(by(Long.TYPE, "long"), by(Character.TYPE, "char")); Assert.assertEquals(by(Long.TYPE, "long"), by(Character.class, "Character")); // should always equal to Object Assert.assertEquals(by(Object.class, "Object"), by(null, "Something")); Assert.assertEquals(withNext(byName("Foo.I"), "Foo.B"), byName("Foo.I")); Assert.assertEquals(byName("Foo.I"), withNext(byName("Foo.I"), "Foo.B")); } private static SimpleTypedNameDeclaration byClass(Class<?> c) { return new SimpleTypedNameDeclaration(c.getSimpleName(), c); } private static SimpleTypedNameDeclaration byName(String n) { return new SimpleTypedNameDeclaration(n, null); } private static SimpleTypedNameDeclaration by(Class<?> c, String n) { return new SimpleTypedNameDeclaration(n, c); } private static SimpleTypedNameDeclaration withNext(SimpleTypedNameDeclaration next, String n) { SimpleTypedNameDeclaration t = new SimpleTypedNameDeclaration(n, null); t.addNext(next); return t; } }