interface and factory for ZCL_ABAPGIT_PERSIST_SETTINGS (#4882)

the old get_instance() method in ZCL_ABAPGIT_PERSIST_SETTINGS has been moved to a method in zcl_abapgit_persist_factory, plus interface added. Added to persist injector
This commit is contained in:
Lars Hvam 2021-08-03 15:13:16 +02:00 committed by GitHub
parent e6bac818cf
commit 329fd9dc0e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
27 changed files with 160 additions and 89 deletions

View File

@ -22,6 +22,7 @@ CLASS zcl_abapgit_proxy_config DEFINITION PUBLIC FINAL CREATE PUBLIC.
RETURNING
VALUE(rv_auth) TYPE abap_bool.
PROTECTED SECTION.
PRIVATE SECTION.
DATA: mo_settings TYPE REF TO zcl_abapgit_settings,
mi_exit TYPE REF TO zif_abapgit_exit.
@ -37,12 +38,26 @@ ENDCLASS.
CLASS zcl_abapgit_proxy_config IMPLEMENTATION.
CLASS ZCL_ABAPGIT_PROXY_CONFIG IMPLEMENTATION.
METHOD bypass_proxy.
DATA lt_proxy_bypass TYPE zif_abapgit_definitions=>ty_range_proxy_bypass_url.
lt_proxy_bypass = mo_settings->get_proxy_bypass( ).
IF lt_proxy_bypass IS NOT INITIAL
AND iv_repo_url IN lt_proxy_bypass.
rv_bypass_proxy = abap_true.
ENDIF.
ENDMETHOD.
METHOD constructor.
mo_settings = zcl_abapgit_persist_settings=>get_instance( )->read( ).
mo_settings = zcl_abapgit_persist_factory=>get_settings( )->read( ).
mi_exit = zcl_abapgit_exit=>get_instance( ).
@ -94,19 +109,4 @@ CLASS zcl_abapgit_proxy_config IMPLEMENTATION.
cv_proxy_url = rv_proxy_url ).
ENDMETHOD.
METHOD bypass_proxy.
DATA lt_proxy_bypass TYPE zif_abapgit_definitions=>ty_range_proxy_bypass_url.
lt_proxy_bypass = mo_settings->get_proxy_bypass( ).
IF lt_proxy_bypass IS NOT INITIAL
AND iv_repo_url IN lt_proxy_bypass.
rv_bypass_proxy = abap_true.
ENDIF.
ENDMETHOD.
ENDCLASS.

View File

@ -67,7 +67,7 @@ ENDCLASS.
CLASS zcl_abapgit_objects_activation IMPLEMENTATION.
CLASS ZCL_ABAPGIT_OBJECTS_ACTIVATION IMPLEMENTATION.
METHOD activate.
@ -203,7 +203,7 @@ CLASS zcl_abapgit_objects_activation IMPLEMENTATION.
IF gt_objects IS NOT INITIAL.
IF zcl_abapgit_ui_factory=>get_gui_functions( )->gui_is_available( ) = abap_true.
IF zcl_abapgit_persist_settings=>get_instance( )->read( )->get_activate_wo_popup( ) = abap_true.
IF zcl_abapgit_persist_factory=>get_settings( )->read( )->get_activate_wo_popup( ) = abap_true.
lv_popup = abap_false.
ELSE.
lv_popup = abap_true.

View File

@ -119,7 +119,7 @@ ENDCLASS.
CLASS zcl_abapgit_serialize IMPLEMENTATION.
CLASS ZCL_ABAPGIT_SERIALIZE IMPLEMENTATION.
METHOD add_apack.
@ -248,7 +248,7 @@ CLASS zcl_abapgit_serialize IMPLEMENTATION.
DATA lo_settings TYPE REF TO zcl_abapgit_settings.
lo_settings = zcl_abapgit_persist_settings=>get_instance( )->read( ).
lo_settings = zcl_abapgit_persist_factory=>get_settings( )->read( ).
IF zcl_abapgit_factory=>get_environment( )->is_merged( ) = abap_true
OR lo_settings->get_parallel_proc_disabled( ) = abap_true.

View File

