1 package de.fhdw.wtf.parser.test;
2
3 import static org.junit.Assert.assertEquals;
4
5 import org.junit.Test;
6
7 import de.fhdw.wtf.common.ast.Name;
8 import de.fhdw.wtf.common.ast.QualifiedName;
9 import de.fhdw.wtf.common.ast.UnqualifiedName;
10 import de.fhdw.wtf.common.token.IdentifierToken;
11 import de.fhdw.wtf.common.token.Position;
12
13 public class TestName {
14
15 @Test
16 public void testAddToUnqualifiedName() {
17 final IdentifierToken identifierToken = IdentifierToken.create("given", Position.create("", 0 + 1, 0 + 1, 0));
18 final UnqualifiedName givenName = UnqualifiedName.create(identifierToken);
19 final IdentifierToken newToken = IdentifierToken.create("toAdd", Position.create("", 0 + 1, 0 + 1, 0));
20 final QualifiedName result = (QualifiedName) givenName.addName(newToken);
21
22 assertEquals("given", result.getFirst().getIdentifierToken().getIdentifier());
23 assertEquals("toAdd", ((UnqualifiedName) result.getRest()).getIdentifierToken().getIdentifier());
24 }
25
26 @Test
27 public void dummyTest() {
28 final IdentifierToken identifierToken = IdentifierToken.create("given", Position.create("", 0 + 1, 0 + 1, 0));
29 final UnqualifiedName givenName = UnqualifiedName.create(identifierToken);
30 final IdentifierToken newToken = IdentifierToken.create("toAdd", Position.create("", 0 + 1, 0 + 1, 0));
31 final Name result = givenName.addName(newToken);
32 System.out.println(result);
33 }
34
35 @Test
36 public void testAddToQualifiedNameWithTwoUnqualifiedName() {
37 final IdentifierToken identifierTokenFirst =
38 IdentifierToken.create("givenfirst", Position.create("", 0 + 1, 0 + 1, 0));
39 final UnqualifiedName givenNameFirst = UnqualifiedName.create(identifierTokenFirst);
40 final IdentifierToken identifierTokenRest =
41 IdentifierToken.create("givenrest", Position.create("", 0 + 1, 0 + 1, 0));
42 final UnqualifiedName givenNameRest = UnqualifiedName.create(identifierTokenRest);
43 final QualifiedName givenName = QualifiedName.create(givenNameFirst, givenNameRest);
44 final IdentifierToken newToken = IdentifierToken.create("toAdd", Position.create("", 0 + 1, 0 + 1, 0));
45 final QualifiedName result = (QualifiedName) givenName.addName(newToken);
46
47 assertEquals("givenfirst", result.getFirst().getIdentifierToken().getIdentifier());
48 final QualifiedName rest = (QualifiedName) result.getRest();
49 assertEquals("givenrest", rest.getFirst().getIdentifierToken().getIdentifier());
50 assertEquals("toAdd", ((UnqualifiedName) rest.getRest()).getIdentifierToken().getIdentifier());
51
52 }
53
54 @Test
55 public void testConcat() {
56 final IdentifierToken identifierToken = IdentifierToken.create("group1", Position.create("", 0 + 1, 0 + 1, 0));
57 final IdentifierToken identifierToken2 = IdentifierToken.create("group2", Position.create("", 0 + 1, 0 + 1, 0));
58 final IdentifierToken identifierToken3 = IdentifierToken.create("group3", Position.create("", 0 + 1, 0 + 1, 0));
59 final IdentifierToken identifierToken4 = IdentifierToken.create("class1", Position.create("", 0 + 1, 0 + 1, 0));
60 Name name1 = UnqualifiedName.create(identifierToken);
61 name1 = name1.addName(identifierToken2);
62 Name name2 = UnqualifiedName.create(identifierToken3);
63 name2 = name2.addName(identifierToken4);
64 Name expResult = UnqualifiedName.create(identifierToken);
65 expResult = expResult.addName(identifierToken2);
66 expResult = expResult.addName(identifierToken3);
67 expResult = expResult.addName(identifierToken4);
68 assertEquals(expResult, name1.concat(name2));
69 }
70
71 @Test
72 public void testGetLastAdded() {
73 final IdentifierToken identifierToken = IdentifierToken.create("group1", Position.create("", 0 + 1, 0 + 1, 0));
74 final IdentifierToken identifierToken2 = IdentifierToken.create("group2", Position.create("", 0 + 1, 0 + 1, 0));
75 final UnqualifiedName name1 = UnqualifiedName.create(identifierToken);
76 final Name name2 = name1.addName(identifierToken2);
77 final Name name3 = UnqualifiedName.create(identifierToken2);
78 assertEquals(name1, name1.getLastAddedName());
79 assertEquals(name3, name2.getLastAddedName());
80 }
81
82 @Test
83 public void testEqualsPartial() {
84 final IdentifierToken identifierToken = IdentifierToken.create("group1", Position.create("", 0 + 1, 0 + 1, 0));
85 final IdentifierToken identifierToken2 = IdentifierToken.create("group2", Position.create("", 0 + 1, 0 + 1, 0));
86 final UnqualifiedName name1 = UnqualifiedName.create(identifierToken);
87 final Name name2 = name1.addName(identifierToken2);
88 final Name name3 = UnqualifiedName.create(identifierToken2);
89 final Name name4 = name3.addName(identifierToken);
90 assertEquals(true, name2.equalsPartial(name4));
91 }
92 }