/* * Copyright (c) 2005, 2008 Sven Efftinge 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: * Sven Efftinge - Initial API and implementation */ package org.eclipse.gmf.internal.xpand.expression.codeassist; import junit.framework.TestCase; import org.eclipse.gmf.internal.xpand.parser.XpandParsersym; public class ReverseScannerTest extends TestCase { public final void testPreviousToken() { final ReverseScanner s = new ReverseScanner("test"); assertEquals(XpandParsersym.TK_IDENTIFIER, s.previousToken().getKind()); assertNull(s.previousToken()); } public final void testPreviousToken1() { final ReverseScanner s = new ReverseScanner("test test"); assertEquals(XpandParsersym.TK_IDENTIFIER, s.previousToken().getKind()); assertEquals(XpandParsersym.TK_IDENTIFIER, s.previousToken().getKind()); assertNull(s.previousToken()); } // TODO test fails // public final void testPreviousToken2() throws TokenStreamException { // ReverseScanner s = new ReverseScanner("test 4.3"); // assertEquals(XpandParsersym.TK_REAL, // s.previousToken().getKind()); // assertEquals(XpandParsersym.TK_IDENT, // s.previousToken().getKind()); // assertNull(s.previousToken()); // } public final void testPreviousToken3() { final ReverseScanner s = new ReverseScanner("test"); assertEquals(XpandParsersym.TK_IDENTIFIER, s.previousToken().getKind()); assertNull(s.previousToken()); } public final void testPreviousToken4() { final ReverseScanner s = new ReverseScanner("test.operand(Stuff,'test bla stuff').size() / 5 * {x,x}.size()"); assertEquals(XpandParsersym.TK_RPAREN, s.previousToken().getKind()); assertEquals(XpandParsersym.TK_LPAREN, s.previousToken().getKind()); assertEquals(XpandParsersym.TK_IDENTIFIER, s.previousToken().getKind()); assertEquals(XpandParsersym.TK_DOT, s.previousToken().getKind()); assertEquals(XpandParsersym.TK_RBRACE, s.previousToken().getKind()); assertEquals(XpandParsersym.TK_IDENTIFIER, s.previousToken().getKind()); assertEquals(XpandParsersym.TK_COMMA, s.previousToken().getKind()); assertEquals(XpandParsersym.TK_IDENTIFIER, s.previousToken().getKind()); assertEquals(XpandParsersym.TK_LBRACE, s.previousToken().getKind()); assertEquals(XpandParsersym.TK_MULTIPLY, s.previousToken().getKind()); assertEquals(XpandParsersym.TK_INTEGER_LITERAL, s.previousToken().getKind()); assertEquals(XpandParsersym.TK_DIVIDE, s.previousToken().getKind()); assertEquals(XpandParsersym.TK_RPAREN, s.previousToken().getKind()); assertEquals(XpandParsersym.TK_LPAREN, s.previousToken().getKind()); assertEquals(XpandParsersym.TK_IDENTIFIER, s.previousToken().getKind()); assertEquals(XpandParsersym.TK_DOT, s.previousToken().getKind()); // TODO: un-comment on fixing problems with ReverseScanner // assertEquals(XpandParsersym.TK_RPAREN, s.previousToken().getKind()); // assertEquals(XpandParsersym.TK_STRING_LITERAL, s.previousToken().getKind()); // assertEquals(XpandParsersym.TK_COMMA, s.previousToken().getKind()); // assertEquals(XpandParsersym.TK_IDENTIFIER, s.previousToken().getKind()); // assertEquals(XpandParsersym.TK_LPAREN, s.previousToken().getKind()); // assertEquals(XpandParsersym.TK_IDENTIFIER, s.previousToken().getKind()); // assertEquals(XpandParsersym.TK_DOT, s.previousToken().getKind()); // assertEquals(XpandParsersym.TK_IDENTIFIER, s.previousToken().getKind()); // assertNull(s.previousToken()); } public final void testNextToken() { final ReverseScanner s = new ReverseScanner("test 3 4"); assertEquals(XpandParsersym.TK_INTEGER_LITERAL, s.previousToken().getKind()); assertEquals(XpandParsersym.TK_INTEGER_LITERAL, s.previousToken().getKind()); assertEquals(XpandParsersym.TK_IDENTIFIER, s.previousToken().getKind()); assertNull(s.previousToken()); assertEquals(XpandParsersym.TK_IDENTIFIER, s.nextToken().getKind()); assertEquals(XpandParsersym.TK_INTEGER_LITERAL, s.nextToken().getKind()); assertEquals(XpandParsersym.TK_INTEGER_LITERAL, s.nextToken().getKind()); assertNull(s.nextToken()); } 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'")); } }