mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-02 04:36:49 +08:00

* Check req. when release/patch length is different * Tests for requirement check * abaplint checks * Check for pach value longer than 4 characters
475 lines
12 KiB
ABAP
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.
|