Add unit tests for ZCL_ABAPGIT_GUI_PAGE_SETT_REMO->VALIDATE_FORM (#6712)

Co-authored-by: Lars Hvam <larshp@hotmail.com>
Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>
Co-authored-by: Marc Bernard <59966492+mbtools@users.noreply.github.com>
This commit is contained in:
Christian Günter 2023-12-20 20:50:06 +01:00 committed by GitHub
parent 78aaf52046
commit fbd9e70fa5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
20 changed files with 591 additions and 22 deletions

View File

@ -1,22 +1,42 @@
CLASS zcl_abapgit_git_factory DEFINITION CLASS zcl_abapgit_git_factory DEFINITION
PUBLIC PUBLIC
FINAL FINAL
CREATE PUBLIC . CREATE PRIVATE
GLOBAL FRIENDS zcl_abapgit_git_injector .
PUBLIC SECTION. PUBLIC SECTION.
CLASS-METHODS CLASS-METHODS:
get_v2_porcelain get_v2_porcelain
RETURNING VALUE(ri_v2) TYPE REF TO zif_abapgit_gitv2_porcelain. RETURNING VALUE(ri_v2) TYPE REF TO zif_abapgit_gitv2_porcelain,
get_git_transport
RETURNING
VALUE(ri_git_transport) TYPE REF TO zif_abapgit_git_transport.
PROTECTED SECTION. PROTECTED SECTION.
PRIVATE SECTION. PRIVATE SECTION.
CLASS-DATA:
gi_git_transport TYPE REF TO zif_abapgit_git_transport.
ENDCLASS. ENDCLASS.
CLASS ZCL_ABAPGIT_GIT_FACTORY IMPLEMENTATION. CLASS zcl_abapgit_git_factory IMPLEMENTATION.
METHOD get_v2_porcelain. METHOD get_v2_porcelain.
CREATE OBJECT ri_v2 TYPE zcl_abapgit_gitv2_porcelain. CREATE OBJECT ri_v2 TYPE zcl_abapgit_gitv2_porcelain.
ENDMETHOD. ENDMETHOD.
METHOD get_git_transport.
IF gi_git_transport IS INITIAL.
CREATE OBJECT gi_git_transport TYPE zcl_abapgit_git_transport.
ENDIF.
ri_git_transport = gi_git_transport.
ENDMETHOD.
ENDCLASS. ENDCLASS.

View File

@ -0,0 +1,22 @@
CLASS zcl_abapgit_git_injector DEFINITION
PUBLIC
FINAL
CREATE PRIVATE .
PUBLIC SECTION.
CLASS-METHODS:
set_git_transport
IMPORTING
ii_git_transport TYPE REF TO zif_abapgit_git_transport.
ENDCLASS.
CLASS zcl_abapgit_git_injector IMPLEMENTATION.
METHOD set_git_transport.
zcl_abapgit_git_factory=>gi_git_transport = ii_git_transport.
ENDMETHOD.
ENDCLASS.

View File

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_ABAPGIT_GIT_INJECTOR</CLSNAME>
<LANGU>E</LANGU>
<DESCRIPT>abapGit - Git Injector</DESCRIPT>
<STATE>1</STATE>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -358,7 +358,7 @@ CLASS zcl_abapgit_git_porcelain IMPLEMENTATION.
lt_tags TYPE zif_abapgit_git_definitions=>ty_git_branch_list_tt. lt_tags TYPE zif_abapgit_git_definitions=>ty_git_branch_list_tt.
" For annotated tags, find the correct commit " For annotated tags, find the correct commit
lo_branches = zcl_abapgit_git_transport=>branches( iv_url ). lo_branches = zcl_abapgit_git_factory=>get_git_transport( )->branches( iv_url ).
lt_tags = lo_branches->get_tags_only( ). lt_tags = lo_branches->get_tags_only( ).
lv_tag = zcl_abapgit_git_tag=>remove_peel( is_tag-name ). lv_tag = zcl_abapgit_git_tag=>remove_peel( is_tag-name ).

View File

@ -4,6 +4,8 @@ CLASS zcl_abapgit_git_transport DEFINITION
CREATE PUBLIC . CREATE PUBLIC .
PUBLIC SECTION. PUBLIC SECTION.
INTERFACES:
zif_abapgit_git_transport.
* remote to local * remote to local
CLASS-METHODS upload_pack_by_branch CLASS-METHODS upload_pack_by_branch
@ -39,11 +41,12 @@ CLASS zcl_abapgit_git_transport DEFINITION
zcx_abapgit_exception . zcx_abapgit_exception .
CLASS-METHODS branches CLASS-METHODS branches
IMPORTING IMPORTING
!iv_url TYPE string iv_url TYPE string
RETURNING RETURNING
VALUE(ro_branch_list) TYPE REF TO zcl_abapgit_git_branch_list VALUE(ro_branch_list) TYPE REF TO zcl_abapgit_git_branch_list
RAISING RAISING
zcx_abapgit_exception . zcx_abapgit_exception .
PROTECTED SECTION. PROTECTED SECTION.
PRIVATE SECTION. PRIVATE SECTION.
@ -102,7 +105,7 @@ ENDCLASS.
CLASS zcl_abapgit_git_transport IMPLEMENTATION. CLASS zcl_abapgit_git_transport IMPLEMENTATION.
METHOD branches. METHOD zif_abapgit_git_transport~branches.
DATA: lo_client TYPE REF TO zcl_abapgit_http_client. DATA: lo_client TYPE REF TO zcl_abapgit_http_client.
@ -439,4 +442,13 @@ CLASS zcl_abapgit_git_transport IMPLEMENTATION.
it_hashes = lt_hashes ). it_hashes = lt_hashes ).
ENDMETHOD. ENDMETHOD.
METHOD branches.
" This method is kept for compatibility reasons
ro_branch_list = zcl_abapgit_git_factory=>get_git_transport( )->branches( iv_url ).
ENDMETHOD.
ENDCLASS. ENDCLASS.

