package com.innovatian.idea.powershell.test.lang.lexer; import com.innovatian.idea.powershell.lang.lexer.PsTokenTypes; import junit.framework.Assert; public class PsLexerTestsString extends PsLexerTestContext { public void testDoubleQuotedStringWithIdenifier() { final String toParse = "\"$a\""; lexer.start(toParse); Assert.assertEquals(PsTokenTypes.EXPSTRING_BEGIN, lexer.getTokenType()); Assert.assertEquals("\"", lexer.getTokenText()); lexer.advance(); Assert.assertEquals(PsTokenTypes.DOLLAR, lexer.getTokenType()); Assert.assertEquals("$", lexer.getTokenText()); lexer.advance(); Assert.assertEquals(PsTokenTypes.IDENT, lexer.getTokenType()); Assert.assertEquals("a", lexer.getTokenText()); lexer.advance(); Assert.assertEquals(PsTokenTypes.EXPSTRING_END, lexer.getTokenType()); Assert.assertEquals("\"", lexer.getTokenText()); lexer.advance(); Assert.assertNull(lexer.getTokenType()); } public void testDoubleQuotedStringWithIdenifierInCurlyBraces() { final String toParse = "\"${a}\""; lexer.start(toParse); Assert.assertEquals(PsTokenTypes.EXPSTRING_BEGIN, lexer.getTokenType()); Assert.assertEquals("\"", lexer.getTokenText()); lexer.advance(); 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.assertEquals(PsTokenTypes.EXPSTRING_END, lexer.getTokenType()); Assert.assertEquals("\"", lexer.getTokenText()); lexer.advance(); Assert.assertNull(lexer.getTokenType()); } public void testEmptyDoubleQuotedString() { final String toParse = "\"\""; lexer.start(toParse); Assert.assertEquals(PsTokenTypes.EXPSTRING_LITERAL, lexer.getTokenType()); Assert.assertEquals("\"\"", lexer.getTokenText()); lexer.advance(); Assert.assertNull(lexer.getTokenType()); } public void testEmptySingleQuotedString() { final String toParse = "\'\'"; lexer.start(toParse); Assert.assertEquals(PsTokenTypes.STRING_LITERAL, lexer.getTokenType()); Assert.assertEquals("\'\'", lexer.getTokenText()); lexer.advance(); Assert.assertNull(lexer.getTokenType()); } public void testSingleQuotedStringWithWithIdentifier() { final String toParse = "\'$value\'"; lexer.start(toParse); Assert.assertEquals(PsTokenTypes.STRING_LITERAL, lexer.getTokenType()); Assert.assertEquals("\'$value\'", lexer.getTokenText()); lexer.advance(); Assert.assertNull(lexer.getTokenType()); } public void testSingleQuotedStringWithWithIdentifierInCurlyBraces() { final String toParse = "\'${value}\'"; lexer.start(toParse); Assert.assertEquals(PsTokenTypes.STRING_LITERAL, lexer.getTokenType()); Assert.assertEquals("\'${value}\'", lexer.getTokenText()); lexer.advance(); Assert.assertNull(lexer.getTokenType()); } }