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 }