View File

@ -0,0 +1,11 @@
INTERFACE zif_abapgit_git_transport
PUBLIC .
METHODS branches
IMPORTING
iv_url TYPE string
RETURNING
VALUE(ro_branch_list) TYPE REF TO zcl_abapgit_git_branch_list
RAISING
zcx_abapgit_exception .
ENDINTERFACE.

View File

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_INTF" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOINTERF>
<CLSNAME>ZIF_ABAPGIT_GIT_TRANSPORT</CLSNAME>
<LANGU>E</LANGU>
<DESCRIPT>abapGit - Git Transport</DESCRIPT>
<EXPOSURE>2</EXPOSURE>
<STATE>1</STATE>
<UNICODE>X</UNICODE>
</VSEOINTERF>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -252,7 +252,7 @@ CLASS zcl_abapgit_merge IMPLEMENTATION.
DATA: lo_branch_list TYPE REF TO zcl_abapgit_git_branch_list, DATA: lo_branch_list TYPE REF TO zcl_abapgit_git_branch_list,
lt_upload TYPE zif_abapgit_git_definitions=>ty_git_branch_list_tt. lt_upload TYPE zif_abapgit_git_definitions=>ty_git_branch_list_tt.
lo_branch_list = zcl_abapgit_git_transport=>branches( ms_merge-repo->get_url( ) ). lo_branch_list = zcl_abapgit_git_factory=>get_git_transport( )->branches( ms_merge-repo->get_url( ) ).
ms_merge-source = lo_branch_list->find_by_name( ms_merge-source = lo_branch_list->find_by_name(
zcl_abapgit_git_branch_list=>complete_heads_branch_name( mv_source_branch ) ). zcl_abapgit_git_branch_list=>complete_heads_branch_name( mv_source_branch ) ).

View File