@ -13,7 +13,7 @@ CLASS ltc_ci IMPLEMENTATION.
DATA lv_repo_url TYPE string.
IF zcl_abapgit_persist_settings=>get_instance( )->read( )->get_experimental_features( ) = abap_false.
IF zcl_abapgit_persist_factory=>get_settings( )->read( )->get_experimental_features( ) = abap_false.
RETURN.
ENDIF.
@ -53,7 +53,7 @@ CLASS ltc_smoke_test IMPLEMENTATION.
DATA ls_item TYPE zif_abapgit_definitions=>ty_item.
IF zcl_abapgit_persist_settings=>get_instance( )->read( )->get_experimental_features( ) = abap_false.
IF zcl_abapgit_persist_factory=>get_settings( )->read( )->get_experimental_features( ) = abap_false.
RETURN.
ENDIF.
@ -73,7 +73,7 @@ CLASS ltc_smoke_test IMPLEMENTATION.
METHOD run_simple_methods.
IF zcl_abapgit_persist_settings=>get_instance( )->read( )->get_experimental_features( ) = abap_false.
IF zcl_abapgit_persist_factory=>get_settings( )->read( )->get_experimental_features( ) = abap_false.
RETURN.
ENDIF.

View File

@ -170,7 +170,7 @@ ENDCLASS.
CLASS zcl_abapgit_objects IMPLEMENTATION.
CLASS ZCL_ABAPGIT_OBJECTS IMPLEMENTATION.
METHOD changed_by.
@ -830,7 +830,7 @@ CLASS zcl_abapgit_objects IMPLEMENTATION.
zcx_abapgit_exception=>raise( |Object { is_item-obj_type } { is_item-obj_name } doesn't exist| ).
ENDIF.
lv_adt_jump_enabled = zcl_abapgit_persist_settings=>get_instance( )->read( )->get_adt_jump_enabled( ).
lv_adt_jump_enabled = zcl_abapgit_persist_factory=>get_settings( )->read( )->get_adt_jump_enabled( ).
IF lv_adt_jump_enabled = abap_true.

View File

@ -8,10 +8,14 @@ CLASS zcl_abapgit_persist_factory DEFINITION
CLASS-METHODS get_repo
RETURNING
VALUE(ri_repo) TYPE REF TO zif_abapgit_persist_repo .
CLASS-METHODS get_settings
RETURNING
VALUE(ri_settings) TYPE REF TO zif_abapgit_persist_settings .
PROTECTED SECTION.
PRIVATE SECTION.
CLASS-DATA gi_repo TYPE REF TO zif_abapgit_persist_repo .
CLASS-DATA gi_settings TYPE REF TO zif_abapgit_persist_settings .
ENDCLASS.
@ -28,4 +32,15 @@ CLASS ZCL_ABAPGIT_PERSIST_FACTORY IMPLEMENTATION.
ri_repo = gi_repo.
ENDMETHOD.
METHOD get_settings.
IF gi_settings IS INITIAL.
CREATE OBJECT gi_settings TYPE zcl_abapgit_persist_settings.
ENDIF.
ri_settings = gi_settings.
ENDMETHOD.
ENDCLASS.

View File

@ -5,7 +5,7 @@
<VSEOCLASS>
<CLSNAME>ZCL_ABAPGIT_PERSIST_FACTORY</CLSNAME>
<LANGU>E</LANGU>
<DESCRIPT>Persistence Factory</DESCRIPT>
<DESCRIPT>agapGit - Persistence Factory</DESCRIPT>
<STATE>1</STATE>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>

View File

@ -8,8 +8,15 @@ CLASS zcl_abapgit_persist_injector DEFINITION
CLASS-METHODS set_repo
IMPORTING
!ii_repo TYPE REF TO zif_abapgit_persist_repo .
CLASS-METHODS set_settings
IMPORTING
!ii_settings TYPE REF TO zif_abapgit_persist_settings .
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
@ -22,4 +29,11 @@ CLASS ZCL_ABAPGIT_PERSIST_INJECTOR IMPLEMENTATION.
zcl_abapgit_persist_factory=>gi_repo = ii_repo.
ENDMETHOD.
METHOD set_settings.
zcl_abapgit_persist_factory=>gi_settings = ii_settings.
ENDMETHOD.
ENDCLASS.

View File

@ -5,7 +5,7 @@
<VSEOCLASS>
<CLSNAME>ZCL_ABAPGIT_PERSIST_INJECTOR</CLSNAME>
<LANGU>E</LANGU>
<DESCRIPT>Persistence Injector</DESCRIPT>
<DESCRIPT>abapGit - Persistence Injector</DESCRIPT>
<CATEGORY>05</CATEGORY>
<STATE>1</STATE>
<CLSCCINCL>X</CLSCCINCL>

View File

@ -1,43 +1,24 @@
CLASS zcl_abapgit_persist_settings DEFINITION
PUBLIC
CREATE PRIVATE .
CREATE PRIVATE
GLOBAL FRIENDS zcl_abapgit_persist_factory .
PUBLIC SECTION.
METHODS modify
IMPORTING
!io_settings TYPE REF TO zcl_abapgit_settings
RAISING
zcx_abapgit_exception .
METHODS read
RETURNING
VALUE(ro_settings) TYPE REF TO zcl_abapgit_settings .
CLASS-METHODS get_instance
RETURNING
VALUE(ro_settings) TYPE REF TO zcl_abapgit_persist_settings .
INTERFACES zif_abapgit_persist_settings .
PROTECTED SECTION.
PRIVATE SECTION.
DATA mo_settings TYPE REF TO zcl_abapgit_settings .
CLASS-DATA go_persist TYPE REF TO zcl_abapgit_persist_settings .
CLASS-DATA gi_persist TYPE REF TO zif_abapgit_persist_settings .
ENDCLASS.
CLASS zcl_abapgit_persist_settings IMPLEMENTATION.
CLASS ZCL_ABAPGIT_PERSIST_SETTINGS IMPLEMENTATION.
METHOD get_instance.
IF go_persist IS NOT BOUND.
CREATE OBJECT go_persist.
ENDIF.
ro_settings = go_persist.
ENDMETHOD.
METHOD modify.
METHOD zif_abapgit_persist_settings~modify.
DATA: lv_settings TYPE string,
ls_user_settings TYPE zif_abapgit_definitions=>ty_s_user_settings.
@ -63,7 +44,7 @@ CLASS zcl_abapgit_persist_settings IMPLEMENTATION.
ENDMETHOD.
METHOD read.
METHOD zif_abapgit_persist_settings~read.
IF mo_settings IS BOUND.
" Return Buffered Settings

View File

@ -5,7 +5,7 @@
<VSEOCLASS>
<CLSNAME>ZCL_ABAPGIT_PERSIST_SETTINGS</CLSNAME>
<LANGU>E</LANGU>
<DESCRIPT>Settings</DESCRIPT>
<DESCRIPT>abapGit - Settings</DESCRIPT>
<STATE>1</STATE>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>

View File

@ -0,0 +1,12 @@
INTERFACE zif_abapgit_persist_settings PUBLIC.
METHODS modify
IMPORTING
!io_settings TYPE REF TO zcl_abapgit_settings
RAISING
zcx_abapgit_exception .
METHODS read
RETURNING
VALUE(ro_settings) TYPE REF TO zcl_abapgit_settings .
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_PERSIST_SETTINGS</CLSNAME>
<LANGU>E</LANGU>
<DESCRIPT>abapGit - Settings</DESCRIPT>
<EXPOSURE>2</EXPOSURE>
<STATE>1</STATE>
<UNICODE>X</UNICODE>
</VSEOINTERF>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -217,7 +217,7 @@ ENDCLASS.
CLASS zcl_abapgit_repo IMPLEMENTATION.
CLASS ZCL_ABAPGIT_REPO IMPLEMENTATION.
METHOD bind_listener.
@ -237,7 +237,7 @@ CLASS zcl_abapgit_repo IMPLEMENTATION.
sy-batch = abap_false AND
sy-cprog = lc_abapgit_prog.
IF zcl_abapgit_persist_settings=>get_instance( )->read( )->get_show_default_repo( ) = abap_false.
IF zcl_abapgit_persist_factory=>get_settings( )->read( )->get_show_default_repo( ) = abap_false.
MESSAGE 'abapGit was updated and will restart itself' TYPE 'I'.
ENDIF.

View File

@ -18,7 +18,7 @@ ENDCLASS.
CLASS zcl_abapgit_objects_ci_tests IMPLEMENTATION.
CLASS ZCL_ABAPGIT_OBJECTS_CI_TESTS IMPLEMENTATION.
METHOD run.
@ -65,7 +65,7 @@ CLASS zcl_abapgit_objects_ci_tests IMPLEMENTATION.
" Objects will be created and deleted, do not run in customer system!
" These tests may fail if you are locking the entries (e.g. the ZABAPGIT transaction is open)
IF zcl_abapgit_persist_settings=>get_instance( )->read( )->get_run_critical_tests( ) = abap_false.
IF zcl_abapgit_persist_factory=>get_settings( )->read( )->get_run_critical_tests( ) = abap_false.
RETURN.
ENDIF.

View File

@ -84,13 +84,13 @@ ENDCLASS.
CLASS zcl_abapgit_gui_page IMPLEMENTATION.
CLASS ZCL_ABAPGIT_GUI_PAGE IMPLEMENTATION.
METHOD constructor.
super->constructor( ).
mo_settings = zcl_abapgit_persist_settings=>get_instance( )->read( ).
mo_settings = zcl_abapgit_persist_factory=>get_settings( )->read( ).
ms_control-page_layout = c_page_layout-centered.
ENDMETHOD.

View File

@ -130,7 +130,7 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_CODI_BASE IMPLEMENTATION.
" see SCI_LCL_DYNP_530 / HANDLE_DOUBLE_CLICK
lv_adt_jump_enabled = zcl_abapgit_persist_settings=>get_instance( )->read( )->get_adt_jump_enabled( ).
lv_adt_jump_enabled = zcl_abapgit_persist_factory=>get_settings( )->read( )->get_adt_jump_enabled( ).
TRY.
IF lv_adt_jump_enabled = abap_true.

View File

@ -83,7 +83,7 @@ ENDCLASS.
CLASS zcl_abapgit_gui_page_commit IMPLEMENTATION.
CLASS ZCL_ABAPGIT_GUI_PAGE_COMMIT IMPLEMENTATION.
METHOD constructor.
@ -102,7 +102,7 @@ CLASS zcl_abapgit_gui_page_commit IMPLEMENTATION.
lt_stage TYPE zif_abapgit_definitions=>ty_stage_tt.
" Get setting for default comment text
lo_settings = zcl_abapgit_persist_settings=>get_instance( )->read( ).
lo_settings = zcl_abapgit_persist_factory=>get_settings( )->read( ).
rv_text = lo_settings->get_commitmsg_comment_default( ).
@ -277,7 +277,7 @@ CLASS zcl_abapgit_gui_page_commit IMPLEMENTATION.
iv_label = 'Committer E-mail'
iv_value = lv_email ) ).
lo_settings = zcl_abapgit_persist_settings=>get_instance( )->read( ).
lo_settings = zcl_abapgit_persist_factory=>get_settings( )->read( ).
lv_s_param = lo_settings->get_commitmsg_comment_length( ).

