View Javadoc
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  }