@ -152,7 +152,7 @@ CLASS zcl_abapgit_repo_online IMPLEMENTATION.
lt_branches TYPE zif_abapgit_git_definitions=>ty_git_branch_list_tt, lt_branches TYPE zif_abapgit_git_definitions=>ty_git_branch_list_tt,
lv_display_name TYPE string. lv_display_name TYPE string.
lt_branches = zcl_abapgit_git_transport=>branches( get_url( ) )->get_branches_only( ). lt_branches = zcl_abapgit_git_factory=>get_git_transport( )->branches( get_url( ) )->get_branches_only( ).
READ TABLE lt_branches WITH TABLE KEY name_key READ TABLE lt_branches WITH TABLE KEY name_key
COMPONENTS name = iv_name COMPONENTS name = iv_name
@ -181,7 +181,7 @@ CLASS zcl_abapgit_repo_online IMPLEMENTATION.
lv_branch = get_selected_branch( ). lv_branch = get_selected_branch( ).
IF lv_branch IS NOT INITIAL. IF lv_branch IS NOT INITIAL.
lo_branch_list = zcl_abapgit_git_transport=>branches( get_url( ) ). lo_branch_list = zcl_abapgit_git_factory=>get_git_transport( )->branches( get_url( ) ).
TRY. TRY.
lo_branch_list->find_by_name( lv_branch ). lo_branch_list->find_by_name( lv_branch ).

View File

@ -100,7 +100,7 @@ CLASS zcl_abapgit_repo_srv IMPLEMENTATION.
rv_name = iv_name. rv_name = iv_name.
IF rv_name IS INITIAL. IF rv_name IS INITIAL.
ASSERT NOT iv_url IS INITIAL. ASSERT NOT iv_url IS INITIAL.
lo_branch_list = zcl_abapgit_git_transport=>branches( iv_url ). lo_branch_list = zcl_abapgit_git_factory=>get_git_transport( )->branches( iv_url ).
rv_name = lo_branch_list->get_head_symref( ). rv_name = lo_branch_list->get_head_symref( ).
ELSEIF -1 = find( ELSEIF -1 = find(
val = rv_name val = rv_name

View File

@ -449,7 +449,9 @@ CLASS zcl_abapgit_gui_page_commit IMPLEMENTATION.
lv_new_branch_name = io_form_data->get( c_id-new_branch_name ). lv_new_branch_name = io_form_data->get( c_id-new_branch_name ).
IF lv_new_branch_name IS NOT INITIAL. IF lv_new_branch_name IS NOT INITIAL.
" check if branch already exists " check if branch already exists
lt_branches = zcl_abapgit_git_transport=>branches( mo_repo->get_url( ) )->get_branches_only( ). lt_branches = zcl_abapgit_git_factory=>get_git_transport(
)->branches( mo_repo->get_url( )
)->get_branches_only( ).
READ TABLE lt_branches TRANSPORTING NO FIELDS WITH TABLE KEY name_key READ TABLE lt_branches TRANSPORTING NO FIELDS WITH TABLE KEY name_key
COMPONENTS name = branch_name_to_internal( lv_new_branch_name ). COMPONENTS name = branch_name_to_internal( lv_new_branch_name ).
IF sy-subrc = 0. IF sy-subrc = 0.

View File

@ -141,7 +141,7 @@ CLASS zcl_abapgit_gui_page_merge_sel IMPLEMENTATION.
DATA lo_branches TYPE REF TO zcl_abapgit_git_branch_list. DATA lo_branches TYPE REF TO zcl_abapgit_git_branch_list.
lo_branches = zcl_abapgit_git_transport=>branches( mo_repo->get_url( ) ). lo_branches = zcl_abapgit_git_factory=>get_git_transport( )->branches( mo_repo->get_url( ) ).
mt_branches = lo_branches->get_branches_only( ). mt_branches = lo_branches->get_branches_only( ).
DELETE mt_branches WHERE name = zif_abapgit_git_definitions=>c_head_name. DELETE mt_branches WHERE name = zif_abapgit_git_definitions=>c_head_name.

View File

@ -763,7 +763,7 @@ CLASS zcl_abapgit_gui_page_sett_remo IMPLEMENTATION.
iv_val = c_head_types-branch ). iv_val = c_head_types-branch ).
IF lv_url CP 'http*'. IF lv_url CP 'http*'.
lv_branch = zcl_abapgit_git_transport=>branches( lv_url )->get_head_symref( ). lv_branch = zcl_abapgit_git_factory=>get_git_transport( )->branches( lv_url )->get_head_symref( ).
mo_form_data->set( mo_form_data->set(
iv_key = c_id-branch iv_key = c_id-branch
iv_val = lv_branch ). iv_val = lv_branch ).
@ -903,7 +903,7 @@ CLASS zcl_abapgit_gui_page_sett_remo IMPLEMENTATION.
TRY. TRY.
IF lv_branch IS NOT INITIAL. IF lv_branch IS NOT INITIAL.
lo_branch_list = zcl_abapgit_git_transport=>branches( lv_url ). lo_branch_list = zcl_abapgit_git_factory=>get_git_transport( )->branches( lv_url ).
lo_branch_list->find_by_name( lv_branch ). lo_branch_list->find_by_name( lv_branch ).
ENDIF. ENDIF.
CATCH zcx_abapgit_exception INTO lx_error. CATCH zcx_abapgit_exception INTO lx_error.

