package com.innovatian.idea.powershell.test.lang.lexer; import com.innovatian.idea.powershell.lang.lexer.PsTokenTypes; import junit.framework.Assert; public class PsLexerTestsVariables extends PsLexerTestContext { public void testSimpleVariable() { final String toParse = "$a"; lexer.start(toParse); Assert.assertEquals(PsTokenTypes.DOLLAR, lexer.getTokenType()); Assert.assertEquals("$", lexer.getTokenText()); lexer.advance(); Assert.assertEquals(PsTokenTypes.IDENT, lexer.getTokenType()); Assert.assertEquals(lexer.getTokenText(), "a"); lexer.advance(); Assert.assertNull(lexer.getTokenType()); } public void testBlockVariable() { final String toParse = "${a}"; lexer.start(toParse); Assert.assertEquals(PsTokenTypes.DOLLAR, lexer.getTokenType()); Assert.assertEquals("$", lexer.getTokenText()); lexer.advance(); Assert.assertEquals(PsTokenTypes.LCURLY, lexer.getTokenType()); Assert.assertEquals("{", lexer.getTokenText()); lexer.advance(); Assert.assertEquals(PsTokenTypes.IDENT, lexer.getTokenType()); Assert.assertEquals(lexer.getTokenText(), "a"); lexer.advance(); Assert.assertEquals(PsTokenTypes.RCURLY, lexer.getTokenType()); Assert.assertEquals("}", lexer.getTokenText()); lexer.advance(); Assert.assertNull(lexer.getTokenType()); } public void testBlockVariableWithComplexBody() { final String toParse = "${this variable name is \"unusual,\" but permitted}"; lexer.start(toParse); Assert.assertEquals(PsTokenTypes.DOLLAR, lexer.getTokenType()); Assert.assertEquals("$", lexer.getTokenText()); lexer.advance(); Assert.assertEquals("{", lexer.getTokenText()); Assert.assertEquals(PsTokenTypes.LCURLY, lexer.getTokenType()); lexer.advance(); Assert.assertEquals("this variable name is \"unusual,\" but permitted", lexer.getTokenText()); Assert.assertEquals(PsTokenTypes.IDENT, lexer.getTokenType()); lexer.advance(); Assert.assertEquals(PsTokenTypes.RCURLY, lexer.getTokenType()); Assert.assertEquals("}", lexer.getTokenText()); lexer.advance(); Assert.assertNull(lexer.getTokenType()); } }