Fix unit tests for ZCL_ABAPGIT_REPO_REQUIREMENTS (#6801)

Co-authored-by: Lars Hvam <larshp@hotmail.com>
This commit is contained in:
Marc Bernard 2024-02-11 06:44:04 +01:00 committed by GitHub
parent fa66b626de
commit 999da0ef9e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 42 additions and 21 deletions

View File

@ -5,6 +5,8 @@ CLASS zcl_abapgit_repo_requirements DEFINITION
PUBLIC SECTION.
TYPES ty_cvers TYPE STANDARD TABLE OF cvers WITH DEFAULT KEY.
CLASS-METHODS requirements_popup
IMPORTING
!it_requirements TYPE zif_abapgit_dot_abapgit=>ty_requirement_tt
@ -17,6 +19,11 @@ CLASS zcl_abapgit_repo_requirements DEFINITION
VALUE(rv_status) TYPE zif_abapgit_definitions=>ty_yes_no
RAISING
zcx_abapgit_exception.
CLASS-METHODS inject_cvers
IMPORTING
!it_cvers TYPE ty_cvers.
PROTECTED SECTION.
PRIVATE SECTION.
@ -33,6 +40,14 @@ CLASS zcl_abapgit_repo_requirements DEFINITION
TYPES:
ty_requirement_status_tt TYPE STANDARD TABLE OF ty_requirement_status WITH DEFAULT KEY .
CLASS-DATA gt_cvers TYPE ty_cvers.
CLASS-METHODS get_cvers
RETURNING
VALUE(rt_cvers) TYPE ty_cvers
RAISING
zcx_abapgit_exception.
CLASS-METHODS show_requirement_popup
IMPORTING
!it_requirements TYPE ty_requirement_status_tt
@ -57,19 +72,29 @@ ENDCLASS.
CLASS zcl_abapgit_repo_requirements IMPLEMENTATION.
METHOD get_cvers.
IF gt_cvers IS NOT INITIAL.
rt_cvers = gt_cvers.
RETURN.
ENDIF.
SELECT * FROM cvers INTO TABLE rt_cvers ORDER BY PRIMARY KEY.
IF sy-subrc <> 0.
zcx_abapgit_exception=>raise( |Error reading installed components| ).
ENDIF.
ENDMETHOD.
METHOD get_requirement_met_status.
DATA: lt_installed TYPE STANDARD TABLE OF cvers.
DATA: lt_installed TYPE ty_cvers.
FIELD-SYMBOLS: <ls_requirement> TYPE zif_abapgit_dot_abapgit=>ty_requirement,
<ls_status> TYPE ty_requirement_status,
<ls_installed_comp> TYPE cvers.
SELECT * FROM cvers INTO TABLE lt_installed ORDER BY PRIMARY KEY.
IF sy-subrc <> 0.
zcx_abapgit_exception=>raise( |Error reading installed components| ).
ENDIF.
lt_installed = get_cvers( ).
LOOP AT it_requirements ASSIGNING <ls_requirement>.
APPEND INITIAL LINE TO rt_status ASSIGNING <ls_status>.
@ -100,6 +125,12 @@ CLASS zcl_abapgit_repo_requirements IMPLEMENTATION.
ENDMETHOD.
METHOD inject_cvers.
" For testing only
gt_cvers = it_cvers.
ENDMETHOD.
METHOD is_requirements_met.
DATA: lt_met_status TYPE ty_requirement_status_tt.

View File

@ -15,14 +15,19 @@ CLASS lcl_helper IMPLEMENTATION.
METHOD get_sap_basis_component.
DATA lt_cvers TYPE zcl_abapgit_repo_requirements=>ty_cvers.
" mock SAP_BASIS
rs_result-component = 'SAP_BASIS'.
rs_result-release = '754'.
rs_result-extrelease = '0007'.
rs_result-comp_type = 'S'.
ENDMETHOD.
INSERT rs_result INTO TABLE lt_cvers.
zcl_abapgit_repo_requirements=>inject_cvers( lt_cvers ).
ENDMETHOD.
ENDCLASS.

View File

@ -101,21 +101,6 @@
{"object": "ZCL_ABAPGIT_PERSIST_PACKAGES", "class": "ltcl_packages", "method": "test_package", "note": "ZABAPGIT table not existing, error cx_sy_dynamic_osql_semantics"},
{"object": "ZCL_ABAPGIT_REPO_REQUIREMENTS", "class": "ltcl_lower_release", "method": "empty_patch", "note": "Mock CVERS and CVERS_REF tables"},
{"object": "ZCL_ABAPGIT_REPO_REQUIREMENTS", "class": "ltcl_lower_release", "method": "lower_patch", "note": "Mock CVERS and CVERS_REF tables"},
{"object": "ZCL_ABAPGIT_REPO_REQUIREMENTS", "class": "ltcl_lower_release", "method": "same_patch", "note": "Mock CVERS and CVERS_REF tables"},
{"object": "ZCL_ABAPGIT_REPO_REQUIREMENTS", "class": "ltcl_lower_release", "method": "higher_patch", "note": "Mock CVERS and CVERS_REF tables"},
{"object": "ZCL_ABAPGIT_REPO_REQUIREMENTS", "class": "ltcl_same_release", "method": "empty_patch", "note": "Mock CVERS and CVERS_REF tables"},
{"object": "ZCL_ABAPGIT_REPO_REQUIREMENTS", "class": "ltcl_same_release", "method": "lower_patch", "note": "Mock CVERS and CVERS_REF tables"},
{"object": "ZCL_ABAPGIT_REPO_REQUIREMENTS", "class": "ltcl_same_release", "method": "same_patch", "note": "Mock CVERS and CVERS_REF tables"},
{"object": "ZCL_ABAPGIT_REPO_REQUIREMENTS", "class": "ltcl_same_release", "method": "higher_patch", "note": "Mock CVERS and CVERS_REF tables"},
{"object": "ZCL_ABAPGIT_REPO_REQUIREMENTS", "class": "ltcl_higher_release", "method": "empty_patch", "note": "Mock CVERS and CVERS_REF tables"},
{"object": "ZCL_ABAPGIT_REPO_REQUIREMENTS", "class": "ltcl_higher_release", "method": "lower_patch", "note": "Mock CVERS and CVERS_REF tables"},
{"object": "ZCL_ABAPGIT_REPO_REQUIREMENTS", "class": "ltcl_higher_release", "method": "same_patch", "note": "Mock CVERS and CVERS_REF tables"},
{"object": "ZCL_ABAPGIT_REPO_REQUIREMENTS", "class": "ltcl_higher_release", "method": "higher_patch", "note": "Mock CVERS and CVERS_REF tables"},
{"object": "ZCL_ABAPGIT_REPO_REQUIREMENTS", "class": "ltcl_formats", "method": "shorter_patch", "note": "Mock CVERS and CVERS_REF tables"},
{"object": "ZCL_ABAPGIT_REPO_REQUIREMENTS", "class": "ltcl_formats", "method": "longer_patch", "note": "Mock CVERS and CVERS_REF tables"},
{"object": "ZCL_ABAPGIT_XML", "class": "ltcl_xml", "method": "space_leading_trailing", "note": "??"},
{"object": "ZCL_ABAPGIT_XML", "class": "ltcl_xml", "method": "bad_xml_raises_exc", "note": "handling of xml parser errors, cl_ixml, test method parse_negative"},
{"object": "ZCL_ABAPGIT_XML_OUTPUT", "class": "ltcl_xml_output", "method": "render_xml_string", "note": "kernel_call_transformation.mi_writer.get(...).if_sxml_writer$open_element is not a function"},