1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- #include <yql/essentials/public/purecalc/purecalc.h>
- #include "fake_spec.h"
- #include <yql/essentials/public/purecalc/ut/protos/test_structs.pb.h>
- #include <library/cpp/testing/unittest/registar.h>
- Y_UNIT_TEST_SUITE(TestPg) {
- using namespace NYql::NPureCalc;
- Y_UNIT_TEST(TestPgCompile) {
- auto factory = MakeProgramFactory();
- auto sql = TString(R"(
- SELECT * FROM "Input";
- )");
- UNIT_ASSERT_NO_EXCEPTION([&](){
- factory->MakePullListProgram(FakeIS(1,true), FakeOS(true), sql, ETranslationMode::PG);
- }());
- UNIT_ASSERT_EXCEPTION_CONTAINS([&](){
- factory->MakePullStreamProgram(FakeIS(1,true), FakeOS(true), sql, ETranslationMode::PG);
- }(), TCompileError, "PullList mode");
- UNIT_ASSERT_EXCEPTION_CONTAINS([&](){
- factory->MakePushStreamProgram(FakeIS(1, true), FakeOS(true), sql, ETranslationMode::PG);
- }(), TCompileError, "PullList mode");
- }
- Y_UNIT_TEST(TestSqlWrongTableName) {
- auto factory = MakeProgramFactory();
- auto sql = TString(R"(
- SELECT * FROM WrongTable;
- )");
- UNIT_ASSERT_EXCEPTION_CONTAINS([&](){
- factory->MakePullListProgram(FakeIS(1, true), FakeOS(true), sql, ETranslationMode::PG);
- }(), TCompileError, "Failed to optimize");
- UNIT_ASSERT_EXCEPTION_CONTAINS([&](){
- factory->MakePullStreamProgram(FakeIS(1, true), FakeOS(true), sql, ETranslationMode::PG);
- }(), TCompileError, "PullList mode");
- UNIT_ASSERT_EXCEPTION_CONTAINS([&](){
- factory->MakePushStreamProgram(FakeIS(1, true), FakeOS(true), sql, ETranslationMode::PG);
- }(), TCompileError, "PullList mode");
- }
- Y_UNIT_TEST(TestInvalidSql) {
- auto factory = MakeProgramFactory();
- auto sql = TString(R"(
- Just some invalid SQL;
- )");
- UNIT_ASSERT_EXCEPTION_CONTAINS([&](){
- factory->MakePullListProgram(FakeIS(1, true), FakeOS(true), sql, ETranslationMode::PG);
- }(), TCompileError, "failed to parse PG");
- UNIT_ASSERT_EXCEPTION_CONTAINS([&](){
- factory->MakePullStreamProgram(FakeIS(1, true), FakeOS(true), sql, ETranslationMode::PG);
- }(), TCompileError, "PullList mode");
- UNIT_ASSERT_EXCEPTION_CONTAINS([&](){
- factory->MakePushStreamProgram(FakeIS(1, true), FakeOS(true), sql, ETranslationMode::PG);
- }(), TCompileError, "PullList mode");
- }
- }
|