/*******************************************************************************
* Copyright (c) 2005, 2007 committers of openArchitectureWare and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* committers of openArchitectureWare - initial API and implementation
*******************************************************************************/
package org.eclipse.xtend.expression.codeassist;
import junit.framework.TestCase;
import org.eclipse.internal.xtend.expression.codeassist.ReverseScanner;
import org.eclipse.internal.xtend.xtend.parser.XtendLexer;
public class ReverseScannerTest extends TestCase {
public final void testPreviousToken() throws Exception {
final ReverseScanner s = new ReverseScanner("test");
assertEquals(XtendLexer.Identifier, s.previousToken().getType());
assertNull(s.previousToken());
}
public final void testPreviousToken1() throws Exception {
final ReverseScanner s = new ReverseScanner("test test");
assertEquals(XtendLexer.Identifier, s.previousToken().getType());
assertEquals(XtendLexer.Identifier, s.previousToken().getType());
assertNull(s.previousToken());
}
// TODO test fails
// public final void testPreviousToken2() throws TokenStreamException {
// ReverseScanner s = new ReverseScanner("test 4.3");
// assertEquals(XtendLexer.REAL,
// s.previousToken().getType());
// assertEquals(XtendLexer.Identifier,
// s.previousToken().getType());
// assertNull(s.previousToken());
// }
public final void testPreviousToken3() throws Exception {
final ReverseScanner s = new ReverseScanner("test");
assertEquals(XtendLexer.Identifier, s.previousToken().getType());
assertNull(s.previousToken());
}
public final void testPreviousToken4() throws Exception {
final ReverseScanner s = new ReverseScanner(
"test.typeSelect(Stuff,'test bla stuff').size() / 5 * {x,x}.size()");
assertEquals(")", s.previousToken().getText());
assertEquals("(", s.previousToken().getText());
assertEquals(XtendLexer.Identifier, s.previousToken().getType());
assertEquals(".", s.previousToken().getText());
assertEquals("}", s.previousToken().getText());
assertEquals(XtendLexer.Identifier, s.previousToken().getType());
assertEquals(",", s.previousToken().getText());
assertEquals(XtendLexer.Identifier, s.previousToken().getType());
assertEquals("{", s.previousToken().getText());
assertEquals("*", s.previousToken().getText());
assertEquals(XtendLexer.IntLiteral, s.previousToken().getType());
assertEquals("/", s.previousToken().getText());
assertEquals(")", s.previousToken().getText());
assertEquals("(", s.previousToken().getText());
assertEquals(XtendLexer.Identifier, s.previousToken().getType());
assertEquals(".", s.previousToken().getText());
assertEquals(")", s.previousToken().getText());
assertEquals(XtendLexer.StringLiteral, s.previousToken().getType());
assertEquals(",", s.previousToken().getText());
assertEquals(XtendLexer.Identifier, s.previousToken().getType());
assertEquals("(", s.previousToken().getText());
assertEquals("typeSelect", s.previousToken().getText());
assertEquals(".", s.previousToken().getText());
assertEquals(XtendLexer.Identifier, s.previousToken().getType());
assertNull(s.previousToken());
}
public final void testNextToken() throws Exception {
final ReverseScanner s = new ReverseScanner("test 3 4");
for (int i = 0; i < 5; i++) {
assertEquals(XtendLexer.IntLiteral, s.previousToken().getType());
assertEquals(7,s.getOffset());
assertEquals(XtendLexer.IntLiteral, s.previousToken().getType());
assertEquals(5,s.getOffset());
assertEquals(XtendLexer.Identifier, s.previousToken().getType());
assertEquals(0,s.getOffset());
assertNull(s.previousToken());
assertEquals(0,s.getOffset());
assertEquals(XtendLexer.Identifier, s.nextToken().getType());
assertEquals(0,s.getOffset());
assertEquals(XtendLexer.IntLiteral, s.nextToken().getType());
assertEquals(5,s.getOffset());
assertEquals(XtendLexer.IntLiteral, s.nextToken().getType());
assertEquals(7,s.getOffset());
assertNull(s.nextToken());
assertEquals(8,s.getOffset());
}
}
//
// public final void testGetString() {
// final ReverseScanner s = new ReverseScanner("");
//
// assertEquals("'test'", s.getString("'test'"));
// assertEquals("\"test\"", s.getString("\"test\""));
// assertEquals("'test'", s.getString("'test' "));
// assertEquals("'test'", s.getString(" 'test'"));
// assertEquals("'te\\'\"st'", s.getString("hallo 'te\\'\"st'"));
//
// }
}