diff options
| author | vityaman <[email protected]> | 2025-04-07 23:50:34 +0300 |
|---|---|---|
| committer | robot-piglet <[email protected]> | 2025-04-08 00:17:32 +0300 |
| commit | 5af5cb3b7b423f2d3fcebf2e1406d37cbd6f3bbf (patch) | |
| tree | 4a846ecb4e938d459032f34cf013fe5dfdb1010b /yql/essentials/sql/v1/complete/sql_complete_ut.cpp | |
| parent | 6a114f0cafe3074d67f8022fe051f0b28dfe31ab (diff) | |
YQL-19747 Improve yql_complete tool and add input validation
No description
---
Pull Request resolved: https://github.com/ytsaurus/ytsaurus/pull/1185
commit_hash:1def5874ff6a9a5b3dcdd0ad285d2e64b16c9306
Diffstat (limited to 'yql/essentials/sql/v1/complete/sql_complete_ut.cpp')
| -rw-r--r-- | yql/essentials/sql/v1/complete/sql_complete_ut.cpp | 32 |
1 files changed, 23 insertions, 9 deletions
diff --git a/yql/essentials/sql/v1/complete/sql_complete_ut.cpp b/yql/essentials/sql/v1/complete/sql_complete_ut.cpp index 10d358c8d3e..e9f5dbdfb73 100644 --- a/yql/essentials/sql/v1/complete/sql_complete_ut.cpp +++ b/yql/essentials/sql/v1/complete/sql_complete_ut.cpp @@ -63,8 +63,8 @@ Y_UNIT_TEST_SUITE(SqlCompleteTests) { return MakeSqlCompletionEngine(std::move(lexer), std::move(service)); } - TVector<TCandidate> Complete(ISqlCompletionEngine::TPtr& engine, TStringBuf prefix) { - return engine->Complete({prefix}).Candidates; + TVector<TCandidate> Complete(ISqlCompletionEngine::TPtr& engine, TCompletionInput input) { + return engine->Complete(input).Candidates; } Y_UNIT_TEST(Beginning) { @@ -438,17 +438,31 @@ Y_UNIT_TEST_SUITE(SqlCompleteTests) { }; auto engine = MakeSqlCompletionEngineUT(); - UNIT_ASSERT_VALUES_EQUAL(Complete(engine, "se"), expected); - UNIT_ASSERT_VALUES_EQUAL(Complete(engine, "sE"), expected); - UNIT_ASSERT_VALUES_EQUAL(Complete(engine, "Se"), expected); - UNIT_ASSERT_VALUES_EQUAL(Complete(engine, "SE"), expected); + UNIT_ASSERT_VALUES_EQUAL(Complete(engine, {"se"}), expected); + UNIT_ASSERT_VALUES_EQUAL(Complete(engine, {"sE"}), expected); + UNIT_ASSERT_VALUES_EQUAL(Complete(engine, {"Se"}), expected); + UNIT_ASSERT_VALUES_EQUAL(Complete(engine, {"SE"}), expected); } Y_UNIT_TEST(InvalidStatementsRecovery) { auto engine = MakeSqlCompletionEngineUT(); - UNIT_ASSERT_GE(Complete(engine, "select select; ").size(), 35); - UNIT_ASSERT_GE(Complete(engine, "select select;").size(), 35); - UNIT_ASSERT_VALUES_EQUAL_C(Complete(engine, "!;").size(), 0, "Lexer failing"); + UNIT_ASSERT_GE(Complete(engine, {"select select; "}).size(), 35); + UNIT_ASSERT_GE(Complete(engine, {"select select;"}).size(), 35); + UNIT_ASSERT_VALUES_EQUAL_C(Complete(engine, {"!;"}).size(), 0, "Lexer failing"); + } + + Y_UNIT_TEST(InvalidCursorPosition) { + auto engine = MakeSqlCompletionEngineUT(); + + UNIT_ASSERT_NO_EXCEPTION(Complete(engine, {"", 0})); + UNIT_ASSERT_EXCEPTION(Complete(engine, {"", 1}), yexception); + + UNIT_ASSERT_NO_EXCEPTION(Complete(engine, {"s", 0})); + UNIT_ASSERT_NO_EXCEPTION(Complete(engine, {"s", 1})); + + UNIT_ASSERT_NO_EXCEPTION(Complete(engine, {"ы", 0})); + UNIT_ASSERT_EXCEPTION(Complete(engine, {"ы", 1}), yexception); + UNIT_ASSERT_NO_EXCEPTION(Complete(engine, {"ы", 2})); } Y_UNIT_TEST(DefaultNameService) { |