View File

@ -181,7 +181,7 @@ ENDCLASS.
CLASS zcl_abapgit_gui_page_repo_view IMPLEMENTATION.
CLASS ZCL_ABAPGIT_GUI_PAGE_REPO_VIEW IMPLEMENTATION.
METHOD apply_order_by.
@ -594,7 +594,7 @@ CLASS zcl_abapgit_gui_page_repo_view IMPLEMENTATION.
ms_control-page_menu = build_main_menu( ).
" Read global settings to get max # of objects to be listed
lo_settings = zcl_abapgit_persist_settings=>get_instance( )->read( ).
lo_settings = zcl_abapgit_persist_factory=>get_settings( )->read( ).
mv_max_lines = lo_settings->get_max_lines( ).
mv_max_setting = mv_max_lines.

View File

@ -77,7 +77,7 @@ ENDCLASS.
CLASS zcl_abapgit_gui_page_sett_glob IMPLEMENTATION.
CLASS ZCL_ABAPGIT_GUI_PAGE_SETT_GLOB IMPLEMENTATION.
METHOD constructor.
@ -201,7 +201,7 @@ CLASS zcl_abapgit_gui_page_sett_glob IMPLEMENTATION.
METHOD read_settings.
" Get settings from DB
mo_settings = zcl_abapgit_persist_settings=>get_instance( )->read( ).
mo_settings = zcl_abapgit_persist_factory=>get_settings( )->read( ).
" Proxy
mo_form_data->set(
@ -270,7 +270,7 @@ CLASS zcl_abapgit_gui_page_sett_glob IMPLEMENTATION.
METHOD save_settings.
DATA:
lo_persistence TYPE REF TO zcl_abapgit_persist_settings,
li_persistence TYPE REF TO zif_abapgit_persist_settings,
lv_value TYPE i.
" Proxy
@ -294,8 +294,8 @@ CLASS zcl_abapgit_gui_page_sett_glob IMPLEMENTATION.
ENDIF.
" Store in DB
lo_persistence = zcl_abapgit_persist_settings=>get_instance( ).
lo_persistence->modify( mo_settings ).
li_persistence = zcl_abapgit_persist_factory=>get_settings( ).
li_persistence->modify( mo_settings ).
COMMIT WORK AND WAIT.

View File

@ -73,7 +73,7 @@ ENDCLASS.
CLASS zcl_abapgit_gui_page_sett_pers IMPLEMENTATION.
CLASS ZCL_ABAPGIT_GUI_PAGE_SETT_PERS IMPLEMENTATION.
METHOD constructor.
@ -200,7 +200,7 @@ CLASS zcl_abapgit_gui_page_sett_pers IMPLEMENTATION.
METHOD read_settings.
" Get settings from DB
mo_settings = zcl_abapgit_persist_settings=>get_instance( )->read( ).
mo_settings = zcl_abapgit_persist_factory=>get_settings( )->read( ).
ms_settings = mo_settings->get_user_settings( ).
" Startup
@ -246,7 +246,7 @@ CLASS zcl_abapgit_gui_page_sett_pers IMPLEMENTATION.
METHOD save_settings.
DATA lo_persistence TYPE REF TO zcl_abapgit_persist_settings.
DATA li_persistence TYPE REF TO zif_abapgit_persist_settings.
" Startup
ms_settings-show_default_repo = mo_form_data->get( c_id-show_default_repo ).
@ -268,8 +268,8 @@ CLASS zcl_abapgit_gui_page_sett_pers IMPLEMENTATION.
" Store in DB
mo_settings->set_user_settings( ms_settings ).
lo_persistence = zcl_abapgit_persist_settings=>get_instance( ).
lo_persistence->modify( mo_settings ).
li_persistence = zcl_abapgit_persist_factory=>get_settings( ).
li_persistence->modify( mo_settings ).
COMMIT WORK AND WAIT.

View File

@ -263,7 +263,7 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_TAG IMPLEMENTATION.
iv_label = 'tagger e-mail'
iv_value = lv_email ) ).
lo_settings = zcl_abapgit_persist_settings=>get_instance( )->read( ).
lo_settings = zcl_abapgit_persist_factory=>get_settings( )->read( ).
lv_s_param = lo_settings->get_commitmsg_comment_length( ).

