unit tests for existing logic

This commit is contained in:
larshp 2017-02-14 17:38:53 +00:00
parent 9794b598c7
commit a3fd8d8ece
3 changed files with 121 additions and 14 deletions

View File

@ -4,14 +4,14 @@
CLASS ltcl_dot_abapgit DEFINITION DEFERRED.
CONSTANTS: BEGIN OF c_folder_logic,
prefix TYPE string VALUE 'PREFIX',
full TYPE string VALUE 'FULL',
END OF c_folder_logic.
CLASS lcl_dot_abapgit DEFINITION CREATE PRIVATE FINAL FRIENDS ltcl_dot_abapgit.
PUBLIC SECTION.
CONSTANTS: BEGIN OF c_folder_logic,
prefix TYPE string VALUE 'PREFIX',
full TYPE string VALUE 'FULL',
END OF c_folder_logic.
CLASS-METHODS:
build_default
IMPORTING iv_master_language TYPE spras
@ -39,8 +39,8 @@ CLASS lcl_dot_abapgit DEFINITION CREATE PRIVATE FINAL FRIENDS ltcl_dot_abapgit.
RETURNING VALUE(rv_path) TYPE string,
get_folder_logic
RETURNING VALUE(rv_logic) TYPE string,
* set_starting_folder
* IMPORTING iv_path TYPE string,
set_starting_folder
IMPORTING iv_path TYPE string,
get_master_language
RETURNING VALUE(rv_language) TYPE spras,
* set_master_language
@ -220,9 +220,9 @@ CLASS lcl_dot_abapgit IMPLEMENTATION.
rv_logic = ms_data-folder_logic.
ENDMETHOD.
* METHOD set_starting_folder.
* ms_data-starting_folder = iv_path.
* ENDMETHOD.
METHOD set_starting_folder.
ms_data-starting_folder = iv_path.
ENDMETHOD.
METHOD get_master_language.
rv_language = ms_data-master_language.

View File

@ -92,3 +92,107 @@ CLASS lcl_folder_logic IMPLEMENTATION.
ENDMETHOD. "class_to_path
ENDCLASS.
CLASS ltcl_folder_logic DEFINITION FOR TESTING RISK LEVEL HARMLESS DURATION SHORT FINAL.
PUBLIC SECTION.
INTERFACES: lif_sap_package.
PRIVATE SECTION.
CONSTANTS: lc_top TYPE devclass VALUE '$TOP',
lc_src TYPE string VALUE '/src/'.
METHODS:
setup,
teardown,
test_prefix
IMPORTING
iv_logic type string
iv_package TYPE devclass
iv_path TYPE string
RAISING lcx_exception,
prefix1 FOR TESTING RAISING lcx_exception,
prefix2 FOR TESTING RAISING lcx_exception.
ENDCLASS. "ltcl_convert DEFINITION
CLASS ltcl_folder_logic IMPLEMENTATION.
METHOD lif_sap_package~list_subpackages.
ENDMETHOD.
METHOD lif_sap_package~list_superpackages.
ENDMETHOD.
METHOD lif_sap_package~read_parent.
rv_parentcl = '$TOP'.
ENDMETHOD.
METHOD lif_sap_package~create_child.
ENDMETHOD.
METHOD lif_sap_package~exists.
rv_bool = abap_true.
ENDMETHOD.
METHOD setup.
FIELD-SYMBOLS: <ls_inject> LIKE LINE OF lcl_sap_package=>gt_injected.
CLEAR lcl_sap_package=>gt_injected.
APPEND INITIAL LINE TO lcl_sap_package=>gt_injected ASSIGNING <ls_inject>.
<ls_inject>-package = '$TOP'.
<ls_inject>-object = me.
APPEND INITIAL LINE TO lcl_sap_package=>gt_injected ASSIGNING <ls_inject>.
<ls_inject>-package = '$TOP_FOO'.
<ls_inject>-object = me.
ENDMETHOD.
METHOD teardown.
CLEAR lcl_sap_package=>gt_injected.
ENDMETHOD.
METHOD prefix1.
test_prefix( iv_logic = lcl_dot_abapgit=>c_folder_logic-prefix
iv_package = lc_top
iv_path = lc_src ).
ENDMETHOD.
METHOD prefix2.
test_prefix( iv_logic = lcl_dot_abapgit=>c_folder_logic-prefix
iv_package = '$TOP_FOO'
iv_path = '/src/foo/' ).
ENDMETHOD.
METHOD test_prefix.
DATA: lv_path TYPE string,
lv_package TYPE devclass,
lo_dot TYPE REF TO lcl_dot_abapgit.
lo_dot = lcl_dot_abapgit=>build_default( sy-langu ).
lo_dot->set_starting_folder( lc_src ).
lv_package = lcl_folder_logic=>path_to_package(
iv_top = lc_top
io_dot = lo_dot
iv_path = iv_path ).
cl_abap_unit_assert=>assert_equals(
act = lv_package
exp = iv_package ).
lv_path = lcl_folder_logic=>package_to_path(
iv_top = lc_top
io_dot = lo_dot
iv_package = iv_package ).
cl_abap_unit_assert=>assert_equals(
act = lv_path
exp = iv_path ).
ENDMETHOD.
ENDCLASS.

View File

@ -21,12 +21,15 @@ INTERFACE lif_sap_package.
ENDINTERFACE.
CLASS ltcl_folder_logic DEFINITION DEFERRED.
*----------------------------------------------------------------------*
* CLASS lcl_package DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_sap_package DEFINITION FINAL CREATE PRIVATE.
CLASS lcl_sap_package DEFINITION FINAL CREATE PRIVATE
FRIENDS ltcl_folder_logic.
PUBLIC SECTION.
CLASS-METHODS:
@ -69,9 +72,9 @@ CLASS lcl_sap_package IMPLEMENTATION.
FIELD-SYMBOLS: <ls_injected> LIKE LINE OF gt_injected.
READ TABLE gt_injected ASSIGNING <ls_injected> WITH KEY package = iv_package.
IF sy-subrc = 0.
IF lines( gt_injected ) > 0.
READ TABLE gt_injected ASSIGNING <ls_injected> WITH KEY package = iv_package.
ASSERT sy-subrc = 0. " unit test should be in control
ri_package = <ls_injected>-object.
ELSE.
CREATE OBJECT ri_package TYPE lcl_sap_package