1
2
3
4 package net.sourceforge.pmd.lang.java.symboltable;
5
6 import java.util.ArrayList;
7 import java.util.List;
8 import java.util.Map;
9
10 import javax.swing.JComponent;
11 import javax.swing.JTextField;
12
13 import org.junit.Assert;
14 import org.junit.Test;
15
16
17
18
19 public class SimpleTypedNameDeclarationTest {
20
21
22
23
24 @Test
25 public void testEquals() {
26 Assert.assertEquals(byClass(SimpleTypedNameDeclaration.class), byClass(SimpleTypedNameDeclaration.class));
27 Assert.assertEquals(byClass(List.class), byClass(ArrayList.class));
28 Assert.assertEquals(byClass(ArrayList.class), byClass(List.class));
29 Assert.assertEquals(byName("String"), byName("String"));
30 Assert.assertEquals(byClass(String.class), byName("String"));
31 Assert.assertEquals(byClass(JComponent.class), byClass(JTextField.class));
32
33 Assert.assertFalse(byClass(Map.class).equals(byClass(List.class)));
34 Assert.assertFalse(byName("A").equals(byName("B")));
35 Assert.assertFalse(byClass(String.class).equals(byName("A")));
36
37 Assert.assertEquals(by(Double.TYPE, "double"), by(null, "double"));
38 Assert.assertEquals(by(Double.class, "Double"), by(null, "double"));
39 Assert.assertEquals(by(Character.class, "Character"), by(null, "char"));
40 Assert.assertEquals(by(Double.TYPE, "double"), by(null, "float"));
41 Assert.assertEquals(by(Double.TYPE, "double"), by(null, "int"));
42 Assert.assertEquals(by(Double.TYPE, "double"), by(Integer.class, "Integer"));
43 Assert.assertEquals(by(Double.TYPE, "double"), by(null, "long"));
44 Assert.assertEquals(by(Double.TYPE, "double"), by(Long.TYPE, "long"));
45 Assert.assertEquals(by(Double.TYPE, "double"), by(Long.class, "Long"));
46 Assert.assertEquals(by(Float.TYPE, "float"), by(null, "int"));
47 Assert.assertEquals(by(Float.TYPE, "float"), by(Integer.TYPE, "int"));
48 Assert.assertEquals(by(Float.TYPE, "float"), by(Integer.class, "Integer"));
49 Assert.assertEquals(by(Float.TYPE, "float"), by(null, "long"));
50 Assert.assertEquals(by(Float.TYPE, "float"), by(Long.TYPE, "long"));
51 Assert.assertEquals(by(Float.TYPE, "float"), by(Long.class, "Long"));
52 Assert.assertEquals(by(Integer.TYPE, "int"), by(null, "char"));
53 Assert.assertEquals(by(Integer.TYPE, "int"), by(Character.TYPE, "char"));
54 Assert.assertEquals(by(Integer.TYPE, "int"), by(Character.class, "Character"));
55 Assert.assertEquals(by(Long.TYPE, "long"), by(null, "int"));
56 Assert.assertEquals(by(Long.TYPE, "long"), by(Integer.TYPE, "int"));
57 Assert.assertEquals(by(Long.TYPE, "long"), by(Integer.class, "Integer"));
58 Assert.assertEquals(by(Long.TYPE, "long"), by(null, "char"));
59 Assert.assertEquals(by(Long.TYPE, "long"), by(Character.TYPE, "char"));
60 Assert.assertEquals(by(Long.TYPE, "long"), by(Character.class, "Character"));
61
62
63 Assert.assertEquals(by(Object.class, "Object"), by(null, "Something"));
64
65 Assert.assertEquals(withNext(byName("Foo.I"), "Foo.B"), byName("Foo.I"));
66 Assert.assertEquals(byName("Foo.I"), withNext(byName("Foo.I"), "Foo.B"));
67 }
68
69 private static SimpleTypedNameDeclaration byClass(Class<?> c) {
70 return new SimpleTypedNameDeclaration(c.getSimpleName(), c);
71 }
72 private static SimpleTypedNameDeclaration byName(String n) {
73 return new SimpleTypedNameDeclaration(n, null);
74 }
75 private static SimpleTypedNameDeclaration by(Class<?> c, String n) {
76 return new SimpleTypedNameDeclaration(n, c);
77 }
78 private static SimpleTypedNameDeclaration withNext(SimpleTypedNameDeclaration next, String n) {
79 SimpleTypedNameDeclaration t = new SimpleTypedNameDeclaration(n, null);
80 t.addNext(next);
81 return t;
82 }
83 }