From 28585110dd6acb95ab3bbc9aafbb57cdef3b17a9 Mon Sep 17 00:00:00 2001 From: Navnath Gadakh Date: Thu, 11 Jul 2019 09:23:13 +0100 Subject: [PATCH] Add Reverse Engineered SQL tests for Packages. Fixes #4456 --- docs/en_US/release_notes_4_11.rst | 1 + .../alter_package_headers_and_comment.sql | 12 +++++ .../create_package_with_all_options.sql | 17 +++++++ .../packages/tests/ppas/10_plus/test.json | 43 ++++++++++++++++++ .../alter_package_headers_and_comment.sql | 12 +++++ .../create_package_with_all_options.sql | 17 +++++++ .../packages/tests/ppas/9.2_plus/test.json | 44 +++++++++++++++++++ 7 files changed, 146 insertions(+) create mode 100644 web/pgadmin/browser/server_groups/servers/databases/schemas/packages/tests/ppas/10_plus/alter_package_headers_and_comment.sql create mode 100644 web/pgadmin/browser/server_groups/servers/databases/schemas/packages/tests/ppas/10_plus/create_package_with_all_options.sql create mode 100644 web/pgadmin/browser/server_groups/servers/databases/schemas/packages/tests/ppas/10_plus/test.json create mode 100644 web/pgadmin/browser/server_groups/servers/databases/schemas/packages/tests/ppas/9.2_plus/alter_package_headers_and_comment.sql create mode 100644 web/pgadmin/browser/server_groups/servers/databases/schemas/packages/tests/ppas/9.2_plus/create_package_with_all_options.sql create mode 100644 web/pgadmin/browser/server_groups/servers/databases/schemas/packages/tests/ppas/9.2_plus/test.json diff --git a/docs/en_US/release_notes_4_11.rst b/docs/en_US/release_notes_4_11.rst index 00e528019..3ca075068 100644 --- a/docs/en_US/release_notes_4_11.rst +++ b/docs/en_US/release_notes_4_11.rst @@ -21,6 +21,7 @@ Housekeeping | `Issue #4452 `_ - Add Reverse Engineered SQL tests for Languages. | `Issue #4453 `_ - Add Reverse Engineered SQL tests for Extensions. | `Issue #4454 `_ - Add Reverse Engineered SQL tests for FTS Configurations. +| `Issue #4456 `_ - Add Reverse Engineered SQL tests for Packages. Bug fixes ********* diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/packages/tests/ppas/10_plus/alter_package_headers_and_comment.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/packages/tests/ppas/10_plus/alter_package_headers_and_comment.sql new file mode 100644 index 000000000..4a8f67231 --- /dev/null +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/packages/tests/ppas/10_plus/alter_package_headers_and_comment.sql @@ -0,0 +1,12 @@ +-- Package: public."pkg_emp_$%{}[]()&*^!@""'`\/#" + +-- DROP PACKAGE public."pkg_emp_$%{}[]()&*^!@""'`\/#"; + +CREATE OR REPLACE PACKAGE public."pkg_emp_$%{}[]()&*^!@""'`\/#" +IS +PROCEDURE get_name(p_empno numeric); +END "pkg_emp_$%{}[]()&*^!@""'`\/#"; + + +COMMENT ON PACKAGE public."pkg_emp_$%{}[]()&*^!@""'`\/#" + IS 'test comment updated'; diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/packages/tests/ppas/10_plus/create_package_with_all_options.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/packages/tests/ppas/10_plus/create_package_with_all_options.sql new file mode 100644 index 000000000..36982f95b --- /dev/null +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/packages/tests/ppas/10_plus/create_package_with_all_options.sql @@ -0,0 +1,17 @@ +-- Package: public."pkg_emp_$%{}[]()&*^!@""'`\/#" + +-- DROP PACKAGE public."pkg_emp_$%{}[]()&*^!@""'`\/#"; + +CREATE OR REPLACE PACKAGE public."pkg_emp_$%{}[]()&*^!@""'`\/#" +IS +FUNCTION func1(v1 integer) RETURN integer; +END "pkg_emp_$%{}[]()&*^!@""'`\/#"; + + +CREATE OR REPLACE PACKAGE BODY public."pkg_emp_$%{}[]()&*^!@""'`\/#" +IS +FUNCTION func1(v1 integer) RETURN integer IS BEGIN RETURN V1+10;END FUNC1; +END "pkg_emp_$%{}[]()&*^!@""'`\/#"; + +COMMENT ON PACKAGE public."pkg_emp_$%{}[]()&*^!@""'`\/#" + IS 'test comment'; diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/packages/tests/ppas/10_plus/test.json b/web/pgadmin/browser/server_groups/servers/databases/schemas/packages/tests/ppas/10_plus/test.json new file mode 100644 index 000000000..64906b3bc --- /dev/null +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/packages/tests/ppas/10_plus/test.json @@ -0,0 +1,43 @@ +{ + "scenarios": [ + { + "type": "create", + "name": "Create Packages", + "endpoint": "NODE-package.obj", + "sql_endpoint": "NODE-package.sql_id", + "data": + { + "name": "pkg_emp_$%{}[]()&*^!@\"'`\\/#", + "description": "test comment", + "owner": "enterprisedb", + "pkgacl": [{ + "grantee": "aq_administrator_role", + "grantor": "enterprisedb", + "privileges": [{ + "privilege_type": "X", + "privilege": true, + "with_grant": true + }] + }], + "pkgbodysrc": "FUNCTION func1(v1 integer) RETURN integer IS BEGIN RETURN V1+10;END FUNC1;", + "pkgheadsrc": "FUNCTION func1(v1 integer) RETURN integer;", + "schema": "public" + }, + "expected_sql_file": "create_package_with_all_options.sql" + }, + { + "type": "alter", + "name": "Alter Packages", + "endpoint": "NODE-package.obj_id", + "sql_endpoint": "NODE-package.sql_id", + "data": + { + "description": "test comment updated", + "owner": "enterprisedb", + "pkgheadsrc": "PROCEDURE get_name(p_empno numeric);", + "schema": "public" + }, + "expected_sql_file": "alter_package_headers_and_comment.sql" + } + ] +} diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/packages/tests/ppas/9.2_plus/alter_package_headers_and_comment.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/packages/tests/ppas/9.2_plus/alter_package_headers_and_comment.sql new file mode 100644 index 000000000..4a8f67231 --- /dev/null +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/packages/tests/ppas/9.2_plus/alter_package_headers_and_comment.sql @@ -0,0 +1,12 @@ +-- Package: public."pkg_emp_$%{}[]()&*^!@""'`\/#" + +-- DROP PACKAGE public."pkg_emp_$%{}[]()&*^!@""'`\/#"; + +CREATE OR REPLACE PACKAGE public."pkg_emp_$%{}[]()&*^!@""'`\/#" +IS +PROCEDURE get_name(p_empno numeric); +END "pkg_emp_$%{}[]()&*^!@""'`\/#"; + + +COMMENT ON PACKAGE public."pkg_emp_$%{}[]()&*^!@""'`\/#" + IS 'test comment updated'; diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/packages/tests/ppas/9.2_plus/create_package_with_all_options.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/packages/tests/ppas/9.2_plus/create_package_with_all_options.sql new file mode 100644 index 000000000..ed693aedd --- /dev/null +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/packages/tests/ppas/9.2_plus/create_package_with_all_options.sql @@ -0,0 +1,17 @@ +-- Package: public."pkg_emp_$%{}[]()&*^!@""'`\/#" + +-- DROP PACKAGE public."pkg_emp_$%{}[]()&*^!@""'`\/#"; + +CREATE OR REPLACE PACKAGE public."pkg_emp_$%{}[]()&*^!@""'`\/#" +IS +FUNCTION func1(v1 integer) RETURN integer; +END "pkg_emp_$%{}[]()&*^!@""'`\/#"; + + +CREATE OR REPLACE PACKAGE BODY public."pkg_emp_$%{}[]()&*^!@""'`\/#" +IS +FUNCTION func1(v1 integer) RETURN integer IS BEGIN RETURN V1+10;END; +END "pkg_emp_$%{}[]()&*^!@""'`\/#"; + +COMMENT ON PACKAGE public."pkg_emp_$%{}[]()&*^!@""'`\/#" + IS 'test comment'; diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/packages/tests/ppas/9.2_plus/test.json b/web/pgadmin/browser/server_groups/servers/databases/schemas/packages/tests/ppas/9.2_plus/test.json new file mode 100644 index 000000000..2d4ebe699 --- /dev/null +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/packages/tests/ppas/9.2_plus/test.json @@ -0,0 +1,44 @@ +{ + "scenarios": [ + { + "type": "create", + "name": "Create Packages", + "endpoint": "NODE-package.obj", + "sql_endpoint": "NODE-package.sql_id", + "data": + { + "name": "pkg_emp_$%{}[]()&*^!@\"'`\\/#", + "description": "test comment", + "owner": "enterprisedb", + "pkgacl": [{ + "grantee": "aq_administrator_role", + "grantor": "enterprisedb", + "privileges": [{ + "privilege_type": "X", + "privilege": true, + "with_grant": true + }] + }], + "pkgbodysrc": "FUNCTION func1(v1 integer) RETURN integer IS BEGIN RETURN V1+10;END FUNC1;", + "pkgheadsrc": "FUNCTION func1(v1 integer) RETURN integer;", + "schema": "public" + }, + "expected_sql_file": "create_package_with_all_options.sql" + }, + { + "type": "alter", + "name": "Alter Packages", + "endpoint": "NODE-package.obj_id", + "sql_endpoint": "NODE-package.sql_id", + "data": + { + "description": "test comment updated", + "owner": "enterprisedb", + "pkgheadsrc": "PROCEDURE get_name(p_empno numeric);", + "pkgbodysrc": "PROCEDURE get_name(p_empno numeric);", + "schema": "public" + }, + "expected_sql_file": "alter_package_headers_and_comment.sql" + } + ] +}