View File

@ -0,0 +1,470 @@
*"* use this source file for your ABAP unit test classes
CLASS ltd_git_transport DEFINITION FINAL FOR TESTING.
PUBLIC SECTION.
INTERFACES:
zif_abapgit_git_transport.
ENDCLASS.
CLASS ltd_branch_list DEFINITION FINAL FOR TESTING INHERITING FROM zcl_abapgit_git_branch_list.
PUBLIC SECTION.
METHODS:
constructor
IMPORTING
iv_data TYPE string
RAISING
zcx_abapgit_exception,
find_by_name REDEFINITION.
ENDCLASS.
CLASS ltd_frontend_services DEFINITION FINAL FOR TESTING
DURATION SHORT
RISK LEVEL HARMLESS.
PUBLIC SECTION.
INTERFACES:
zif_abapgit_frontend_services.
ENDCLASS.
CLASS ltcl_validate_form DEFINITION FINAL FOR TESTING
DURATION SHORT
RISK LEVEL HARMLESS.
PRIVATE SECTION.
CONSTANTS:
c_git_repo_url TYPE string VALUE 'https://repo.com/demo.git'.
DATA:
mo_cut TYPE REF TO zcl_abapgit_gui_page_sett_remo,
mo_repo TYPE REF TO zcl_abapgit_repo_online,
mo_given_form_data TYPE REF TO zcl_abapgit_string_map,
mo_act_validation_log TYPE REF TO zcl_abapgit_string_map,
mo_git_transport_mock TYPE REF TO zif_abapgit_git_transport,
mo_frontend_services_mock TYPE REF TO zif_abapgit_frontend_services.
METHODS:
setup RAISING cx_static_check,
teardown RAISING cx_static_check,
switch_to_offline_no_error FOR TESTING RAISING cx_static_check,
invalid_url FOR TESTING RAISING cx_static_check,
invalid_url2 FOR TESTING RAISING cx_static_check,
valid_url_no_head_type FOR TESTING RAISING cx_static_check,
invalid_branch FOR TESTING RAISING cx_static_check,
valid_branch FOR TESTING RAISING cx_static_check,
invalid_tag FOR TESTING RAISING cx_static_check,
valid_tag FOR TESTING RAISING cx_static_check,
invalid_pull_request FOR TESTING RAISING cx_static_check,
valid_pull_request FOR TESTING RAISING cx_static_check,
invalid_commit FOR TESTING RAISING cx_static_check,
valid_commit FOR TESTING RAISING cx_static_check,
when_validate_form
RAISING
zcx_abapgit_exception,
then_no_error_shd_occur,
then_error_shd_occur
IMPORTING
iv_exp_error_key TYPE string.
ENDCLASS.
CLASS zcl_abapgit_gui_page_sett_remo DEFINITION LOCAL FRIENDS ltcl_validate_form.
CLASS ltd_git_transport IMPLEMENTATION.
METHOD zif_abapgit_git_transport~branches.
CONSTANTS: lc_dummy_data TYPE string VALUE '0000'.
CREATE OBJECT ro_branch_list TYPE ltd_branch_list
EXPORTING
iv_data = lc_dummy_data.
ENDMETHOD.
ENDCLASS.
CLASS ltd_branch_list IMPLEMENTATION.
METHOD constructor.
super->constructor( iv_data ).
ENDMETHOD.
METHOD find_by_name.
IF iv_branch_name CS 'feature'
OR iv_branch_name CS 'inv_tag'
OR iv_branch_name CS 'inv_pr'
OR iv_branch_name IS INITIAL.
RAISE EXCEPTION TYPE zcx_abapgit_exception.
ENDIF.
ENDMETHOD.
ENDCLASS.
CLASS ltd_frontend_services IMPLEMENTATION.
METHOD zif_abapgit_frontend_services~clipboard_export.
ENDMETHOD.
METHOD zif_abapgit_frontend_services~directory_browse.
ENDMETHOD.
METHOD zif_abapgit_frontend_services~directory_create.
ENDMETHOD.
METHOD zif_abapgit_frontend_services~directory_exist.
ENDMETHOD.
METHOD zif_abapgit_frontend_services~execute.
ENDMETHOD.
METHOD zif_abapgit_frontend_services~file_download.
ENDMETHOD.
METHOD zif_abapgit_frontend_services~file_upload.
ENDMETHOD.
METHOD zif_abapgit_frontend_services~get_file_separator.
ENDMETHOD.
METHOD zif_abapgit_frontend_services~get_gui_version.
ENDMETHOD.
METHOD zif_abapgit_frontend_services~get_system_directory.
ENDMETHOD.
METHOD zif_abapgit_frontend_services~gui_is_available.
ENDMETHOD.
METHOD zif_abapgit_frontend_services~is_sapgui_for_java.
ENDMETHOD.
METHOD zif_abapgit_frontend_services~is_sapgui_for_windows.
ENDMETHOD.
METHOD zif_abapgit_frontend_services~is_webgui.
ENDMETHOD.
METHOD zif_abapgit_frontend_services~open_ie_devtools.
ENDMETHOD.
METHOD zif_abapgit_frontend_services~show_file_open_dialog.
ENDMETHOD.
METHOD zif_abapgit_frontend_services~show_file_save_dialog.
ENDMETHOD.
ENDCLASS.
CLASS ltcl_validate_form IMPLEMENTATION.
METHOD setup.
DATA: ls_data TYPE zif_abapgit_persistence=>ty_repo.
CREATE OBJECT mo_git_transport_mock TYPE ltd_git_transport.
zcl_abapgit_git_injector=>set_git_transport( mo_git_transport_mock ).
CREATE OBJECT mo_frontend_services_mock TYPE ltd_frontend_services.
zcl_abapgit_ui_injector=>set_frontend_services( mo_frontend_services_mock ).
ls_data-key = 1.
ls_data-branch_name = 'main'.
CREATE OBJECT mo_repo EXPORTING is_data = ls_data.
CREATE OBJECT mo_given_form_data.
mo_given_form_data->set(
iv_key = zcl_abapgit_gui_page_sett_remo=>c_id-branch
iv_val = 'main' ).
CREATE OBJECT mo_cut EXPORTING io_repo = mo_repo.
ENDMETHOD.
METHOD teardown.
CLEAR:
mo_git_transport_mock,
mo_frontend_services_mock.
zcl_abapgit_git_injector=>set_git_transport( mo_git_transport_mock ).
zcl_abapgit_ui_injector=>set_frontend_services( mo_frontend_services_mock ).
ENDMETHOD.
METHOD switch_to_offline_no_error.
mo_given_form_data->set(
iv_key = zcl_abapgit_gui_page_sett_remo=>c_id-offline
iv_val = abap_true ).
when_validate_form( ).
then_no_error_shd_occur( ).
ENDMETHOD.
METHOD invalid_url.
mo_given_form_data->set(
iv_key = zcl_abapgit_gui_page_sett_remo=>c_id-offline
iv_val = abap_false
)->set(
iv_key = zcl_abapgit_gui_page_sett_remo=>c_id-url
iv_val = 'http://test' ).
when_validate_form( ).
then_error_shd_occur( zcl_abapgit_gui_page_sett_remo=>c_id-url ).
ENDMETHOD.
METHOD invalid_url2.
mo_given_form_data->set(
iv_key = zcl_abapgit_gui_page_sett_remo=>c_id-offline
iv_val = abap_false
)->set(
iv_key = zcl_abapgit_gui_page_sett_remo=>c_id-url
iv_val = 'test' ).
when_validate_form( ).
then_error_shd_occur( zcl_abapgit_gui_page_sett_remo=>c_id-url ).
ENDMETHOD.
METHOD valid_url_no_head_type.
mo_given_form_data->set(
iv_key = zcl_abapgit_gui_page_sett_remo=>c_id-offline
iv_val = abap_false
)->set(
iv_key = zcl_abapgit_gui_page_sett_remo=>c_id-url
iv_val = c_git_repo_url ).
when_validate_form( ).
then_error_shd_occur( zcl_abapgit_gui_page_sett_remo=>c_id-head_type ).
ENDMETHOD.
METHOD invalid_branch.
mo_given_form_data->set(
iv_key = zcl_abapgit_gui_page_sett_remo=>c_id-offline
iv_val = abap_false
)->set(
iv_key = zcl_abapgit_gui_page_sett_remo=>c_id-url
iv_val = c_git_repo_url
)->set(
iv_key = zcl_abapgit_gui_page_sett_remo=>c_id-head_type
iv_val = zcl_abapgit_gui_page_sett_remo=>c_head_types-branch
)->set(
iv_key = zcl_abapgit_gui_page_sett_remo=>c_id-branch
iv_val = 'feature' ).
when_validate_form( ).
then_error_shd_occur( zcl_abapgit_gui_page_sett_remo=>c_id-branch ).
ENDMETHOD.
METHOD valid_branch.
mo_given_form_data->set(
iv_key = zcl_abapgit_gui_page_sett_remo=>c_id-offline
iv_val = abap_false
)->set(
iv_key = zcl_abapgit_gui_page_sett_remo=>c_id-url
iv_val = c_git_repo_url
)->set(
iv_key = zcl_abapgit_gui_page_sett_remo=>c_id-head_type
iv_val = zcl_abapgit_gui_page_sett_remo=>c_head_types-branch
)->set(
iv_key = zcl_abapgit_gui_page_sett_remo=>c_id-branch
iv_val = 'main' ).
when_validate_form( ).
then_no_error_shd_occur( ).
ENDMETHOD.
METHOD invalid_tag.
mo_given_form_data->set(
iv_key = zcl_abapgit_gui_page_sett_remo=>c_id-offline
iv_val = abap_false
)->set(
iv_key = zcl_abapgit_gui_page_sett_remo=>c_id-url
iv_val = c_git_repo_url
)->set(
iv_key = zcl_abapgit_gui_page_sett_remo=>c_id-head_type
iv_val = zcl_abapgit_gui_page_sett_remo=>c_head_types-tag
)->set(
iv_key = zcl_abapgit_gui_page_sett_remo=>c_id-tag
iv_val = 'inv_tag' ).
when_validate_form( ).
then_error_shd_occur( zcl_abapgit_gui_page_sett_remo=>c_id-tag ).
ENDMETHOD.
METHOD valid_tag.
mo_given_form_data->set(
iv_key = zcl_abapgit_gui_page_sett_remo=>c_id-offline
iv_val = abap_false
)->set(
iv_key = zcl_abapgit_gui_page_sett_remo=>c_id-url
iv_val = c_git_repo_url
)->set(
iv_key = zcl_abapgit_gui_page_sett_remo=>c_id-head_type
iv_val = zcl_abapgit_gui_page_sett_remo=>c_head_types-tag
)->set(
iv_key = zcl_abapgit_gui_page_sett_remo=>c_id-tag
iv_val = 'v1.1.3' ).
when_validate_form( ).
then_no_error_shd_occur( ).
ENDMETHOD.
METHOD invalid_pull_request.
mo_given_form_data->set(
iv_key = zcl_abapgit_gui_page_sett_remo=>c_id-offline
iv_val = abap_false
)->set(
iv_key = zcl_abapgit_gui_page_sett_remo=>c_id-url
iv_val = c_git_repo_url
)->set(
iv_key = zcl_abapgit_gui_page_sett_remo=>c_id-head_type
iv_val = zcl_abapgit_gui_page_sett_remo=>c_head_types-pull_request
)->set(
iv_key = zcl_abapgit_gui_page_sett_remo=>c_id-pull_request
iv_val = 'x@inv_pr' ).
when_validate_form( ).
then_error_shd_occur( zcl_abapgit_gui_page_sett_remo=>c_id-pull_request ).
ENDMETHOD.
METHOD valid_pull_request.
mo_given_form_data->set(
iv_key = zcl_abapgit_gui_page_sett_remo=>c_id-offline
iv_val = abap_false
)->set(
iv_key = zcl_abapgit_gui_page_sett_remo=>c_id-url
iv_val = c_git_repo_url
)->set(
iv_key = zcl_abapgit_gui_page_sett_remo=>c_id-head_type
iv_val = zcl_abapgit_gui_page_sett_remo=>c_head_types-pull_request
)->set(
iv_key = zcl_abapgit_gui_page_sett_remo=>c_id-pull_request
iv_val = 'x@pr' ).
when_validate_form( ).
then_no_error_shd_occur( ).
ENDMETHOD.
METHOD invalid_commit.
mo_given_form_data->set(
iv_key = zcl_abapgit_gui_page_sett_remo=>c_id-offline
iv_val = abap_false
)->set(
iv_key = zcl_abapgit_gui_page_sett_remo=>c_id-url
iv_val = c_git_repo_url
)->set(
iv_key = zcl_abapgit_gui_page_sett_remo=>c_id-head_type
iv_val = zcl_abapgit_gui_page_sett_remo=>c_head_types-commit
)->set(
iv_key = zcl_abapgit_gui_page_sett_remo=>c_id-commit
iv_val = 'ABCD1234' ).
when_validate_form( ).
then_error_shd_occur( zcl_abapgit_gui_page_sett_remo=>c_id-commit ).
ENDMETHOD.
METHOD valid_commit.
mo_given_form_data->set(
iv_key = zcl_abapgit_gui_page_sett_remo=>c_id-offline
iv_val = abap_false
)->set(
iv_key = zcl_abapgit_gui_page_sett_remo=>c_id-url
iv_val = c_git_repo_url
)->set(
iv_key = zcl_abapgit_gui_page_sett_remo=>c_id-head_type
iv_val = zcl_abapgit_gui_page_sett_remo=>c_head_types-commit
)->set(
iv_key = zcl_abapgit_gui_page_sett_remo=>c_id-commit
iv_val = '1d4abf5342a939202ae24ab4a5ad78da3cad24fb' ).
when_validate_form( ).
then_no_error_shd_occur( ).
ENDMETHOD.
METHOD when_validate_form.
mo_act_validation_log = mo_cut->validate_form( mo_given_form_data ).
ENDMETHOD.
METHOD then_no_error_shd_occur.
cl_abap_unit_assert=>assert_equals(
exp = abap_true
act = mo_act_validation_log->is_empty( ) ).
ENDMETHOD.
METHOD then_error_shd_occur.
cl_abap_unit_assert=>assert_not_initial( mo_act_validation_log->get( iv_exp_error_key ) ).
ENDMETHOD.
ENDCLASS.

