fixes #2808
This commit is contained in:
Lars Hvam 2019-07-31 00:41:01 -07:00 committed by GitHub
parent 29c45a7e7c
commit d42bb98662
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 50 additions and 1 deletions

View File

@ -31,6 +31,7 @@ CLASS zcl_abapgit_url DEFINITION
VALUE(rv_path_name) TYPE string VALUE(rv_path_name) TYPE string
RAISING RAISING
zcx_abapgit_exception . zcx_abapgit_exception .
PROTECTED SECTION.
PRIVATE SECTION. PRIVATE SECTION.
CLASS-METHODS regex CLASS-METHODS regex
@ -59,8 +60,17 @@ CLASS ZCL_ABAPGIT_URL IMPLEMENTATION.
METHOD name. METHOD name.
DATA: lv_path TYPE string.
regex( EXPORTING iv_url = iv_url regex( EXPORTING iv_url = iv_url
IMPORTING ev_name = rv_name ). IMPORTING ev_name = rv_name
ev_path = lv_path ).
IF rv_name IS INITIAL.
FIND REGEX '([\w-]+)/$' IN lv_path SUBMATCHES rv_name.
ENDIF.
ASSERT NOT rv_name IS INITIAL.
ENDMETHOD. ENDMETHOD.

View File

@ -6,6 +6,9 @@ CLASS ltcl_test DEFINITION FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
repo_host FOR TESTING RAISING zcx_abapgit_exception, repo_host FOR TESTING RAISING zcx_abapgit_exception,
repo_name1 FOR TESTING RAISING zcx_abapgit_exception, repo_name1 FOR TESTING RAISING zcx_abapgit_exception,
repo_name2 FOR TESTING RAISING zcx_abapgit_exception, repo_name2 FOR TESTING RAISING zcx_abapgit_exception,
repo_name3 FOR TESTING RAISING zcx_abapgit_exception,
repo_name4 FOR TESTING RAISING zcx_abapgit_exception,
repo_name5 FOR TESTING RAISING zcx_abapgit_exception,
repo_error FOR TESTING. repo_error FOR TESTING.
ENDCLASS. ENDCLASS.
@ -59,4 +62,40 @@ CLASS ltcl_test IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD repo_name3.
DATA: lv_name TYPE string.
lv_name = zcl_abapgit_url=>name( 'https://github.com/larshp/Foobar/' ).
cl_abap_unit_assert=>assert_equals(
exp = 'Foobar'
act = lv_name ).
ENDMETHOD.
METHOD repo_name4.
DATA: lv_name TYPE string.
lv_name = zcl_abapgit_url=>name( 'https://github.com/larshp/foo-bar/' ).
cl_abap_unit_assert=>assert_equals(
exp = 'foo-bar'
act = lv_name ).
ENDMETHOD.
METHOD repo_name5.
DATA: lv_name TYPE string.
lv_name = zcl_abapgit_url=>name( 'https://github.com/larshp/foo_bar/' ).
cl_abap_unit_assert=>assert_equals(
exp = 'foo_bar'
act = lv_name ).
ENDMETHOD.
ENDCLASS. ENDCLASS.