unit testing updates (#5080)

* wip, unit testing

* refactor popup

* update abaplint

* transpile additional classes

* all data classes

* all git

* update

* fix

* change type

* all gui

* all http

* ZCL_ABAPGIT_USER_RECORD

* all zlib

* all exceptions

* all xml

* all html

* all html zif

* all gui zif

* all xml zif

* all repo zif

* more generic

* star

* zif_abapgit_longtexts

* sort

* zcl_abapgit_news

* zcl_abapgit_adt_link

* ZCL_ABAPGIT_DIFF

* more

* add zcl_abapgit_services_git
This commit is contained in:
Lars Hvam 2021-11-02 16:50:30 +01:00 committed by GitHub
parent 9fa3579739
commit e45bdfc4e4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 87 additions and 99 deletions

View File

@ -20,12 +20,14 @@
}, },
"c8": { "c8": {
"all": true, "all": true,
"src": ["src"] "src": [
"src"
]
}, },
"devDependencies": { "devDependencies": {
"@abaplint/cli": "^2.79.34", "@abaplint/cli": "^2.79.35",
"@abaplint/runtime": "^1.6.55", "@abaplint/runtime": "^1.6.62",
"@abaplint/transpiler-cli": "^1.6.55", "@abaplint/transpiler-cli": "^1.6.62",
"abapmerge": "^0.14.3", "abapmerge": "^0.14.3",
"c8": "^7.10.0", "c8": "^7.10.0",
"eslint": "^8.1.0" "eslint": "^8.1.0"

View File

@ -47,13 +47,13 @@ CLASS zcl_abapgit_gui_page_codi_base DEFINITION PUBLIC ABSTRACT INHERITING FROM
RETURNING RETURNING
VALUE(ro_menu) TYPE REF TO zcl_abapgit_html_toolbar . VALUE(ro_menu) TYPE REF TO zcl_abapgit_html_toolbar .
PRIVATE SECTION. PRIVATE SECTION.
CONSTANTS c_object_separator TYPE char1 VALUE '|'. CONSTANTS c_object_separator TYPE c LENGTH 1 VALUE '|'.
CONSTANTS c_ci_sig TYPE string VALUE 'cinav:'. CONSTANTS c_ci_sig TYPE string VALUE 'cinav:'.
ENDCLASS. ENDCLASS.
CLASS ZCL_ABAPGIT_GUI_PAGE_CODI_BASE IMPLEMENTATION. CLASS zcl_abapgit_gui_page_codi_base IMPLEMENTATION.
METHOD build_base_menu. METHOD build_base_menu.
@ -221,13 +221,13 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_CODI_BASE IMPLEMENTATION.
( is_result-objtype = 'PROG' AND NOT is_result-sobjname+30(*) IS INITIAL ). ( is_result-objtype = 'PROG' AND NOT is_result-sobjname+30(*) IS INITIAL ).
TRY. TRY.
CASE is_result-sobjname+30(*). CASE is_result-sobjname+30(*).
WHEN seop_incextapp_definition. WHEN 'CCDEF'.
lv_obj_txt = |CLAS { is_result-objname } : Local Definitions|. lv_obj_txt = |CLAS { is_result-objname } : Local Definitions|.
WHEN seop_incextapp_implementation. WHEN 'CCIMP'.
lv_obj_txt = |CLAS { is_result-objname } : Local Implementations|. lv_obj_txt = |CLAS { is_result-objname } : Local Implementations|.
WHEN seop_incextapp_macros. WHEN 'CCMAC'.
lv_obj_txt = |CLAS { is_result-objname } : Macros|. lv_obj_txt = |CLAS { is_result-objname } : Macros|.
WHEN seop_incextapp_testclasses. WHEN 'CCAU'.
lv_obj_txt = |CLAS { is_result-objname } : Test Classes|. lv_obj_txt = |CLAS { is_result-objname } : Test Classes|.
WHEN 'CU'. WHEN 'CU'.
lv_obj_txt = |CLAS { is_result-objname } : Public Section|. lv_obj_txt = |CLAS { is_result-objname } : Public Section|.

View File

@ -20,9 +20,9 @@ CLASS zcl_abapgit_gui_page_debuginfo DEFINITION
PROTECTED SECTION. PROTECTED SECTION.
PRIVATE SECTION. PRIVATE SECTION.
CONSTANTS c_exit_standalone TYPE progname VALUE 'ZABAPGIT_USER_EXIT' ##NO_TEXT. CONSTANTS c_exit_standalone TYPE c LENGTH 30 VALUE 'ZABAPGIT_USER_EXIT' ##NO_TEXT.
CONSTANTS c_exit_class TYPE seoclsname VALUE 'ZCL_ABAPGIT_USER_EXIT' ##NO_TEXT. CONSTANTS c_exit_class TYPE c LENGTH 30 VALUE 'ZCL_ABAPGIT_USER_EXIT' ##NO_TEXT.
CONSTANTS c_exit_interface TYPE seoclsname VALUE 'ZIF_ABAPGIT_EXIT' ##NO_TEXT. CONSTANTS c_exit_interface TYPE c LENGTH 30 VALUE 'ZIF_ABAPGIT_EXIT' ##NO_TEXT.
CONSTANTS: CONSTANTS:
BEGIN OF c_action, BEGIN OF c_action,
save TYPE string VALUE 'save', save TYPE string VALUE 'save',
@ -68,7 +68,7 @@ ENDCLASS.
CLASS zcl_abapgit_gui_page_debuginfo IMPLEMENTATION. CLASS ZCL_ABAPGIT_GUI_PAGE_DEBUGINFO IMPLEMENTATION.
METHOD build_toolbar. METHOD build_toolbar.

View File

@ -13,9 +13,9 @@ CLASS zcl_abapgit_gui_page_diff DEFINITION
filename TYPE string, filename TYPE string,
obj_type TYPE string, obj_type TYPE string,
obj_name TYPE string, obj_name TYPE string,
lstate TYPE char1, lstate TYPE c LENGTH 1,
rstate TYPE char1, rstate TYPE c LENGTH 1,
fstate TYPE char1, " FILE state - Abstraction for shorter ifs fstate TYPE c LENGTH 1, " FILE state - Abstraction for shorter ifs
o_diff TYPE REF TO zcl_abapgit_diff, o_diff TYPE REF TO zcl_abapgit_diff,
changed_by TYPE xubname, changed_by TYPE xubname,
type TYPE string, type TYPE string,
@ -28,9 +28,9 @@ CLASS zcl_abapgit_gui_page_diff DEFINITION
CONSTANTS: CONSTANTS:
BEGIN OF c_fstate, BEGIN OF c_fstate,
local TYPE char1 VALUE 'L', local TYPE c LENGTH 1 VALUE 'L',
remote TYPE char1 VALUE 'R', remote TYPE c LENGTH 1 VALUE 'R',
both TYPE char1 VALUE 'B', both TYPE c LENGTH 1 VALUE 'B',
END OF c_fstate. END OF c_fstate.
METHODS constructor METHODS constructor

View File

@ -17,7 +17,7 @@ CLASS zcl_abapgit_gui_page_syntax DEFINITION PUBLIC FINAL CREATE PUBLIC
REDEFINITION. REDEFINITION.
PROTECTED SECTION. PROTECTED SECTION.
CONSTANTS: c_variant TYPE sci_chkv VALUE 'SYNTAX_CHECK'. CONSTANTS: c_variant TYPE c LENGTH 30 VALUE 'SYNTAX_CHECK'.
METHODS: METHODS:
render_content REDEFINITION. render_content REDEFINITION.

View File

@ -8,14 +8,14 @@ CLASS zcl_abapgit_popups DEFINITION
INTERFACES zif_abapgit_popups . INTERFACES zif_abapgit_popups .
CONSTANTS c_default_column TYPE lvc_fname VALUE `DEFAULT_COLUMN` ##NO_TEXT.
PROTECTED SECTION. PROTECTED SECTION.
PRIVATE SECTION. PRIVATE SECTION.
CONSTANTS c_default_column TYPE abap_componentdescr-name VALUE `DEFAULT_COLUMN` ##NO_TEXT.
TYPES: TYPES:
ty_lt_fields TYPE STANDARD TABLE OF sval WITH DEFAULT KEY . ty_lt_fields TYPE STANDARD TABLE OF sval WITH DEFAULT KEY .
CONSTANTS c_fieldname_selected TYPE lvc_fname VALUE `SELECTED` ##NO_TEXT. CONSTANTS c_fieldname_selected TYPE abap_componentdescr-name VALUE `SELECTED` ##NO_TEXT.
CONSTANTS c_answer_cancel TYPE c LENGTH 1 VALUE 'A' ##NO_TEXT. CONSTANTS c_answer_cancel TYPE c LENGTH 1 VALUE 'A' ##NO_TEXT.
DATA mo_select_list_popup TYPE REF TO cl_salv_table . DATA mo_select_list_popup TYPE REF TO cl_salv_table .

View File

@ -2,48 +2,25 @@
"input_folder": "{test,src,deps}", "input_folder": "{test,src,deps}",
"input_filter": [ "input_filter": [
"vseointerf", "vseointerf",
"zcl_abapgit_adt_link",
"zcl_abapgit_ajson*", "zcl_abapgit_ajson*",
"zcl_abapgit_auth", "zcl_abapgit_auth",
"zcl_abapgit_convert", "zcl_abapgit_convert",
"zcl_abapgit_data_config", "zcl_abapgit_data*",
"zcl_abapgit_data_injector", "zcl_abapgit_diff",
"zcl_abapgit_data_utils",
"zcl_abapgit_dot_abapgit", "zcl_abapgit_dot_abapgit",
"zcl_abapgit_exit", "zcl_abapgit_exit",
"zcl_abapgit_factory",
"zcl_abapgit_frontend_services", "zcl_abapgit_frontend_services",
"zcl_abapgit_git_add_patch", "zcl_abapgit_git*",
"zcl_abapgit_git_branch_list", "zcl_abapgit_gui*",
"zcl_abapgit_git_commit",
"zcl_abapgit_git_pack",
"zcl_abapgit_git_porcelain",
"zcl_abapgit_git_tag",
"zcl_abapgit_git_transport",
"zcl_abapgit_git_url",
"zcl_abapgit_git_utils",
"zcl_abapgit_gui_asset_manager",
"zcl_abapgit_gui_buttons",
"zcl_abapgit_gui_chunk_lib",
"zcl_abapgit_gui_component",
"zcl_abapgit_gui_css_processor",
"zcl_abapgit_gui_event",
"zcl_abapgit_gui_functions",
"zcl_abapgit_gui_html_processor",
"zcl_abapgit_gui_page_hoc",
"zcl_abapgit_gui_page_tutorial",
"zcl_abapgit_gui_page.clas",
"zcl_abapgit_gui_utils",
"zcl_abapgit_gui.clas",
"zcl_abapgit_hash", "zcl_abapgit_hash",
"zcl_abapgit_html_action_utils", "zcl_abapgit_html*",
"zcl_abapgit_html_parts", "zcl_abapgit_http*",
"zcl_abapgit_html_toolbar", "zcl_abapgit_injector",
"zcl_abapgit_html.clas",
"zcl_abapgit_http_agent",
"zcl_abapgit_http_client",
"zcl_abapgit_http_digest",
"zcl_abapgit_http",
"zcl_abapgit_log.clas", "zcl_abapgit_log.clas",
"zcl_abapgit_login_manager", "zcl_abapgit_login_manager",
"zcl_abapgit_news",
"zcl_abapgit_password_dialog", "zcl_abapgit_password_dialog",
"zcl_abapgit_path", "zcl_abapgit_path",
"zcl_abapgit_persist_background", "zcl_abapgit_persist_background",
@ -52,79 +29,55 @@
"zcl_abapgit_persist_settings", "zcl_abapgit_persist_settings",
"zcl_abapgit_persistence_db", "zcl_abapgit_persistence_db",
"zcl_abapgit_persistence_user", "zcl_abapgit_persistence_user",
"zcl_abapgit_popups",
"zcl_abapgit_pr_enum_github", "zcl_abapgit_pr_enum_github",
"zcl_abapgit_pr_enumerator", "zcl_abapgit_pr_enumerator",
"zcl_abapgit_progress", "zcl_abapgit_progress",
"zcl_abapgit_proxy_auth", "zcl_abapgit_proxy_auth",
"zcl_abapgit_proxy_config", "zcl_abapgit_proxy_config",
"zcl_abapgit_repo_filter",
"zcl_abapgit_services_basis",
"zcl_abapgit_services_git",
"zcl_abapgit_settings", "zcl_abapgit_settings",
"zcl_abapgit_string_map", "zcl_abapgit_string_map",
"zcl_abapgit_syntax_*", "zcl_abapgit_syntax_*",
"zcl_abapgit_time", "zcl_abapgit_time",
"zcl_abapgit_ui_factory", "zcl_abapgit_ui*",
"zcl_abapgit_url", "zcl_abapgit_url",
"zcl_abapgit_utils", "zcl_abapgit_utils",
"zcl_abapgit_version", "zcl_abapgit_version",
"zcl_abapgit_xml_input", "zcl_abapgit_xml*",
"zcl_abapgit_xml_output", "zcl_abapgit_zlib*",
"zcl_abapgit_xml_pretty", "zcx_abapgit_*",
"zcl_abapgit_xml.clas",
"zcl_abapgit_zlib_convert",
"zcl_abapgit_zlib_huffman",
"zcl_abapgit_zlib_stream",
"zcl_abapgit_zlib",
"zcx_abapgit_ajson_error",
"zcx_abapgit_cancel",
"zcx_abapgit_exception",
"zcx_abapgit_not_found",
"zif_abapgit_ajson*", "zif_abapgit_ajson*",
"zif_abapgit_apack_definitions", "zif_abapgit_apack_definitions",
"zif_abapgit_auth", "zif_abapgit_auth",
"zif_abapgit_branch_overview", "zif_abapgit_branch_overview",
"zif_abapgit_code_inspector",
"zif_abapgit_cts_api", "zif_abapgit_cts_api",
"zif_abapgit_data_config", "zif_abapgit_data*",
"zif_abapgit_data_deserializer",
"zif_abapgit_data_serializer",
"zif_abapgit_definitions", "zif_abapgit_definitions",
"zif_abapgit_dot_abapgit", "zif_abapgit_dot_abapgit",
"zif_abapgit_environment", "zif_abapgit_environment",
"zif_abapgit_exit", "zif_abapgit_exit",
"zif_abapgit_frontend_services", "zif_abapgit_frontend_services",
"zif_abapgit_gui_asset_manager", "zif_abapgit_gui*",
"zif_abapgit_gui_error_handler", "zif_abapgit_html*",
"zif_abapgit_gui_event_handler", "zif_abapgit_http*",
"zif_abapgit_gui_event",
"zif_abapgit_gui_functions",
"zif_abapgit_gui_hotkey_ctl",
"zif_abapgit_gui_hotkeys",
"zif_abapgit_gui_html_processor",
"zif_abapgit_gui_renderable",
"zif_abapgit_gui_services",
"zif_abapgit_html_viewer",
"zif_abapgit_html",
"zif_abapgit_http_agent",
"zif_abapgit_http_response",
"zif_abapgit_log", "zif_abapgit_log",
"zif_abapgit_longtexts",
"zif_abapgit_lxe_texts",
"zif_abapgit_merge", "zif_abapgit_merge",
"zif_abapgit_persist_repo", "zif_abapgit_persist*",
"zif_abapgit_persist_settings",
"zif_abapgit_persist_user",
"zif_abapgit_persistence",
"zif_abapgit_popups", "zif_abapgit_popups",
"zcl_abapgit_repo_filter", "zif_abapgit_pr*",
"zif_abapgit_pr_enum_provider", "zif_abapgit_repo*",
"zif_abapgit_progress",
"zif_abapgit_repo_listener",
"zif_abapgit_repo_online",
"zif_abapgit_repo_srv",
"zif_abapgit_sap_package", "zif_abapgit_sap_package",
"zif_abapgit_stage_logic", "zif_abapgit_stage_logic",
"zif_abapgit_tadir", "zif_abapgit_tadir",
"zif_abapgit_tag_popups", "zif_abapgit_tag_popups",
"zif_abapgit_version", "zif_abapgit_version",
"zif_abapgit_xml_input", "zif_abapgit_xml*"
"zif_abapgit_xml_output",
"zif_abapgit_xml"
], ],
"output_folder": "output", "output_folder": "output",
"lib": "https://github.com/open-abap/open-abap", "lib": "https://github.com/open-abap/open-abap",
@ -199,6 +152,9 @@
{"object": "ZCL_ABAPGIT_AJSON", "class": "ltcl_abap_to_json", "method": "set_array"}, {"object": "ZCL_ABAPGIT_AJSON", "class": "ltcl_abap_to_json", "method": "set_array"},
{"object": "ZCL_ABAPGIT_AJSON", "class": "ltcl_abap_to_json", "method": "set_complex_obj"}, {"object": "ZCL_ABAPGIT_AJSON", "class": "ltcl_abap_to_json", "method": "set_complex_obj"},
{"object": "ZCL_ABAPGIT_UI_INJECTOR", "class": "ltcl_no_dependency_injection", "method": "no_injection"},
{"object": "ZCL_ABAPGIT_UI_INJECTOR", "class": "ltcl_simple_dependency_inject", "method": "simple_injection"},
{"object": "ZCL_ABAPGIT_AJSON_MAPPING", "class": "ltcl_camel_case", "method": "to_abap", "note": "secondary key fields? READ WITH KEY, Path not found @/FieldData"}, {"object": "ZCL_ABAPGIT_AJSON_MAPPING", "class": "ltcl_camel_case", "method": "to_abap", "note": "secondary key fields? READ WITH KEY, Path not found @/FieldData"},
{"object": "ZCL_ABAPGIT_AJSON_MAPPING", "class": "ltcl_camel_case", "method": "to_json"}, {"object": "ZCL_ABAPGIT_AJSON_MAPPING", "class": "ltcl_camel_case", "method": "to_json"},
{"object": "ZCL_ABAPGIT_AJSON_MAPPING", "class": "ltcl_camel_case", "method": "to_json_first_lower"}, {"object": "ZCL_ABAPGIT_AJSON_MAPPING", "class": "ltcl_camel_case", "method": "to_json_first_lower"},
@ -207,6 +163,19 @@
{"object": "ZCL_ABAPGIT_AJSON_MAPPING", "class": "ltcl_to_lower", "method": "to_json"}, {"object": "ZCL_ABAPGIT_AJSON_MAPPING", "class": "ltcl_to_lower", "method": "to_json"},
{"object": "ZCL_ABAPGIT_AJSON_MAPPING", "class": "ltcl_to_upper", "method": "to_json"}, {"object": "ZCL_ABAPGIT_AJSON_MAPPING", "class": "ltcl_to_upper", "method": "to_json"},
{"object": "ZCL_ABAPGIT_DATA_DESERIALIZER", "class": "ltcl_test", "method": "test1"},
{"object": "ZCL_ABAPGIT_DATA_SERIALIZER", "class": "ltcl_test", "method": "serialize"},
{"object": "ZCL_ABAPGIT_DIFF", "class": "ltcl_diff", "method": "diff01", "note": "Void type: RSWSOURCET"},
{"object": "ZCL_ABAPGIT_DIFF", "class": "ltcl_diff", "method": "diff02", "note": "Void type: RSWSOURCET"},
{"object": "ZCL_ABAPGIT_DIFF", "class": "ltcl_diff", "method": "diff03", "note": "Void type: RSWSOURCET"},
{"object": "ZCL_ABAPGIT_DIFF", "class": "ltcl_diff", "method": "diff04", "note": "Void type: RSWSOURCET"},
{"object": "ZCL_ABAPGIT_DIFF", "class": "ltcl_diff", "method": "diff05", "note": "Void type: RSWSOURCET"},
{"object": "ZCL_ABAPGIT_DIFF", "class": "ltcl_diff", "method": "diff06", "note": "Void type: RSWSOURCET"},
{"object": "ZCL_ABAPGIT_DIFF", "class": "ltcl_diff", "method": "diff07", "note": "Void type: RSWSOURCET"},
{"object": "ZCL_ABAPGIT_DIFF", "class": "ltcl_diff", "method": "diff08", "note": "Void type: RSWSOURCET"},
{"object": "ZCL_ABAPGIT_DIFF", "class": "ltcl_diff", "method": "diff09", "note": "Void type: RSWSOURCET"},
{"object": "ZCL_ABAPGIT_GUI_UTILS", "class": "ltcl_gui_utils", "method": "is_renderable", "note": "casting, https://github.com/abaplint/transpiler/issues/465"}, {"object": "ZCL_ABAPGIT_GUI_UTILS", "class": "ltcl_gui_utils", "method": "is_renderable", "note": "casting, https://github.com/abaplint/transpiler/issues/465"},
{"object": "ZCL_ABAPGIT_GUI_UTILS", "class": "ltcl_gui_utils", "method": "is_event_handler", "note": "casting, https://github.com/abaplint/transpiler/issues/465"}, {"object": "ZCL_ABAPGIT_GUI_UTILS", "class": "ltcl_gui_utils", "method": "is_event_handler", "note": "casting, https://github.com/abaplint/transpiler/issues/465"},
@ -236,6 +205,23 @@
{"object": "ZCL_ABAPGIT_GIT_COMMIT", "class": "ltcl_test", "method": "check_author_regex"}, {"object": "ZCL_ABAPGIT_GIT_COMMIT", "class": "ltcl_test", "method": "check_author_regex"},
{"object": "ZCL_ABAPGIT_GIT_URL", "class": "ltcl_repo_online", "method": "test_repo_commit_show_urls"}, {"object": "ZCL_ABAPGIT_GIT_URL", "class": "ltcl_repo_online", "method": "test_repo_commit_show_urls"},
{"object": "ZCL_ABAPGIT_USER_RECORD", "class": "ltcl_user_record", "method": "test_invalid_user", "note": "Void type: BAPIADDR3"},
{"object": "ZCL_ABAPGIT_SERVICES_BASIS", "class": "ltcl_create_package", "method": "raise_error_if_package_exists", "note": "Void type: SCOMPKDTLN"},
{"object": "ZCL_ABAPGIT_SERVICES_BASIS", "class": "ltcl_create_package", "method": "package_given_in_popup", "note": "Void type: SCOMPKDTLN"},
{"object": "ZCL_ABAPGIT_SERVICES_BASIS", "class": "ltcl_create_package", "method": "package_not_created_when_canc", "note": "Void type: SCOMPKDTLN"},
{"object": "ZCL_ABAPGIT_SERVICES_BASIS", "class": "ltcl_create_package", "method": "package_created_when_confirm", "note": "Void type: SCOMPKDTLN"},
{"object": "ZCL_ABAPGIT_INJECTOR", "class": "ltcl_no_dependency_injection", "method": "no_injection"},
{"object": "ZCL_ABAPGIT_INJECTOR", "class": "ltcl_simple_dependency_inject", "method": "simple_injection"},
{"object": "ZCL_ABAPGIT_HTML_FORM_UTILS", "class": "ltcl_test_form", "method": "validate", "note": "Void type: TIMESTAMPL"},
{"object": "ZCL_ABAPGIT_HTML_FORM_UTILS", "class": "ltcl_test_form", "method": "normalize", "note": "Void type: TIMESTAMPL"},
{"object": "ZCL_ABAPGIT_HTML_FORM_UTILS", "class": "ltcl_test_form", "method": "is_empty", "note": "Void type: TIMESTAMPL"},
{"object": "ZCL_ABAPGIT_HTML_FORM_UTILS", "class": "ltcl_test_form", "method": "exit_clean", "note": "Void type: TIMESTAMPL"},
{"object": "ZCL_ABAPGIT_HTML_FORM_UTILS", "class": "ltcl_test_form", "method": "exit_dirty_confirm", "note": "Void type: TIMESTAMPL"},
{"object": "ZCL_ABAPGIT_HTML_FORM_UTILS", "class": "ltcl_test_form", "method": "exit_dirty_cancel", "note": "Void type: TIMESTAMPL"},
{"object": "ZCL_ABAPGIT_DOT_ABAPGIT", "class": "ltcl_dot_abapgit", "method": "ignore", "note": "Void type: DLVUNIT"}, {"object": "ZCL_ABAPGIT_DOT_ABAPGIT", "class": "ltcl_dot_abapgit", "method": "ignore", "note": "Void type: DLVUNIT"},
{"object": "ZCL_ABAPGIT_DOT_ABAPGIT", "class": "ltcl_dot_abapgit", "method": "identity"} {"object": "ZCL_ABAPGIT_DOT_ABAPGIT", "class": "ltcl_dot_abapgit", "method": "identity"}
] ]