mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-02 04:36:49 +08:00
folder logic, handle namespaces
This commit is contained in:
parent
9dae60ebad
commit
5a13042681
|
@ -47,6 +47,7 @@ CLASS lcl_folder_logic IMPLEMENTATION.
|
||||||
CASE io_dot->get_folder_logic( ).
|
CASE io_dot->get_folder_logic( ).
|
||||||
WHEN lcl_dot_abapgit=>c_folder_logic-full.
|
WHEN lcl_dot_abapgit=>c_folder_logic-full.
|
||||||
rv_package = lv_new.
|
rv_package = lv_new.
|
||||||
|
TRANSLATE rv_package USING '#/'.
|
||||||
IF iv_top(1) = '$'.
|
IF iv_top(1) = '$'.
|
||||||
CONCATENATE '$' rv_package INTO rv_package.
|
CONCATENATE '$' rv_package INTO rv_package.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
@ -113,6 +114,7 @@ CLASS lcl_folder_logic IMPLEMENTATION.
|
||||||
lv_path = lv_path+1.
|
lv_path = lv_path+1.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
|
TRANSLATE lv_path USING '/#'.
|
||||||
TRANSLATE lv_path TO LOWER CASE.
|
TRANSLATE lv_path TO LOWER CASE.
|
||||||
CONCATENATE lv_path '/' INTO lv_path.
|
CONCATENATE lv_path '/' INTO lv_path.
|
||||||
|
|
||||||
|
@ -128,6 +130,55 @@ CLASS lcl_folder_logic IMPLEMENTATION.
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
CLASS ltcl_folder_logic_helper DEFINITION FOR TESTING FINAL.
|
||||||
|
|
||||||
|
PUBLIC SECTION.
|
||||||
|
CLASS-METHODS: test
|
||||||
|
IMPORTING
|
||||||
|
iv_starting TYPE string
|
||||||
|
iv_top TYPE devclass
|
||||||
|
iv_logic TYPE string
|
||||||
|
iv_package TYPE devclass
|
||||||
|
iv_path TYPE string
|
||||||
|
RAISING lcx_exception.
|
||||||
|
|
||||||
|
ENDCLASS.
|
||||||
|
|
||||||
|
CLASS ltcl_folder_logic_helper IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD test.
|
||||||
|
|
||||||
|
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( iv_starting ).
|
||||||
|
lo_dot->set_folder_logic( iv_logic ).
|
||||||
|
|
||||||
|
lv_package = lcl_folder_logic=>path_to_package(
|
||||||
|
iv_top = iv_top
|
||||||
|
io_dot = lo_dot
|
||||||
|
iv_path = iv_path ).
|
||||||
|
|
||||||
|
lv_path = lcl_folder_logic=>package_to_path(
|
||||||
|
iv_top = iv_top
|
||||||
|
io_dot = lo_dot
|
||||||
|
iv_package = iv_package ).
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_equals(
|
||||||
|
act = lv_package
|
||||||
|
exp = iv_package ).
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_equals(
|
||||||
|
act = lv_path
|
||||||
|
exp = iv_path ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
ENDCLASS.
|
||||||
|
|
||||||
CLASS ltcl_folder_logic DEFINITION FOR TESTING RISK LEVEL HARMLESS DURATION SHORT FINAL.
|
CLASS ltcl_folder_logic DEFINITION FOR TESTING RISK LEVEL HARMLESS DURATION SHORT FINAL.
|
||||||
|
|
||||||
PUBLIC SECTION.
|
PUBLIC SECTION.
|
||||||
|
@ -140,12 +191,6 @@ CLASS ltcl_folder_logic DEFINITION FOR TESTING RISK LEVEL HARMLESS DURATION SHOR
|
||||||
METHODS:
|
METHODS:
|
||||||
setup,
|
setup,
|
||||||
teardown,
|
teardown,
|
||||||
test
|
|
||||||
IMPORTING
|
|
||||||
iv_logic TYPE string
|
|
||||||
iv_package TYPE devclass
|
|
||||||
iv_path TYPE string
|
|
||||||
RAISING lcx_exception,
|
|
||||||
prefix1 FOR TESTING RAISING lcx_exception,
|
prefix1 FOR TESTING RAISING lcx_exception,
|
||||||
prefix2 FOR TESTING RAISING lcx_exception,
|
prefix2 FOR TESTING RAISING lcx_exception,
|
||||||
prefix_error1 FOR TESTING RAISING lcx_exception,
|
prefix_error1 FOR TESTING RAISING lcx_exception,
|
||||||
|
@ -157,9 +202,11 @@ ENDCLASS. "ltcl_convert DEFINITION
|
||||||
CLASS ltcl_folder_logic IMPLEMENTATION.
|
CLASS ltcl_folder_logic IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD lif_sap_package~list_subpackages.
|
METHOD lif_sap_package~list_subpackages.
|
||||||
|
RETURN.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
METHOD lif_sap_package~list_superpackages.
|
METHOD lif_sap_package~list_superpackages.
|
||||||
|
RETURN.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
METHOD lif_sap_package~read_parent.
|
METHOD lif_sap_package~read_parent.
|
||||||
|
@ -167,6 +214,7 @@ CLASS ltcl_folder_logic IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
METHOD lif_sap_package~create_child.
|
METHOD lif_sap_package~create_child.
|
||||||
|
RETURN.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
METHOD lif_sap_package~exists.
|
METHOD lif_sap_package~exists.
|
||||||
|
@ -196,69 +244,154 @@ CLASS ltcl_folder_logic IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
METHOD prefix1.
|
METHOD prefix1.
|
||||||
test( iv_logic = lcl_dot_abapgit=>c_folder_logic-prefix
|
ltcl_folder_logic_helper=>test(
|
||||||
iv_package = lc_top
|
iv_starting = lc_src
|
||||||
iv_path = lc_src ).
|
iv_top = lc_top
|
||||||
|
iv_logic = lcl_dot_abapgit=>c_folder_logic-prefix
|
||||||
|
iv_package = lc_top
|
||||||
|
iv_path = lc_src ).
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
METHOD prefix2.
|
METHOD prefix2.
|
||||||
test( iv_logic = lcl_dot_abapgit=>c_folder_logic-prefix
|
ltcl_folder_logic_helper=>test(
|
||||||
iv_package = '$TOP_FOO'
|
iv_starting = lc_src
|
||||||
iv_path = '/src/foo/' ).
|
iv_top = lc_top
|
||||||
|
iv_logic = lcl_dot_abapgit=>c_folder_logic-prefix
|
||||||
|
iv_package = '$TOP_FOO'
|
||||||
|
iv_path = '/src/foo/' ).
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
METHOD prefix_error1.
|
METHOD prefix_error1.
|
||||||
* PREFIX mode, top package is $TOP, so all subpackages should be named $TOP_something
|
* PREFIX mode, top package is $TOP, so all subpackages should be named $TOP_something
|
||||||
TRY.
|
TRY.
|
||||||
test( iv_logic = lcl_dot_abapgit=>c_folder_logic-prefix
|
ltcl_folder_logic_helper=>test(
|
||||||
iv_package = '$FOOBAR'
|
iv_starting = lc_src
|
||||||
iv_path = '/src/' ).
|
iv_top = lc_top
|
||||||
|
iv_logic = lcl_dot_abapgit=>c_folder_logic-prefix
|
||||||
|
iv_package = '$FOOBAR'
|
||||||
|
iv_path = '/src/' ).
|
||||||
cl_abap_unit_assert=>fail( 'Error expected' ).
|
cl_abap_unit_assert=>fail( 'Error expected' ).
|
||||||
CATCH lcx_exception.
|
CATCH lcx_exception.
|
||||||
ENDTRY.
|
ENDTRY.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
METHOD full1.
|
METHOD full1.
|
||||||
test( iv_logic = lcl_dot_abapgit=>c_folder_logic-full
|
ltcl_folder_logic_helper=>test(
|
||||||
iv_package = lc_top
|
iv_starting = lc_src
|
||||||
iv_path = lc_src ).
|
iv_top = lc_top
|
||||||
|
iv_logic = lcl_dot_abapgit=>c_folder_logic-full
|
||||||
|
iv_package = lc_top
|
||||||
|
iv_path = lc_src ).
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
METHOD full2.
|
METHOD full2.
|
||||||
test( iv_logic = lcl_dot_abapgit=>c_folder_logic-full
|
ltcl_folder_logic_helper=>test(
|
||||||
iv_package = '$TOP_FOO'
|
iv_starting = lc_src
|
||||||
iv_path = '/src/top_foo/' ).
|
iv_top = lc_top
|
||||||
ENDMETHOD.
|
iv_logic = lcl_dot_abapgit=>c_folder_logic-full
|
||||||
|
iv_package = '$TOP_FOO'
|
||||||
METHOD test.
|
iv_path = '/src/top_foo/' ).
|
||||||
|
ENDMETHOD.
|
||||||
DATA: lv_path TYPE string,
|
|
||||||
lv_package TYPE devclass,
|
ENDCLASS.
|
||||||
lo_dot TYPE REF TO lcl_dot_abapgit.
|
|
||||||
|
CLASS ltcl_folder_logic_namespaces DEFINITION FOR TESTING RISK LEVEL HARMLESS DURATION SHORT FINAL.
|
||||||
|
|
||||||
lo_dot = lcl_dot_abapgit=>build_default( sy-langu ).
|
PUBLIC SECTION.
|
||||||
lo_dot->set_starting_folder( lc_src ).
|
INTERFACES: lif_sap_package.
|
||||||
lo_dot->set_folder_logic( iv_logic ).
|
|
||||||
|
PRIVATE SECTION.
|
||||||
lv_package = lcl_folder_logic=>path_to_package(
|
CONSTANTS: lc_top TYPE devclass VALUE '/TEST/TOOLS',
|
||||||
iv_top = lc_top
|
lc_src TYPE string VALUE '/src/'.
|
||||||
io_dot = lo_dot
|
|
||||||
iv_path = iv_path ).
|
METHODS:
|
||||||
|
setup,
|
||||||
lv_path = lcl_folder_logic=>package_to_path(
|
teardown,
|
||||||
iv_top = lc_top
|
prefix1 FOR TESTING RAISING lcx_exception,
|
||||||
io_dot = lo_dot
|
prefix2 FOR TESTING RAISING lcx_exception,
|
||||||
iv_package = iv_package ).
|
full1 FOR TESTING RAISING lcx_exception,
|
||||||
|
full2 FOR TESTING RAISING lcx_exception.
|
||||||
cl_abap_unit_assert=>assert_equals(
|
|
||||||
act = lv_package
|
ENDCLASS. "ltcl_convert DEFINITION
|
||||||
exp = iv_package ).
|
|
||||||
|
CLASS ltcl_folder_logic_namespaces IMPLEMENTATION.
|
||||||
cl_abap_unit_assert=>assert_equals(
|
|
||||||
act = lv_path
|
METHOD lif_sap_package~list_subpackages.
|
||||||
exp = iv_path ).
|
RETURN.
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD lif_sap_package~list_superpackages.
|
||||||
|
RETURN.
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD lif_sap_package~read_parent.
|
||||||
|
rv_parentcl = lc_top.
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD lif_sap_package~create_child.
|
||||||
|
RETURN.
|
||||||
|
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 = '/TEST/TOOLS'.
|
||||||
|
<ls_inject>-object = me.
|
||||||
|
|
||||||
|
APPEND INITIAL LINE TO lcl_sap_package=>gt_injected ASSIGNING <ls_inject>.
|
||||||
|
<ls_inject>-package = '/TEST/T1'.
|
||||||
|
<ls_inject>-object = me.
|
||||||
|
|
||||||
|
APPEND INITIAL LINE TO lcl_sap_package=>gt_injected ASSIGNING <ls_inject>.
|
||||||
|
<ls_inject>-package = '/TEST/TOOLS_T1'.
|
||||||
|
<ls_inject>-object = me.
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD teardown.
|
||||||
|
CLEAR lcl_sap_package=>gt_injected.
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD prefix1.
|
||||||
|
ltcl_folder_logic_helper=>test(
|
||||||
|
iv_starting = lc_src
|
||||||
|
iv_top = lc_top
|
||||||
|
iv_logic = lcl_dot_abapgit=>c_folder_logic-prefix
|
||||||
|
iv_package = lc_top
|
||||||
|
iv_path = lc_src ).
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD prefix2.
|
||||||
|
ltcl_folder_logic_helper=>test(
|
||||||
|
iv_starting = lc_src
|
||||||
|
iv_top = lc_top
|
||||||
|
iv_logic = lcl_dot_abapgit=>c_folder_logic-prefix
|
||||||
|
iv_package = '/TEST/TOOLS_T1'
|
||||||
|
iv_path = '/src/t1/' ).
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD full1.
|
||||||
|
ltcl_folder_logic_helper=>test(
|
||||||
|
iv_starting = lc_src
|
||||||
|
iv_top = lc_top
|
||||||
|
iv_logic = lcl_dot_abapgit=>c_folder_logic-full
|
||||||
|
iv_package = lc_top
|
||||||
|
iv_path = lc_src ).
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD full2.
|
||||||
|
ltcl_folder_logic_helper=>test(
|
||||||
|
iv_starting = lc_src
|
||||||
|
iv_top = lc_top
|
||||||
|
iv_logic = lcl_dot_abapgit=>c_folder_logic-full
|
||||||
|
iv_package = '/TEST/T1'
|
||||||
|
iv_path = '/src/#test#t1/' ).
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
|
@ -22,6 +22,7 @@ INTERFACE lif_sap_package.
|
||||||
ENDINTERFACE.
|
ENDINTERFACE.
|
||||||
|
|
||||||
CLASS ltcl_folder_logic DEFINITION DEFERRED.
|
CLASS ltcl_folder_logic DEFINITION DEFERRED.
|
||||||
|
CLASS ltcl_folder_logic_namespaces DEFINITION DEFERRED.
|
||||||
|
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
* CLASS lcl_package DEFINITION
|
* CLASS lcl_package DEFINITION
|
||||||
|
@ -29,7 +30,9 @@ CLASS ltcl_folder_logic DEFINITION DEFERRED.
|
||||||
*
|
*
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
CLASS lcl_sap_package DEFINITION FINAL CREATE PRIVATE
|
CLASS lcl_sap_package DEFINITION FINAL CREATE PRIVATE
|
||||||
FRIENDS ltcl_folder_logic.
|
FRIENDS
|
||||||
|
ltcl_folder_logic
|
||||||
|
ltcl_folder_logic_namespaces.
|
||||||
|
|
||||||
PUBLIC SECTION.
|
PUBLIC SECTION.
|
||||||
CLASS-METHODS:
|
CLASS-METHODS:
|
||||||
|
|
Loading…
Reference in New Issue
Block a user