View File

@ -10,6 +10,7 @@
<CLSCCINCL>X</CLSCCINCL> <CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT> <FIXPT>X</FIXPT>
<UNICODE>X</UNICODE> <UNICODE>X</UNICODE>
<WITH_UNIT_TESTS>X</WITH_UNIT_TESTS>
</VSEOCLASS> </VSEOCLASS>
</asx:values> </asx:values>
</asx:abap> </asx:abap>

View File

@ -300,7 +300,7 @@ CLASS zcl_abapgit_gui_page_tags IMPLEMENTATION.
IF lv_new_tag_name IS NOT INITIAL. IF lv_new_tag_name IS NOT INITIAL.
" Check if tag already exists " Check if tag already exists
lt_tags = zcl_abapgit_git_transport=>branches( mo_repo->get_url( ) )->get_tags_only( ). lt_tags = zcl_abapgit_git_factory=>get_git_transport( )->branches( mo_repo->get_url( ) )->get_tags_only( ).
READ TABLE lt_tags TRANSPORTING NO FIELDS WITH TABLE KEY name_key READ TABLE lt_tags TRANSPORTING NO FIELDS WITH TABLE KEY name_key
COMPONENTS name = zcl_abapgit_git_tag=>add_tag_prefix( lv_new_tag_name ). COMPONENTS name = zcl_abapgit_git_tag=>add_tag_prefix( lv_new_tag_name ).

