mirror of
https://github.com/abapGit/abapGit.git
synced 2025-04-30 11:46:38 +08:00
169 lines
3.9 KiB
ABAP
169 lines
3.9 KiB
ABAP
*"* use this source file for your ABAP unit test classes
|
|
CLASS ltd_sap_package DEFINITION FOR TESTING.
|
|
|
|
PUBLIC SECTION.
|
|
TYPES:
|
|
tty_package TYPE STANDARD TABLE OF devclass
|
|
WITH NON-UNIQUE DEFAULT KEY.
|
|
|
|
METHODS:
|
|
constructor
|
|
IMPORTING
|
|
iv_package TYPE devclass,
|
|
|
|
set_sub_packages
|
|
IMPORTING
|
|
it_sub_packages TYPE tty_package.
|
|
|
|
INTERFACES: zif_abapgit_sap_package PARTIALLY IMPLEMENTED.
|
|
|
|
PRIVATE SECTION.
|
|
DATA: mv_package TYPE devclass,
|
|
mt_sub_packages TYPE tty_package.
|
|
|
|
ENDCLASS.
|
|
|
|
CLASS ltd_sap_package IMPLEMENTATION.
|
|
|
|
METHOD constructor.
|
|
|
|
mv_package = iv_package.
|
|
|
|
ENDMETHOD.
|
|
|
|
METHOD zif_abapgit_sap_package~list_subpackages.
|
|
|
|
DATA: ls_package LIKE LINE OF rt_list.
|
|
FIELD-SYMBOLS: <lv_package> TYPE devclass.
|
|
|
|
IF mv_package = 'Z_MAIN'.
|
|
|
|
rt_list = mt_sub_packages.
|
|
|
|
ENDIF.
|
|
|
|
ENDMETHOD.
|
|
|
|
|
|
METHOD set_sub_packages.
|
|
|
|
mt_sub_packages = it_sub_packages.
|
|
|
|
ENDMETHOD.
|
|
|
|
ENDCLASS.
|
|
|
|
CLASS ltcl_resolve_packages DEFINITION FOR TESTING
|
|
DURATION SHORT
|
|
RISK LEVEL HARMLESS.
|
|
|
|
PRIVATE SECTION.
|
|
DATA:
|
|
mt_tadir TYPE zcl_abapgit_dependencies=>ty_tadir_tt,
|
|
mt_sub_packages TYPE ltd_sap_package=>tty_package.
|
|
|
|
METHODS:
|
|
resolve_single FOR TESTING RAISING cx_static_check,
|
|
|
|
given_tadir
|
|
IMPORTING
|
|
iv_object TYPE tadir-object
|
|
iv_obj_name TYPE tadir-obj_name
|
|
iv_korrnum TYPE tadir-korrnum
|
|
iv_super_package TYPE devclass,
|
|
|
|
when_packages_are_resolved,
|
|
|
|
then_korrnum_should_be
|
|
IMPORTING
|
|
iv_line TYPE i
|
|
iv_korrnum TYPE tadir-korrnum.
|
|
|
|
ENDCLASS.
|
|
|
|
CLASS zcl_abapgit_dependencies DEFINITION LOCAL FRIENDS ltcl_resolve_packages.
|
|
|
|
CLASS ltcl_resolve_packages IMPLEMENTATION.
|
|
|
|
METHOD resolve_single.
|
|
|
|
|
|
given_tadir( iv_object = 'DEVC'
|
|
iv_obj_name = 'Z_MAIN'
|
|
iv_korrnum = '9990'
|
|
iv_super_package = '' ).
|
|
|
|
given_tadir( iv_object = 'DEVC'
|
|
iv_obj_name = 'Z_SUB1'
|
|
iv_korrnum = '9990'
|
|
iv_super_package = 'Z_MAIN' ).
|
|
|
|
given_tadir( iv_object = 'DEVC'
|
|
iv_obj_name = 'Z_SUB2'
|
|
iv_korrnum = '9990'
|
|
iv_super_package = 'Z_MAIN' ).
|
|
|
|
when_packages_are_resolved( ).
|
|
|
|
then_korrnum_should_be( iv_line = 1
|
|
iv_korrnum = '9990' ).
|
|
then_korrnum_should_be( iv_line = 2
|
|
iv_korrnum = '9989' ).
|
|
then_korrnum_should_be( iv_line = 3
|
|
iv_korrnum = '9989' ).
|
|
|
|
ENDMETHOD.
|
|
|
|
|
|
METHOD given_tadir.
|
|
|
|
DATA: ls_tadir LIKE LINE OF mt_tadir,
|
|
lv_package TYPE devclass.
|
|
|
|
ls_tadir-object = iv_object.
|
|
ls_tadir-obj_name = iv_obj_name.
|
|
ls_tadir-korrnum = iv_korrnum.
|
|
INSERT ls_tadir INTO TABLE mt_tadir.
|
|
|
|
IF iv_super_package IS NOT INITIAL.
|
|
lv_package = iv_obj_name.
|
|
INSERT lv_package INTO TABLE mt_sub_packages.
|
|
ENDIF.
|
|
|
|
ENDMETHOD.
|
|
|
|
|
|
METHOD when_packages_are_resolved.
|
|
|
|
DATA: lo_mock_sap_package TYPE REF TO ltd_sap_package.
|
|
|
|
CREATE OBJECT lo_mock_sap_package
|
|
EXPORTING
|
|
iv_package = 'Z_MAIN'.
|
|
|
|
lo_mock_sap_package->set_sub_packages( mt_sub_packages ).
|
|
|
|
zcl_abapgit_injector=>set_sap_package( iv_package = 'Z_MAIN'
|
|
ii_sap_package = lo_mock_sap_package ).
|
|
|
|
zcl_abapgit_dependencies=>resolve_packages(
|
|
CHANGING
|
|
ct_tadir = mt_tadir ).
|
|
|
|
ENDMETHOD.
|
|
|
|
|
|
METHOD then_korrnum_should_be.
|
|
|
|
FIELD-SYMBOLS: <ls_tadir> LIKE LINE OF mt_tadir.
|
|
|
|
READ TABLE mt_tadir INDEX iv_line
|
|
ASSIGNING <ls_tadir>.
|
|
|
|
cl_abap_unit_assert=>assert_equals( exp = iv_korrnum
|
|
act = <ls_tadir>-korrnum ).
|
|
|
|
ENDMETHOD.
|
|
|
|
ENDCLASS.
|