View File

@ -127,7 +127,7 @@ ENDCLASS.
CLASS zcl_abapgit_gui_router IMPLEMENTATION.
CLASS ZCL_ABAPGIT_GUI_ROUTER IMPLEMENTATION.
METHOD abapgit_services_actions.
@ -493,7 +493,7 @@ CLASS zcl_abapgit_gui_router IMPLEMENTATION.
lv_adt_link TYPE string,
lv_adt_jump_enabled TYPE abap_bool.
lv_adt_jump_enabled = zcl_abapgit_persist_settings=>get_instance( )->read( )->get_adt_jump_enabled( ).
lv_adt_jump_enabled = zcl_abapgit_persist_factory=>get_settings( )->read( )->get_adt_jump_enabled( ).
IF lv_adt_jump_enabled = abap_true.
TRY.
CALL METHOD ('CL_CTS_ADT_TM_URI_BUILDER')=>('CREATE_ADT_URI')

View File

@ -213,7 +213,7 @@ CLASS ZCL_ABAPGIT_SERVICES_ABAPGIT IMPLEMENTATION.
check_sapgui( ).
IF zcl_abapgit_persist_settings=>get_instance( )->read( )->get_show_default_repo( ) = abap_false.
IF zcl_abapgit_persist_factory=>get_settings( )->read( )->get_show_default_repo( ) = abap_false.
" Don't show the last seen repo at startup
zcl_abapgit_persistence_user=>get_instance( )->set_repo_show( || ).
ENDIF.