View File

@ -75,7 +75,7 @@ CLASS zcl_abapgit_popup_branch_list IMPLEMENTATION.
FIELD-SYMBOLS <ls_branch> LIKE LINE OF rt_branches. FIELD-SYMBOLS <ls_branch> LIKE LINE OF rt_branches.
lo_branches = zcl_abapgit_git_transport=>branches( mv_repo_url ). lo_branches = zcl_abapgit_git_factory=>get_git_transport( )->branches( mv_repo_url ).
rt_branches = lo_branches->get_branches_only( ). rt_branches = lo_branches->get_branches_only( ).
lv_head_symref = lo_branches->get_head_symref( ). lv_head_symref = lo_branches->get_head_symref( ).

View File

@ -61,7 +61,7 @@ CLASS zcl_abapgit_popup_tag_list IMPLEMENTATION.
DATA lo_branches TYPE REF TO zcl_abapgit_git_branch_list. DATA lo_branches TYPE REF TO zcl_abapgit_git_branch_list.
lo_branches = zcl_abapgit_git_transport=>branches( mv_repo_url ). lo_branches = zcl_abapgit_git_factory=>get_git_transport( )->branches( mv_repo_url ).
rt_tags = lo_branches->get_tags_only( ). rt_tags = lo_branches->get_tags_only( ).
DELETE rt_tags WHERE name CP '*' && zif_abapgit_git_definitions=>c_git_branch-peel. DELETE rt_tags WHERE name CP '*' && zif_abapgit_git_definitions=>c_git_branch-peel.

