public void tokenizer_is_not_at_end_with_valid_query_string() { var testObject = new QueryTokenizer(); testObject.Start("blah"); Assert.False(testObject.AtEnd); }
public void tokenizer_recognizes_semi_colon() { var testObject = new QueryTokenizer(); testObject.Start(";"); Assert.True(testObject.Token == QueryTokens.SemiColon); Assert.True(testObject.TokenString == ";"); }
public void failed_expectation_throws_exception() { var testObject = new QueryTokenizer(); testObject.Start("blah"); Assert.Throws <ApplicationException>(() => testObject.Expect(QueryTokens.UniqueID)); Assert.True(testObject.AtEnd); }
public void succeeded_expectation_advances() { var testObject = new QueryTokenizer(); testObject.Start("blah#foo"); testObject.Expect(QueryTokens.Name); Assert.Equal(QueryTokens.UniqueID, testObject.Token); }
public void advancing_too_far_with_1_token_throws_exception() { var testObject = new QueryTokenizer(); testObject.Start("blah"); testObject.Advance(); Assert.Throws <ApplicationException>(() => testObject.Advance()); }
public void tokenizer_recognizes_unique_id() { var testObject = new QueryTokenizer(); var name = "blah"; testObject.Start("#" + name); Assert.True(testObject.Token == QueryTokens.UniqueID); Assert.True(testObject.TokenString == name); }
public void tokenizer_recognizes_name() { var testObject = new QueryTokenizer(); var name = "blah"; testObject.Start(name); Assert.True(testObject.Token == QueryTokens.Name); Assert.True(testObject.TokenString == name); }
public void tokenizer_recognizes_name_with_preceding_whitespace() { var testObject = new QueryTokenizer(); var name = "blah"; testObject.Start(" " + name); Assert.True(testObject.Token == QueryTokens.Name); Assert.True(testObject.TokenString == name); }
public void tokenizer_recognizes_quoted_string() { var testObject = new QueryTokenizer(); var str = "hello there"; testObject.Start("\"" + str + "\""); Assert.True(testObject.Token == QueryTokens.QuotedString); Assert.True(testObject.TokenString == str); }
public void tokenizer_recognizes_empty_quoted_string_alt() { var testObject = new QueryTokenizer(); var str = string.Empty; testObject.Start("'" + str + "'"); Assert.True(testObject.Token == QueryTokens.QuotedString); Assert.True(testObject.TokenString == str); }
public void advancing_to_unterminated_quoted_string_throws_alt() { var testObject = new QueryTokenizer(); testObject.Start("name 'whatever"); Assert.Throws <ApplicationException>(() => { testObject.Advance(); // Go past name testObject.Advance(); // Go poast whitespace. }); }
public void advancing_to_broken_unique_id_causes_exception() { var testObject = new QueryTokenizer(); testObject.Start("name #"); Assert.Throws <ApplicationException>(() => testObject.Advance()); Assert.Equal(QueryTokens.End, testObject.Token); Assert.Equal(string.Empty, testObject.TokenString); Assert.True(testObject.AtEnd); }
public void advancing_with_a_single_token_ends_tokenizer() { var testObject = new QueryTokenizer(); testObject.Start("blah"); testObject.Advance(); Assert.True(testObject.AtEnd); Assert.Equal(QueryTokens.End, testObject.Token); Assert.Equal(string.Empty, testObject.TokenString); }
public void tokenizer_recognizes_question_mark_and_name_with_separator() { var testObject = new QueryTokenizer(); var name = "name"; testObject.Start("? " + name); Assert.True(testObject.Token == QueryTokens.QuestionMark); Assert.True(testObject.TokenString == "?"); testObject.Advance(); Assert.True(testObject.Token == QueryTokens.Name); Assert.True(testObject.TokenString == name); }
public void tokenizer_recognizes_colon_and_name_separated_by_whitespace() { var testObject = new QueryTokenizer(); var name = "name"; testObject.Start(": " + name); Assert.True(testObject.Token == QueryTokens.Colon); Assert.True(testObject.TokenString == ":"); testObject.Advance(); Assert.True(testObject.Token == QueryTokens.Name); Assert.True(testObject.TokenString == name); }
public void tokenizer_recognizes_exclamation_mark_and_name_with_whitespace_in_between() { var testObject = new QueryTokenizer(); var name = "name"; testObject.Start("! " + name); Assert.True(testObject.Token == QueryTokens.ExclamationMark); Assert.True(testObject.TokenString == "!"); testObject.Advance(); Assert.True(testObject.Token == QueryTokens.Name); Assert.True(testObject.TokenString == name); }
public void tokenizer_recognizes_greater_than() { var testObject = new QueryTokenizer(); var name = "name"; testObject.Start(">" + name); Assert.True(testObject.Token == QueryTokens.GreaterThan); Assert.True(testObject.TokenString == ">"); testObject.Advance(); Assert.True(testObject.Token == QueryTokens.Name); Assert.True(testObject.TokenString == name); }
public void tokenizer_recognizes_slash() { var testObject = new QueryTokenizer(); var name = "name"; testObject.Start("/" + name); Assert.True(testObject.Token == QueryTokens.Slash); Assert.True(testObject.TokenString == "/"); testObject.Advance(); Assert.True(testObject.Token == QueryTokens.Name); Assert.True(testObject.TokenString == name); }
public void tokenizer_recognizes_two_unique_ids_with_no_space_between() { var testObject = new QueryTokenizer(); var name1 = "name1"; var name2 = "name2"; testObject.Start("#" + name1 + "#" + name2); Assert.True(testObject.Token == QueryTokens.UniqueID); Assert.True(testObject.TokenString == name1); testObject.Advance(); Assert.True(testObject.Token == QueryTokens.UniqueID); Assert.True(testObject.TokenString == name2); }
public void tokenizer_recognizes_two_names_separated_by_whitespace() { var testObject = new QueryTokenizer(); var name1 = "name1"; var name2 = "name2"; testObject.Start(name1 + " " + name2); Assert.True(testObject.Token == QueryTokens.Name); Assert.True(testObject.TokenString == name1); testObject.Advance(); Assert.True(testObject.Token == QueryTokens.Name); Assert.True(testObject.TokenString == name2); }
public void tokenizer_recognizes_unique_id_then_name() { var testObject = new QueryTokenizer(); var name1 = "name1"; var name2 = "name2"; testObject.Start("#" + name1 + " " + name2); Assert.True(testObject.Token == QueryTokens.UniqueID); Assert.True(testObject.TokenString == name1); testObject.Advance(); Assert.True(testObject.Token == QueryTokens.Name); Assert.True(testObject.TokenString == name2); }
public void tokenizer_quoted_string_ends_name_token() { var testObject = new QueryTokenizer(); var name = "foo"; var str = "hello there"; testObject.Start(name + "\"" + str + "\""); Assert.True(testObject.Token == QueryTokens.Name); Assert.True(testObject.TokenString == name); testObject.Advance(); Assert.True(testObject.Token == QueryTokens.QuotedString); Assert.True(testObject.TokenString == str); }
public void exclamation_mark_can_separate_names() { var testObject = new QueryTokenizer(); var name1 = "name1"; var name2 = "name2"; testObject.Start(name1 + "!" + name2); Assert.True(testObject.Token == QueryTokens.Name); Assert.True(testObject.TokenString == name1); testObject.Advance(); Assert.True(testObject.Token == QueryTokens.ExclamationMark); Assert.True(testObject.TokenString == "!"); testObject.Advance(); Assert.True(testObject.Token == QueryTokens.Name); Assert.True(testObject.TokenString == name2); }
public void semi_colon_can_separate_names() { var testObject = new QueryTokenizer(); var name1 = "name1"; var name2 = "name2"; testObject.Start(name1 + ";" + name2); Assert.True(testObject.Token == QueryTokens.Name); Assert.True(testObject.TokenString == name1); testObject.Advance(); Assert.True(testObject.Token == QueryTokens.SemiColon); Assert.True(testObject.TokenString == ";"); testObject.Advance(); Assert.True(testObject.Token == QueryTokens.Name); Assert.True(testObject.TokenString == name2); }
public void slash_can_separate_names() { var testObject = new QueryTokenizer(); var name1 = "name1"; var name2 = "name2"; testObject.Start(name1 + "/" + name2); Assert.True(testObject.Token == QueryTokens.Name); Assert.True(testObject.TokenString == name1); testObject.Advance(); Assert.True(testObject.Token == QueryTokens.Slash); Assert.True(testObject.TokenString == "/"); testObject.Advance(); Assert.True(testObject.Token == QueryTokens.Name); Assert.True(testObject.TokenString == name2); }
public void tokenizer_recognizes_three_names() { var testObject = new QueryTokenizer(); var name1 = "name1"; var name2 = "name2"; var name3 = "name3"; testObject.Start(name1 + " " + name2 + " " + name3); Assert.True(testObject.Token == QueryTokens.Name); Assert.True(testObject.TokenString == name1); testObject.Advance(); Assert.True(testObject.Token == QueryTokens.Name); Assert.True(testObject.TokenString == name2); testObject.Advance(); Assert.True(testObject.Token == QueryTokens.Name); Assert.True(testObject.TokenString == name3); }