public void GetNextAsBigint() { Tokenizer testSubject = new Tokenizer(long.MinValue.ToString()); long expected = long.MinValue; long actual = testSubject.GetNextAsBigint(); Assert.AreEqual(expected, actual); }
public void EnforceTwoPartIdentifierChain() { Tokenizer testSubject = new Tokenizer(); Assert.AreEqual(false, testSubject.EnforceTwoPartIdentifierChain); testSubject.EnforceTwoPartIdentifierChain = true; Assert.AreEqual(true, testSubject.EnforceTwoPartIdentifierChain); testSubject.Reset("foo.bar.baz"); try { testSubject.GetNextAsName(); } catch (HsqlDataSourceException hdse) { Assert.AreEqual(org.hsqldb.Trace.THREE_PART_IDENTIFIER, -hdse.ErrorCode); } testSubject.EnforceTwoPartIdentifierChain = false; testSubject.Reset("foo.\"bar\".baz.null.true.false"); testSubject.GetNextAsName(); Token[] expected = new Token[] { new Token("FOO",SqlTokenType.Name), new Token("bar",SqlTokenType.DelimitedIdentifier), new Token("BAZ",SqlTokenType.Name), new Token("NULL",SqlTokenType.Name), new Token("TRUE",SqlTokenType.Name), new Token("FALSE",SqlTokenType.Name), }; int i = 0; foreach (Token token in testSubject.IdentifierChain) { Console.WriteLine(token); Console.WriteLine(expected[i]); Assert.AreEqual(expected[i], token); i++; } }
public void WasParameterMarker() { Tokenizer testSubject = new Tokenizer("update test set id = ?, val = ?"); testSubject.GetThis(Token.ValueFor.UPDATE); Assert.AreEqual(false, testSubject.WasParameterMarker); testSubject.GetThis("TEST"); Assert.AreEqual(false, testSubject.WasParameterMarker); testSubject.GetThis(Token.ValueFor.SET); Assert.AreEqual(false, testSubject.WasParameterMarker); testSubject.GetThis("ID"); Assert.AreEqual(false, testSubject.WasParameterMarker); testSubject.GetThis(Token.ValueFor.EQUALS); Assert.AreEqual(false, testSubject.WasParameterMarker); testSubject.GetThis(Token.ValueFor.QUESTION); Assert.AreEqual(true, testSubject.WasParameterMarker); testSubject.GetThis(Token.ValueFor.COMMA); Assert.AreEqual(false, testSubject.WasParameterMarker); testSubject.GetThis("VAL"); Assert.AreEqual(false, testSubject.WasParameterMarker); testSubject.GetThis(Token.ValueFor.EQUALS); Assert.AreEqual(false, testSubject.WasParameterMarker); testSubject.GetThis(Token.ValueFor.QUESTION); Assert.AreEqual(true, testSubject.WasParameterMarker); }
public void TokenTypeName() { Tokenizer testSubject = new Tokenizer(); Assert.AreEqual("None", testSubject.TokenTypeName); object[][] values = new object[][] { new object[] {"2147483649", "BigInt"}, new object[] {Token.ValueFor.TRUE, "Boolean"}, new object[] {"'2009-01-01'", "Date"}, new object[] {"123.0123", "Decimal"}, new object[] {"\"foo\"", "Delimited Identifier"}, new object[] {"123.1e-23", "Float"}, new object[] {"foo.bar", "Identifier Chain"}, new object[] {int.MaxValue.ToString(), "Integer"}, new object[] {"column_one", "Name"}, new object[] {"@MyNamedParameter", "Named Parameter"}, new object[] {"?", "Parameter Marker"}, new object[] {"<", "Special"}, new object[] {"'''foo'' they said.'","String"}, new object[] {"'12:23:02'", "Time"}, new object[] {"'2009-01-01 12:23:02.123456789'", "Timestamp"} }; foreach (object[] row in values) { testSubject.Reset(row[0].ToString()); testSubject.GetNextAsString(); Assert.AreEqual((string)row[1], testSubject.TokenTypeName); } }
public void GetNextAsInt() { Tokenizer testSubject = new Tokenizer("123456789"); int expected = 123456789; int actual = testSubject.GetNextAsInt(); Assert.AreEqual(expected, actual); }
public void Position() { Tokenizer testSubject = new Tokenizer("the relative position is"); Assert.AreEqual(0, testSubject.Position); testSubject.GetNextAsSimpleToken(); testSubject.GetNextAsString(); Assert.AreEqual("the relative".Length, testSubject.Position); }
public void ParameterName() { Tokenizer testSubject = new Tokenizer("select @p_dummy from DUAL"); testSubject.GetNextAsSimpleToken(); testSubject.GetNextAsString(); Assert.AreEqual("p_dummy", testSubject.ParameterName); Assert.AreEqual('@', testSubject.ParameterNamePrefix); }
public void MatchFailed() { // Create Test Method Parameters object token = new object(); object match = new object(); try { throw Tokenizer.MatchFailed(token, match); } catch (HsqlDataSourceException hdse) { Assert.AreEqual(org.hsqldb.Trace.UNEXPECTED_TOKEN, -hdse.ErrorCode); // TODO //Assert.IsTrue(hdse.Message.Contains(org.hsqldb.Trace.getMessage( // org.hsqldb.Trace.TOKEN_REQUIRED))); } Tokenizer testSubject = new Tokenizer("notwhatismatched"); try { testSubject.GetThis("whatismatched"); Assert.Fail("Unexpected successful match of 'whatismatched' to 'notwhatismatched'"); } catch (AssertionException) { throw; } catch (HsqlDataSourceException ex) { Assert.AreEqual(org.hsqldb.Trace.UNEXPECTED_TOKEN, -ex.ErrorCode); } }
public void LiteralValueDataType() { Tokenizer testSubject = new Tokenizer("1 1.0 1.0E2 '2009-01-01' '12:00:01' '2009-01-01 12:00:01' '2009-01-01 12:00:01.123456789'"); testSubject.GetNextAsString(); Assert.AreEqual(SqlTokenType.IntegerLiteral, testSubject.TokenType); Assert.AreEqual(HsqlProviderType.Integer, testSubject.LiteralValueDataType); testSubject.GetNextAsString(); Assert.AreEqual(SqlTokenType.DecimalLiteral, testSubject.TokenType); Assert.AreEqual(HsqlProviderType.Decimal, testSubject.LiteralValueDataType); testSubject.GetNextAsString(); Assert.AreEqual(SqlTokenType.FloatLiteral, testSubject.TokenType); Assert.AreEqual(HsqlProviderType.Double, testSubject.LiteralValueDataType); testSubject.GetNextAsString(); Assert.AreEqual(SqlTokenType.DateLiteral, testSubject.TokenType); Assert.AreEqual(HsqlProviderType.Date, testSubject.LiteralValueDataType); testSubject.GetNextAsString(); Assert.AreEqual(SqlTokenType.TimeLiteral, testSubject.TokenType); Assert.AreEqual(HsqlProviderType.Time, testSubject.LiteralValueDataType); testSubject.GetNextAsString(); Assert.AreEqual(SqlTokenType.TimestampLiteral, testSubject.TokenType); Assert.AreEqual(HsqlProviderType.TimeStamp, testSubject.LiteralValueDataType); testSubject.GetNextAsString(); Assert.AreEqual(SqlTokenType.TimestampLiteral, testSubject.TokenType); Assert.AreEqual(HsqlProviderType.TimeStamp, testSubject.LiteralValueDataType); }
public void GetNextAsString() { Tokenizer testSubject = new Tokenizer("FOO.BAR"); string actual = testSubject.GetNextAsString(); Assert.AreEqual("BAR", actual); Assert.AreEqual(true, testSubject.WasIdentifierChain); Assert.AreEqual("FOO", testSubject.IdentifierChainPredecessor); }
public void GetNextAsSimpleToken() { Tokenizer testSubject = new Tokenizer("FOO"); string actual = testSubject.GetNextAsSimpleToken(); Console.WriteLine(actual); }
public void GetNextAsSimpleName() { // Create Constructor Parameters Tokenizer testSubject = new Tokenizer("SIMPLE"); string expected = "SIMPLE"; string actual = testSubject.GetNextAsSimpleName(); Assert.AreEqual(HsqlProviderType.Null, testSubject.LiteralValueDataType, "literal value data type"); Assert.AreEqual(false, testSubject.WasDelimitedIdentifier); Assert.AreEqual(false, testSubject.WasIdentifierChain); Assert.AreEqual(expected, actual); }
public void GetNextAsName() { Tokenizer testSubject = new Tokenizer("CREATE TABLE \"PUBLIC\".\"Foo \"\"BarBaz\"\"\""); testSubject.GetThis("CREATE"); testSubject.GetThis("TABLE"); string expectedSubjectPart = "Foo \"BarBaz\""; string expectedQualifierPart = "PUBLIC"; string actualSubjectPart = testSubject.GetNextAsName(); string actualQualifierPart = testSubject.IdentifierChainPredecessor; Assert.AreEqual(expectedQualifierPart, actualQualifierPart, "schema qualifier" ); Assert.AreEqual(expectedSubjectPart, actualSubjectPart, "object name"); }
public void WrongDataType() { try { throw Tokenizer.WrongDataType(HsqlProviderType.JavaObject); } catch (HsqlDataSourceException hdse) { Assert.AreEqual(org.hsqldb.Trace.WRONG_DATA_TYPE, -hdse.ErrorCode); // TODO //Assert.IsTrue(hdse.Message.Contains("JAVA_OBJECT"), "message contains JAVA_OBJECT: " + hdse.Message); } Tokenizer testSubject = new Tokenizer("'foo'"); try { testSubject.GetNextAsBigint(); Assert.Fail("Failed to throw wrong data type exception getting 'foo' as BigInt"); } catch (AssertionException) { throw; } catch (HsqlDataSourceException hdse) { Assert.AreEqual(org.hsqldb.Trace.WRONG_DATA_TYPE, -hdse.ErrorCode); } testSubject = new Tokenizer("1.0"); try { testSubject.GetNextAsBigint(); Assert.Fail("Failed to throw wrong data type exception getting 1.0 as BigInt"); } catch (AssertionException) { throw; } catch (HsqlDataSourceException hdse) { Assert.AreEqual(org.hsqldb.Trace.WRONG_DATA_TYPE, -hdse.ErrorCode); } testSubject = new Tokenizer(long.MinValue.ToString()); try { testSubject.GetNextAsBigint(); } catch (HsqlDataSourceException hdse) { if (org.hsqldb.Trace.WRONG_DATA_TYPE == -hdse.ErrorCode) { Assert.Fail(""); } } }
public void WasThis() { Tokenizer testSubject = new Tokenizer("foo bar \"baz\" foo.bar"); testSubject.GetThis("FOO"); testSubject.GetThis("BAR"); Assert.AreEqual(true, testSubject.WasThis("BAR")); Assert.AreEqual(false, testSubject.WasThis("bar")); Assert.AreEqual(false, testSubject.WasThis(" BAR ")); Assert.AreEqual(false, testSubject.WasThis("NOTBAR")); string name = testSubject.GetNextAsName(); // not for use with delimited identifier. Assert.AreEqual(false, testSubject.WasThis("baz")); Assert.AreEqual(false, testSubject.WasThis("BAZ")); Assert.AreEqual(false, testSubject.WasThis(" baz ")); Assert.AreEqual(false, testSubject.WasThis("notbaz")); string s = testSubject.GetNextAsString(); // not for use with identifier chain. Assert.AreEqual(false, testSubject.WasThis("bar")); Assert.AreEqual(false, testSubject.WasThis("BAR")); Assert.AreEqual(false, testSubject.WasThis(" bar ")); Assert.AreEqual(false, testSubject.WasThis("notbar")); }
public void LastPart() { Tokenizer testSubject = new Tokenizer("create table test(id int, \"val\" varchar(12));"); Assert.AreEqual(Token.ValueFor.CREATE, testSubject.GetNextAsSimpleToken()); Assert.AreEqual(6, testSubject.Position); Assert.AreEqual("create", testSubject.LastPart); Assert.AreEqual(Token.ValueFor.TABLE, testSubject.GetNextAsSimpleToken()); Assert.AreEqual(12, testSubject.Position); Assert.AreEqual("create table", testSubject.LastPart); testSubject.PartMarker = testSubject.Position + 1; Assert.AreEqual("TEST", testSubject.GetNextAsSimpleName()); Assert.AreEqual(17, testSubject.Position); Assert.AreEqual("test", testSubject.LastPart); Assert.AreEqual(Token.ValueFor.OPENBRACKET, testSubject.GetNextAsSimpleToken()); Assert.AreEqual(18, testSubject.Position); Assert.AreEqual("test(", testSubject.LastPart); Assert.AreEqual("ID", testSubject.GetNextAsSimpleName()); Assert.AreEqual(20, testSubject.Position); Assert.AreEqual("test(id", testSubject.LastPart); Assert.AreEqual(Token.ValueFor.INT, testSubject.GetNextAsSimpleToken()); Assert.AreEqual(24, testSubject.Position); Assert.AreEqual("test(id int", testSubject.LastPart); testSubject.SetPartMarker(); Assert.AreEqual(Token.ValueFor.COMMA, testSubject.GetNextAsSimpleToken()); Assert.AreEqual(25, testSubject.Position); Assert.AreEqual(Token.ValueFor.COMMA, testSubject.LastPart); Assert.AreEqual("val", testSubject.GetNextAsName()); Assert.AreEqual(SqlTokenType.DelimitedIdentifier, testSubject.TokenType); Assert.AreEqual(31,testSubject.Position); Assert.AreEqual(", \"val\"", testSubject.LastPart); Assert.AreEqual(Token.ValueFor.VARCHAR, testSubject.GetNextAsSimpleToken()); Assert.AreEqual(39, testSubject.Position); Assert.AreEqual(", \"val\" varchar", testSubject.LastPart); Assert.AreEqual(Token.ValueFor.OPENBRACKET, testSubject.GetThis(Token.ValueFor.OPENBRACKET)); Assert.AreEqual(40, testSubject.Position); Assert.AreEqual(", \"val\" varchar(", testSubject.LastPart); Assert.AreEqual(12, testSubject.GetNextAsInt()); Assert.AreEqual(42, testSubject.Position); Assert.AreEqual(", \"val\" varchar(12", testSubject.LastPart); Assert.AreEqual(Token.ValueFor.CLOSEBRACKET, testSubject.GetThis(Token.ValueFor.CLOSEBRACKET)); Assert.AreEqual(43, testSubject.Position); Assert.AreEqual(", \"val\" varchar(12)", testSubject.LastPart); testSubject.SetPartMarker(); Assert.AreEqual(Token.ValueFor.CLOSEBRACKET, testSubject.GetThis(Token.ValueFor.CLOSEBRACKET)); Assert.AreEqual(44, testSubject.Position); Assert.AreEqual(Token.ValueFor.CLOSEBRACKET, testSubject.LastPart); Assert.AreEqual(Token.ValueFor.SEMICOLON, testSubject.GetThis(Token.ValueFor.SEMICOLON)); Assert.AreEqual(45, testSubject.Position); Assert.AreEqual(");", testSubject.LastPart); Assert.AreEqual(string.Empty, testSubject.GetNextAsString()); Assert.AreEqual(45, testSubject.Position); Assert.AreEqual(");", testSubject.LastPart); testSubject.SetPartMarker(); Assert.AreEqual(string.Empty, testSubject.LastPart); }
public void Length() { StringBuilder sb = new StringBuilder(); Tokenizer testSubject = new Tokenizer(); for (int i = 0; i < 30; i++) { testSubject.Reset(sb.ToString()); Assert.AreEqual(i, testSubject.Length); sb.Append(' '); } }
public void GetPart() { Tokenizer testSubject = new Tokenizer("FOO.BAR AS BAR.FOO"); string actual = testSubject.GetPart(0, "FOO.BAR AS BAR.FOO".Length); Assert.AreEqual("FOO.BAR AS BAR.FOO", actual); testSubject.SetPartMarker(); Assert.AreEqual(0, testSubject.PartMarker); Assert.AreEqual(0, testSubject.Position); actual = testSubject.GetNextAsString(); Assert.AreEqual("BAR", actual); Assert.AreEqual(SqlTokenType.IdentifierChain, testSubject.TokenType); Assert.That(!testSubject.WasIdentifierChainPredecessorDelimited); Assert.AreEqual("FOO", testSubject.IdentifierChainPredecessor); Assert.AreEqual("FOO.BAR ".IndexOf(' '), testSubject.Position); actual = testSubject.GetPart(testSubject.PartMarker, testSubject.Position); Assert.AreEqual("FOO.BAR", actual); testSubject.SetPartMarker(); actual = testSubject.GetNextAsString(); Assert.AreEqual(Token.ValueFor.AS, actual); Assert.AreEqual("FOO.BAR_AS ".IndexOf(' '), testSubject.Position); actual = testSubject.GetPart(testSubject.PartMarker, testSubject.Position); Assert.AreEqual(" AS", actual); }
public void GetThis() { Tokenizer testSubject = new Tokenizer("create table test(id int, \"val\" varchar(12));"); Assert.AreEqual(Token.ValueFor.CREATE, testSubject.GetThis(Token.ValueFor.CREATE)); Assert.AreEqual(Token.ValueFor.TABLE, testSubject.GetThis(Token.ValueFor.TABLE)); try { string actual = testSubject.GetThis("test"); Assert.Fail("successful invocation of GetThis(string) with non-match value"); } catch (Exception ex) { Assert.IsInstanceOfType(typeof(HsqlDataSourceException), ex); } Assert.That(testSubject.WasThis("TEST")); Assert.That(testSubject.TokenType == SqlTokenType.Name); Assert.AreEqual(Token.ValueFor.OPENBRACKET, testSubject.GetThis(Token.ValueFor.OPENBRACKET)); Assert.AreEqual("ID", testSubject.GetThis("ID")); Assert.AreEqual(Token.ValueFor.INT, testSubject.GetThis(Token.ValueFor.INT)); Assert.AreEqual(Token.ValueFor.COMMA, testSubject.GetThis(Token.ValueFor.COMMA)); try { Assert.AreEqual("val", testSubject.GetThis("val")); } catch (Exception ex) { Assert.IsInstanceOfType(typeof(HsqlDataSourceException), ex); } Assert.That(testSubject.WasDelimitedIdentifier); Assert.AreEqual("\"val\"", testSubject.NormalizedToken); Assert.AreEqual(Token.ValueFor.VARCHAR, testSubject.GetThis(Token.ValueFor.VARCHAR)); Assert.AreEqual(Token.ValueFor.OPENBRACKET, testSubject.GetThis(Token.ValueFor.OPENBRACKET)); Assert.AreEqual("12", testSubject.GetThis("12")); Assert.That(testSubject.TokenType == SqlTokenType.IntegerLiteral); Assert.That(testSubject.LiteralValueDataType == HsqlProviderType.Integer); Assert.AreEqual(Token.ValueFor.CLOSEBRACKET, testSubject.GetThis(Token.ValueFor.CLOSEBRACKET)); Assert.AreEqual(Token.ValueFor.CLOSEBRACKET, testSubject.GetThis(Token.ValueFor.CLOSEBRACKET)); Assert.AreEqual(Token.ValueFor.SEMICOLON, testSubject.GetThis(Token.ValueFor.SEMICOLON)); }
public void IdentiferChain() { object[] input = new object[] { new object [] { "foo.bar.baz", new Token[]{ new Token("FOO",SqlTokenType.Name), new Token("BAR",SqlTokenType.Name), new Token("BAZ",SqlTokenType.Name) } }, new object [] { "\"foo\".bar.\"baz\"", new Token[]{ new Token("foo",SqlTokenType.DelimitedIdentifier), new Token("BAR",SqlTokenType.Name), new Token("baz",SqlTokenType.DelimitedIdentifier) } }, new object [] { "\"foo.bar\".baz", new Token[]{ new Token("foo.bar",SqlTokenType.DelimitedIdentifier), new Token("BAZ",SqlTokenType.Name) } } }; foreach (object[] item in input) { string toTokenize = item[0] as string; Token[] expectedTokens = item[1] as Token[]; Tokenizer testSubject = new Tokenizer(toTokenize); string result = testSubject.GetNextAsName(); Token[] actualTokens = new List<Token>(testSubject.IdentifierChain).ToArray(); Assert.AreEqual(expectedTokens.Length, actualTokens.Length); for (int i = 0; i < expectedTokens.Length; i++) { Token expectedToken = expectedTokens[i]; Token actualToken = actualTokens[i]; Assert.AreEqual(expectedToken, actualToken); } } }
public void NormalizedToken() { Tokenizer testSubject = new Tokenizer("select 'Let''s Have a nice day!' from DUAL"); testSubject.GetNextAsString(); Assert.AreEqual("SELECT", testSubject.NormalizedToken); testSubject.GetNextAsString(); Assert.AreEqual("'Let''s Have a nice day!'", testSubject.NormalizedToken); }
public void IdentiferChainLengthExceeded() { try { throw Tokenizer.IdentiferChainLengthExceeded(); } catch (Exception ex) { Assert.IsInstanceOfType(typeof(HsqlDataSourceException), ex); Assert.AreEqual(org.hsqldb.Trace.THREE_PART_IDENTIFIER, -((HsqlDataSourceException)ex).ErrorCode); } Tokenizer testSubject = new Tokenizer("foo.bar.baz"); testSubject.EnforceTwoPartIdentifierChain = true; try { string name = testSubject.GetNextAsName(); Assert.Fail("successful invocation of ReadToken() with greater than 2-part identifier token"); } catch (AssertionException) { throw; } catch (Exception ex) { Assert.IsInstanceOfType(typeof(HsqlDataSourceException), ex); Assert.AreEqual(org.hsqldb.Trace.THREE_PART_IDENTIFIER, -((HsqlDataSourceException)ex).ErrorCode); } }
public void PartMarker() { Tokenizer testSubject = new Tokenizer("part of this"); testSubject.SetPartMarker(); int origin = testSubject.PartMarker; testSubject.GetNextAsString(); testSubject.GetNextAsString(); Assert.AreEqual("part of", testSubject.GetPart(origin, testSubject.Position)); }
public void IdentiferChainPredecessor() { Tokenizer testSubject = new Tokenizer("foo.bar.baz"); string token = testSubject.GetNextAsString(); Assert.AreEqual("BAR", testSubject.IdentifierChainPredecessor); testSubject.Reset("bing.foo.\"bar\".baz"); token = testSubject.GetNextAsString(); Assert.AreEqual("bar", testSubject.IdentifierChainPredecessor); }
public void Reset() { Tokenizer testSubject = new Tokenizer("Foo Bar BAz"); string source1 = testSubject.GetPart(0, "Foo Bar BAz".Length); testSubject.Reset("baZ BAR foo"); string source2 = testSubject.GetPart(0, "baZ BAR foo".Length); Assert.AreNotEqual(source1, source2); Assert.AreEqual("Foo Bar BAz", source1); Assert.AreEqual("baZ BAR foo", source2); }
public void IllegalWaitState() { try { throw Tokenizer.IllegalWaitState(); } catch (Exception ex) { Assert.IsInstanceOfType(typeof(HsqlDataSourceException), ex); Assert.AreEqual(org.hsqldb.Trace.ASSERT_FAILED, -((HsqlDataSourceException)ex).ErrorCode); } Tokenizer testSubject = new Tokenizer("t1 t2 t3"); testSubject.GetThis("T1"); object rval; if (!testSubject.IsGetThis("T3")) { try { rval = testSubject.IdentifierChainPredecessor; } catch (Exception ex) { Assert.IsInstanceOfType(typeof(HsqlDataSourceException), ex); Assert.AreEqual(org.hsqldb.Trace.ASSERT_FAILED, -((HsqlDataSourceException)ex).ErrorCode); } } }
public void SetPartMarker() { Tokenizer testSubject = new Tokenizer("set part marker"); testSubject.SetPartMarker(); testSubject.GetNextAsString(); testSubject.GetNextAsString(); Assert.AreEqual("set part", testSubject.GetPart(testSubject.PartMarker, testSubject.Position)); testSubject.SetPartMarker(); testSubject.GetNextAsString(); Assert.AreEqual(" marker", testSubject.GetPart(testSubject.PartMarker, testSubject.Position)); }
public void IsGetThis() { Tokenizer testSubject = new Tokenizer("create table test(id int, \"val\" varchar(12));"); if (testSubject.IsGetThis(Token.ValueFor.ALTER)) { Assert.AreEqual(Token.ValueFor.CREATE, Token.ValueFor.ALTER); } else if (testSubject.IsGetThis(Token.ValueFor.CREATE)) { if (testSubject.IsGetThis(Token.ValueFor.VIEW)) { Assert.AreEqual(Token.ValueFor.TABLE, Token.ValueFor.VIEW); } else if (testSubject.IsGetThis(Token.ValueFor.TABLE)) { string table_name = testSubject.GetNextAsName(); } else { Assert.AreNotEqual(Token.ValueFor.TABLE, testSubject.GetNextAsString()); } } else if (testSubject.IsGetThis(Token.ValueFor.DROP)) { Assert.AreEqual(Token.ValueFor.CREATE, Token.ValueFor.DROP); } else { Assert.AreNotEqual(Token.ValueFor.CREATE, testSubject.GetNextAsString()); } }
public void TokenTypeTest() { Tokenizer testSubject = new Tokenizer(); Assert.AreEqual(SqlTokenType.None, testSubject.TokenType); object[][] values = new object[][] { new object[] {"2147483649", SqlTokenType.BigIntLiteral}, new object[] {Token.ValueFor.TRUE, SqlTokenType.BooleanLiteral}, new object[] {"'2009-01-01'", SqlTokenType.DateLiteral}, new object[] {"123.0123", SqlTokenType.DecimalLiteral}, new object[] {"\"foo\"", SqlTokenType.DelimitedIdentifier}, new object[] {"123.1e-23", SqlTokenType.FloatLiteral}, new object[] {"foo.bar", SqlTokenType.IdentifierChain}, new object[] {int.MaxValue.ToString(), SqlTokenType.IntegerLiteral}, new object[] {"column_one", SqlTokenType.Name}, new object[] {"@MyNamedParameter", SqlTokenType.NamedParameter}, new object[] {"?", SqlTokenType.ParameterMarker}, new object[] {"<", SqlTokenType.Special}, new object[] {"'''foo'' they said.'", SqlTokenType.StringLiteral}, new object[] {"'12:23:02'", SqlTokenType.TimeLiteral}, new object[] {"'2009-01-01 12:23:02.123456789'", SqlTokenType.TimestampLiteral} }; foreach (object[] row in values) { testSubject.Reset(row[0].ToString()); testSubject.GetNextAsString(); Assert.AreEqual((SqlTokenType)row[1], testSubject.TokenType); } }
public void WasNamedParameter() { Tokenizer testSubject = new Tokenizer("update test set id = @IdParam, val = :ValParam"); Assert.AreEqual(false, testSubject.WasNamedParameter); Assert.AreEqual(string.Empty, testSubject.ParameterName); Assert.AreEqual(' ', testSubject.ParameterNamePrefix); testSubject.GetThis(Token.ValueFor.UPDATE); Assert.AreEqual(false, testSubject.WasNamedParameter); Assert.AreEqual(string.Empty, testSubject.ParameterName); Assert.AreEqual(' ', testSubject.ParameterNamePrefix); testSubject.GetThis("TEST"); Assert.AreEqual(false, testSubject.WasNamedParameter); Assert.AreEqual(string.Empty, testSubject.ParameterName); Assert.AreEqual(' ', testSubject.ParameterNamePrefix); testSubject.GetThis(Token.ValueFor.SET); Assert.AreEqual(false, testSubject.WasNamedParameter); Assert.AreEqual(string.Empty, testSubject.ParameterName); Assert.AreEqual(' ', testSubject.ParameterNamePrefix); testSubject.GetThis("ID"); Assert.AreEqual(false, testSubject.WasNamedParameter); Assert.AreEqual(string.Empty, testSubject.ParameterName); Assert.AreEqual(' ', testSubject.ParameterNamePrefix); testSubject.GetThis(Token.ValueFor.EQUALS); Assert.AreEqual(false, testSubject.WasNamedParameter); Assert.AreEqual(string.Empty, testSubject.ParameterName); Assert.AreEqual(' ', testSubject.ParameterNamePrefix); testSubject.GetNextAsString(); Assert.AreEqual(true, testSubject.WasNamedParameter); Assert.AreEqual("IdParam", testSubject.ParameterName); Assert.AreEqual('@', testSubject.ParameterNamePrefix); testSubject.GetThis(Token.ValueFor.COMMA); Assert.AreEqual(false, testSubject.WasNamedParameter); Assert.AreEqual(string.Empty, testSubject.ParameterName); Assert.AreEqual(' ', testSubject.ParameterNamePrefix); testSubject.GetThis("VAL"); Assert.AreEqual(false, testSubject.WasNamedParameter); Assert.AreEqual(string.Empty, testSubject.ParameterName); Assert.AreEqual(' ', testSubject.ParameterNamePrefix); testSubject.GetThis(Token.ValueFor.EQUALS); Assert.AreEqual(false, testSubject.WasNamedParameter); Assert.AreEqual(string.Empty, testSubject.ParameterName); Assert.AreEqual(' ', testSubject.ParameterNamePrefix); testSubject.GetNextAsString(); Assert.AreEqual(true, testSubject.WasNamedParameter); Assert.AreEqual("ValParam", testSubject.ParameterName); Assert.AreEqual(':', testSubject.ParameterNamePrefix); }