View File

@ -180,7 +180,7 @@ CLASS zcl_abapgit_popups IMPLEMENTATION.
<ls_branch> LIKE LINE OF lt_branches. <ls_branch> LIKE LINE OF lt_branches.
lo_branches = zcl_abapgit_git_transport=>branches( iv_url ). lo_branches = zcl_abapgit_git_factory=>get_git_transport( )->branches( iv_url ).
lt_branches = lo_branches->get_branches_only( ). lt_branches = lo_branches->get_branches_only( ).
lv_head_suffix = | ({ zif_abapgit_git_definitions=>c_head_name })|. lv_head_suffix = | ({ zif_abapgit_git_definitions=>c_head_name })|.
lv_head_symref = lo_branches->get_head_symref( ). lv_head_symref = lo_branches->get_head_symref( ).
@ -847,7 +847,7 @@ CLASS zcl_abapgit_popups IMPLEMENTATION.
<ls_tag> LIKE LINE OF lt_tags. <ls_tag> LIKE LINE OF lt_tags.
lo_branches = zcl_abapgit_git_transport=>branches( iv_url ). lo_branches = zcl_abapgit_git_factory=>get_git_transport( )->branches( iv_url ).
lt_tags = lo_branches->get_tags_only( ). lt_tags = lo_branches->get_tags_only( ).
LOOP AT lt_tags ASSIGNING <ls_tag> WHERE name NP '*' && zif_abapgit_git_definitions=>c_git_branch-peel. LOOP AT lt_tags ASSIGNING <ls_tag> WHERE name NP '*' && zif_abapgit_git_definitions=>c_git_branch-peel.

View File

@ -34,7 +34,7 @@ CLASS ltcl_test IMPLEMENTATION.
CREATE OBJECT li_memory. CREATE OBJECT li_memory.
zcl_abapgit_persist_injector=>set_settings( li_memory ). zcl_abapgit_persist_injector=>set_settings( li_memory ).
lv_ref = zcl_abapgit_git_transport=>branches( lc_url )->get_head_symref( ). lv_ref = zcl_abapgit_git_factory=>get_git_transport( )->branches( lc_url )->get_head_symref( ).
cl_abap_unit_assert=>assert_equals( cl_abap_unit_assert=>assert_equals(
act = lv_ref act = lv_ref