package uk.co.badgersinfoil.metaas.impl.antlr;
import org.asdt.core.internal.antlr.AS3Parser;
import uk.co.badgersinfoil.metaas.impl.AS3FragmentParser;
import uk.co.badgersinfoil.metaas.impl.ASTUtils;
import uk.co.badgersinfoil.metaas.impl.TokenBuilder;
import junit.framework.TestCase;
public class BasicListUpdateDelegateTest extends TestCase {
public void testReplacedChild() {
BasicListUpdateDelegate delegate = new BasicListUpdateDelegate();
LinkedListTree parent = ASTUtils.newImaginaryAST(AS3Parser.TYPE_SPEC);
int index = 0;
LinkedListTree oldChild = ASTUtils.newAST(AS3Parser.IDENT, "foo");
parent.addChildWithTokens(oldChild);
LinkedListToken space = TokenBuilder.newSpace();
parent.addToken(0, space);
LinkedListToken semi = TokenBuilder.newSemi();
parent.appendToken(semi);
// check preconditions,
assertEquals(space, parent.getStartToken());
assertEquals(semi, parent.getStopToken());
LinkedListTree child = AS3FragmentParser.parseTypeSpec("void").getFirstChild();
// make the change,
delegate.replacedChild(parent, index, child, oldChild);
// check postconditions,
assertEquals(space, parent.getStartToken());
assertEquals(semi, parent.getStopToken());
assertNotNull(space.getNext());
assertEquals("void", space.getNext().getText());
assertSame(semi, space.getNext().getNext());
}
}