View File

@ -244,8 +244,8 @@ CLASS ZCL_ABAPGIT_CODE_INSPECTOR IMPLEMENTATION.
METHOD decide_run_mode.
DATA: lo_settings TYPE REF TO zcl_abapgit_settings.
lo_settings = zcl_abapgit_persist_settings=>get_instance( )->read( ).
DATA lo_settings TYPE REF TO zcl_abapgit_settings.
lo_settings = zcl_abapgit_persist_factory=>get_settings( )->read( ).
IF sy-batch = abap_true.
" We have to disable parallelization in batch because of lock errors.

View File

@ -11,6 +11,7 @@
"zcl_abapgit_git_branch_list",
"zcl_abapgit_git_commit",
"zcl_abapgit_git_pack",
"zcl_abapgit_git_porcelain",
"zcl_abapgit_git_tag",
"zcl_abapgit_git_transport",
"zcl_abapgit_git_url",
@ -42,6 +43,8 @@
"zcl_abapgit_password_dialog",
"zcl_abapgit_path",
"zcl_abapgit_persist_background",
"zcl_abapgit_persist_factory",
"zcl_abapgit_persist_injector",
"zcl_abapgit_persist_settings",
"zcl_abapgit_persistence_db",
"zcl_abapgit_persistence_user",
@ -95,6 +98,7 @@
"zif_abapgit_log",
"zif_abapgit_merge",
"zif_abapgit_persist_repo",
"zif_abapgit_persist_settings",
"zif_abapgit_persist_user",
"zif_abapgit_persistence",
"zif_abapgit_popups",
@ -189,7 +193,7 @@
{"object": "ZCL_ABAPGIT_AJSON", "class": "ltcl_writer_test", "method": "read_only"},
{"object": "ZCL_ABAPGIT_AJSON", "class": "ltcl_writer_test", "method": "set_array_obj"},
{"object": "ZCL_ABAPGIT_AJSON", "class": "ltcl_writer_test", "method": "set_with_type"},
{"object": "ZCL_ABAPGIT_AJSON", "class": "ltcl_parser_test", "method": "parse_bare_values"},
{"object": "ZCL_ABAPGIT_AJSON", "class": "ltcl_integrated", "method": "reader"},

