abapGit/src/utils/zcl_abapgit_requirement_helper.clas.testclasses.abap
Jaime Rodriguez Capote 8175825041
Requirements dependency check (#5223)
* Check req. when release/patch length is different

* Tests for requirement check

* abaplint checks

* Check for pach value longer than 4 characters
2021-12-16 12:00:14 -05:00

475 lines
12 KiB
ABAP

CLASS lcl_helper DEFINITION FINAL.
PUBLIC SECTION.
CLASS-METHODS get_sap_basis_component
RETURNING
VALUE(rs_result) TYPE cvers_sdu
RAISING
zcx_abapgit_exception.
ENDCLASS.
CLASS lcl_helper IMPLEMENTATION.
METHOD get_sap_basis_component.
DATA:
lt_installed TYPE STANDARD TABLE OF cvers_sdu.
CALL FUNCTION 'DELIVERY_GET_INSTALLED_COMPS'
TABLES
tt_comptab = lt_installed
EXCEPTIONS
no_release_found = 1
OTHERS = 2.
IF sy-subrc <> 0.
zcx_abapgit_exception=>raise( |Error from DELIVERY_GET_INSTALLED_COMPS { sy-subrc }| ).
ENDIF.
READ TABLE lt_installed INTO rs_result
WITH KEY component = `SAP_BASIS`.
IF sy-subrc <> 0.
zcx_abapgit_exception=>raise( |Component SAP_BASIS not found| ).
ENDIF.
ENDMETHOD.
ENDCLASS.
CLASS ltcl_lower_release DEFINITION FINAL
FOR TESTING
RISK LEVEL HARMLESS
DURATION SHORT.
PUBLIC SECTION.
PRIVATE SECTION.
METHODS empty_patch FOR TESTING
RAISING
zcx_abapgit_exception.
METHODS lower_patch FOR TESTING
RAISING
zcx_abapgit_exception.
METHODS same_patch FOR TESTING
RAISING
zcx_abapgit_exception.
METHODS higher_patch FOR TESTING
RAISING
zcx_abapgit_exception.
ENDCLASS.
CLASS ltcl_lower_release IMPLEMENTATION.
METHOD empty_patch.
DATA:
ls_component TYPE cvers_sdu,
lt_requirements TYPE zif_abapgit_dot_abapgit=>ty_requirement_tt,
ls_requirement LIKE LINE OF lt_requirements.
ls_component = lcl_helper=>get_sap_basis_component( ).
ls_requirement-component = ls_component-component.
ls_requirement-min_release = ls_component-release - 1.
ls_requirement-min_patch = 0.
APPEND ls_requirement TO lt_requirements.
cl_abap_unit_assert=>assert_equals(
act = zcl_abapgit_requirement_helper=>is_requirements_met( lt_requirements )
exp = zif_abapgit_definitions=>c_yes ).
ENDMETHOD.
METHOD lower_patch.
DATA:
ls_component TYPE cvers_sdu,
lt_requirements TYPE zif_abapgit_dot_abapgit=>ty_requirement_tt,
ls_requirement LIKE LINE OF lt_requirements.
ls_component = lcl_helper=>get_sap_basis_component( ).
ls_requirement-component = ls_component-component.
ls_requirement-min_release = ls_component-release - 1.
ls_requirement-min_patch = ls_component-extrelease - 1.
APPEND ls_requirement TO lt_requirements.
cl_abap_unit_assert=>assert_equals(
act = zcl_abapgit_requirement_helper=>is_requirements_met( lt_requirements )
exp = zif_abapgit_definitions=>c_yes ).
ENDMETHOD.
METHOD same_patch.
DATA:
ls_component TYPE cvers_sdu,
lt_requirements TYPE zif_abapgit_dot_abapgit=>ty_requirement_tt,
ls_requirement LIKE LINE OF lt_requirements.
ls_component = lcl_helper=>get_sap_basis_component( ).
ls_requirement-component = ls_component-component.
ls_requirement-min_release = ls_component-release - 1.
ls_requirement-min_patch = ls_component-extrelease.
APPEND ls_requirement TO lt_requirements.
cl_abap_unit_assert=>assert_equals(
act = zcl_abapgit_requirement_helper=>is_requirements_met( lt_requirements )
exp = zif_abapgit_definitions=>c_yes ).
ENDMETHOD.
METHOD higher_patch.
DATA:
ls_component TYPE cvers_sdu,
lt_requirements TYPE zif_abapgit_dot_abapgit=>ty_requirement_tt,
ls_requirement LIKE LINE OF lt_requirements.
ls_component = lcl_helper=>get_sap_basis_component( ).
ls_requirement-component = ls_component-component.
ls_requirement-min_release = ls_component-release - 1.
ls_requirement-min_patch = ls_component-extrelease + 1.
APPEND ls_requirement TO lt_requirements.
cl_abap_unit_assert=>assert_equals(
act = zcl_abapgit_requirement_helper=>is_requirements_met( lt_requirements )
exp = zif_abapgit_definitions=>c_yes ).
ENDMETHOD.
ENDCLASS.
CLASS ltcl_same_release DEFINITION FINAL
FOR TESTING
RISK LEVEL HARMLESS
DURATION SHORT.
PUBLIC SECTION.
PRIVATE SECTION.
METHODS empty_patch FOR TESTING
RAISING
zcx_abapgit_exception.
METHODS lower_patch FOR TESTING
RAISING
zcx_abapgit_exception.
METHODS same_patch FOR TESTING
RAISING
zcx_abapgit_exception.
METHODS higher_patch FOR TESTING
RAISING
zcx_abapgit_exception.
ENDCLASS.
CLASS ltcl_same_release IMPLEMENTATION.
METHOD empty_patch.
DATA:
ls_component TYPE cvers_sdu,
lt_requirements TYPE zif_abapgit_dot_abapgit=>ty_requirement_tt,
ls_requirement LIKE LINE OF lt_requirements.
ls_component = lcl_helper=>get_sap_basis_component( ).
ls_requirement-component = ls_component-component.
ls_requirement-min_release = ls_component-release.
ls_requirement-min_patch = 0.
APPEND ls_requirement TO lt_requirements.
cl_abap_unit_assert=>assert_equals(
act = zcl_abapgit_requirement_helper=>is_requirements_met( lt_requirements )
exp = zif_abapgit_definitions=>c_yes ).
ENDMETHOD.
METHOD lower_patch.
DATA:
ls_component TYPE cvers_sdu,
lt_requirements TYPE zif_abapgit_dot_abapgit=>ty_requirement_tt,
ls_requirement LIKE LINE OF lt_requirements.
ls_component = lcl_helper=>get_sap_basis_component( ).
ls_requirement-component = ls_component-component.
ls_requirement-min_release = ls_component-release.
ls_requirement-min_patch = ls_component-extrelease - 1.
APPEND ls_requirement TO lt_requirements.
cl_abap_unit_assert=>assert_equals(
act = zcl_abapgit_requirement_helper=>is_requirements_met( lt_requirements )
exp = zif_abapgit_definitions=>c_yes ).
ENDMETHOD.
METHOD same_patch.
DATA:
ls_component TYPE cvers_sdu,
lt_requirements TYPE zif_abapgit_dot_abapgit=>ty_requirement_tt,
ls_requirement LIKE LINE OF lt_requirements.
ls_component = lcl_helper=>get_sap_basis_component( ).
ls_requirement-component = ls_component-component.
ls_requirement-min_release = ls_component-release.
ls_requirement-min_patch = ls_component-extrelease.
APPEND ls_requirement TO lt_requirements.
cl_abap_unit_assert=>assert_equals(
act = zcl_abapgit_requirement_helper=>is_requirements_met( lt_requirements )
exp = zif_abapgit_definitions=>c_yes ).
ENDMETHOD.
METHOD higher_patch.
DATA:
ls_component TYPE cvers_sdu,
lt_requirements TYPE zif_abapgit_dot_abapgit=>ty_requirement_tt,
ls_requirement LIKE LINE OF lt_requirements.
ls_component = lcl_helper=>get_sap_basis_component( ).
ls_requirement-component = ls_component-component.
ls_requirement-min_release = ls_component-release.
ls_requirement-min_patch = ls_component-extrelease + 1.
APPEND ls_requirement TO lt_requirements.
cl_abap_unit_assert=>assert_equals(
act = zcl_abapgit_requirement_helper=>is_requirements_met( lt_requirements )
exp = zif_abapgit_definitions=>c_no ).
ENDMETHOD.
ENDCLASS.
CLASS ltcl_higher_release DEFINITION FINAL
FOR TESTING
RISK LEVEL HARMLESS
DURATION SHORT.
PUBLIC SECTION.
PRIVATE SECTION.
METHODS empty_patch FOR TESTING
RAISING
zcx_abapgit_exception.
METHODS lower_patch FOR TESTING
RAISING
zcx_abapgit_exception.
METHODS same_patch FOR TESTING
RAISING
zcx_abapgit_exception.
METHODS higher_patch FOR TESTING
RAISING
zcx_abapgit_exception.
ENDCLASS.
CLASS ltcl_higher_release IMPLEMENTATION.
METHOD empty_patch.
DATA:
ls_component TYPE cvers_sdu,
lt_requirements TYPE zif_abapgit_dot_abapgit=>ty_requirement_tt,
ls_requirement LIKE LINE OF lt_requirements.
ls_component = lcl_helper=>get_sap_basis_component( ).
ls_requirement-component = ls_component-component.
ls_requirement-min_release = ls_component-release + 1.
ls_requirement-min_patch = 0.
APPEND ls_requirement TO lt_requirements.
cl_abap_unit_assert=>assert_equals(
act = zcl_abapgit_requirement_helper=>is_requirements_met( lt_requirements )
exp = zif_abapgit_definitions=>c_no ).
ENDMETHOD.
METHOD lower_patch.
DATA:
ls_component TYPE cvers_sdu,
lt_requirements TYPE zif_abapgit_dot_abapgit=>ty_requirement_tt,
ls_requirement LIKE LINE OF lt_requirements.
ls_component = lcl_helper=>get_sap_basis_component( ).
ls_requirement-component = ls_component-component.
ls_requirement-min_release = ls_component-release + 1.
ls_requirement-min_patch = ls_component-extrelease - 1.
APPEND ls_requirement TO lt_requirements.
cl_abap_unit_assert=>assert_equals(
act = zcl_abapgit_requirement_helper=>is_requirements_met( lt_requirements )
exp = zif_abapgit_definitions=>c_no ).
ENDMETHOD.
METHOD same_patch.
DATA:
ls_component TYPE cvers_sdu,
lt_requirements TYPE zif_abapgit_dot_abapgit=>ty_requirement_tt,
ls_requirement LIKE LINE OF lt_requirements.
ls_component = lcl_helper=>get_sap_basis_component( ).
ls_requirement-component = ls_component-component.
ls_requirement-min_release = ls_component-release + 1.
ls_requirement-min_patch = ls_component-extrelease.
APPEND ls_requirement TO lt_requirements.
cl_abap_unit_assert=>assert_equals(
act = zcl_abapgit_requirement_helper=>is_requirements_met( lt_requirements )
exp = zif_abapgit_definitions=>c_no ).
ENDMETHOD.
METHOD higher_patch.
DATA:
ls_component TYPE cvers_sdu,
lt_requirements TYPE zif_abapgit_dot_abapgit=>ty_requirement_tt,
ls_requirement LIKE LINE OF lt_requirements.
ls_component = lcl_helper=>get_sap_basis_component( ).
ls_requirement-component = ls_component-component.
ls_requirement-min_release = ls_component-release + 1.
ls_requirement-min_patch = ls_component-extrelease + 1.
APPEND ls_requirement TO lt_requirements.
cl_abap_unit_assert=>assert_equals(
act = zcl_abapgit_requirement_helper=>is_requirements_met( lt_requirements )
exp = zif_abapgit_definitions=>c_no ).
ENDMETHOD.
ENDCLASS.
CLASS ltcl_formats DEFINITION FINAL
FOR TESTING
RISK LEVEL HARMLESS
DURATION SHORT.
PUBLIC SECTION.
PRIVATE SECTION.
METHODS shorter_patch FOR TESTING
RAISING
zcx_abapgit_exception.
METHODS higher_patch FOR TESTING
RAISING
zcx_abapgit_exception.
ENDCLASS.
CLASS ltcl_formats IMPLEMENTATION.
METHOD shorter_patch.
DATA:
ls_component TYPE cvers_sdu,
lt_requirements TYPE zif_abapgit_dot_abapgit=>ty_requirement_tt,
ls_requirement LIKE LINE OF lt_requirements.
ls_component = lcl_helper=>get_sap_basis_component( ).
ls_requirement-component = ls_component-component.
ls_requirement-min_release = ls_component-release.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
input = ls_component-extrelease
IMPORTING
output = ls_requirement-min_patch.
APPEND ls_requirement TO lt_requirements.
cl_abap_unit_assert=>assert_equals(
act = zcl_abapgit_requirement_helper=>is_requirements_met( lt_requirements )
exp = zif_abapgit_definitions=>c_yes ).
ENDMETHOD.
METHOD higher_patch.
DATA:
ls_component TYPE cvers_sdu,
lt_requirements TYPE zif_abapgit_dot_abapgit=>ty_requirement_tt,
ls_requirement LIKE LINE OF lt_requirements.
ls_component = lcl_helper=>get_sap_basis_component( ).
ls_requirement-component = ls_component-component.
ls_requirement-min_release = ls_component-release.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = ls_component-extrelease
IMPORTING
output = ls_requirement-min_patch.
APPEND ls_requirement TO lt_requirements.
cl_abap_unit_assert=>assert_equals(
act = zcl_abapgit_requirement_helper=>is_requirements_met( lt_requirements )
exp = zif_abapgit_definitions=>c_yes ).
ENDMETHOD.
ENDCLASS.