View File

@ -1,3 +1,18 @@
CLASS lcl_memory_settings DEFINITION.
PUBLIC SECTION.
INTERFACES zif_abapgit_persist_settings.
ENDCLASS.
CLASS lcl_memory_settings IMPLEMENTATION.
METHOD zif_abapgit_persist_settings~modify.
RETURN.
ENDMETHOD.
METHOD zif_abapgit_persist_settings~read.
CREATE OBJECT ro_settings.
ENDMETHOD.
ENDCLASS.
CLASS ltcl_test DEFINITION FOR TESTING DURATION SHORT RISK LEVEL HARMLESS FINAL.
PRIVATE SECTION.
@ -10,13 +25,28 @@ CLASS ltcl_test IMPLEMENTATION.
METHOD test01.
DATA lv_bar TYPE i.
CONSTANTS lc_url TYPE string VALUE 'https://github.com/larshp/Empty.git'.
DATA lv_ref TYPE string.
DATA li_memory TYPE REF TO lcl_memory_settings.
DATA ls_pull TYPE zcl_abapgit_git_porcelain=>ty_pull_result.
lv_bar = 2.
CREATE OBJECT li_memory.
zcl_abapgit_persist_injector=>set_settings( li_memory ).
lv_ref = zcl_abapgit_git_transport=>branches( lc_url )->get_head_symref( ).
cl_abap_unit_assert=>assert_equals(
act = lv_bar
exp = 2 ).
act = lv_ref
exp = 'refs/heads/main' ).
ls_pull = zcl_abapgit_git_porcelain=>pull_by_branch(
iv_url = lc_url
iv_branch_name = lv_ref ).
cl_abap_unit_assert=>assert_equals(
act = lines( ls_pull-files )
exp = 3 ).
ENDMETHOD.