ABAP Unit for ZCL_ABAPGIT_BRANCH_OVERVIEW #1647 (#1654)

branch overview:
* preparation ABAP Unit
* change to key

#1647
This commit is contained in:
Johannes Konings 2018-07-20 09:29:41 +02:00 committed by Christian Günter
parent 7079e5ac50
commit cdf2f5f448
6 changed files with 103 additions and 44 deletions

View File

@ -17,7 +17,7 @@ CLASS zcl_abapgit_gui_page_boverview DEFINITION
DATA: mo_repo TYPE REF TO zcl_abapgit_repo_online,
mv_compress TYPE abap_bool VALUE abap_false,
mt_commits TYPE zif_abapgit_definitions=>ty_commit_tt,
mo_branch_overview TYPE REF TO zcl_abapgit_branch_overview.
mi_branch_overview TYPE REF TO zif_abapgit_branch_overview.
CONSTANTS: BEGIN OF c_actions,
uncompress TYPE string VALUE 'uncompress' ##NO_TEXT,
@ -235,7 +235,7 @@ CLASS zcl_abapgit_gui_page_boverview IMPLEMENTATION.
CREATE OBJECT ro_html.
lt_branches = mo_branch_overview->get_branches( ).
lt_branches = mi_branch_overview->get_branches( ).
ro_html->add( |<select name="{ iv_name }">| ).
LOOP AT lt_branches ASSIGNING <ls_branch>.
@ -249,11 +249,11 @@ CLASS zcl_abapgit_gui_page_boverview IMPLEMENTATION.
METHOD refresh.
mo_branch_overview = zcl_abapgit_branch_overview=>run( mo_repo ).
mi_branch_overview = zcl_abapgit_factory=>get_branch_overview( io_repo = mo_repo ).
mt_commits = mo_branch_overview->get_commits( ).
mt_commits = mi_branch_overview->get_commits( ).
IF mv_compress = abap_true.
mt_commits = mo_branch_overview->compress( mt_commits ).
mt_commits = mi_branch_overview->compress( mt_commits ).
ENDIF.
ENDMETHOD.

View File

@ -181,7 +181,7 @@ CLASS zcl_abapgit_tag_popups IMPLEMENTATION.
CLEAR: mt_tags.
lt_tags = zcl_abapgit_branch_overview=>run( io_repo = io_repo )->get_tags( ).
lt_tags = zcl_abapgit_factory=>get_branch_overview( io_repo = io_repo )->get_tags( ).
IF lines( lt_tags ) = 0.
zcx_abapgit_exception=>raise( `There are no tags for this repository` ).
@ -271,7 +271,7 @@ CLASS zcl_abapgit_tag_popups IMPLEMENTATION.
FIELD-SYMBOLS: <ls_sel> LIKE LINE OF lt_selection,
<ls_tag> LIKE LINE OF lt_tags.
lt_tags = zcl_abapgit_branch_overview=>run( io_repo = io_repo )->get_tags( ).
lt_tags = zcl_abapgit_factory=>get_branch_overview( io_repo = io_repo )->get_tags( ).
IF lines( lt_tags ) = 0.
zcx_abapgit_exception=>raise( `There are no tags for this repository` ).

View File

@ -1,30 +1,17 @@
CLASS zcl_abapgit_branch_overview DEFINITION PUBLIC FINAL CREATE PRIVATE.
CLASS zcl_abapgit_branch_overview DEFINITION
PUBLIC
FINAL
CREATE PRIVATE
GLOBAL FRIENDS zcl_abapgit_factory .
PUBLIC SECTION.
CLASS-METHODS: run
IMPORTING io_repo TYPE REF TO zcl_abapgit_repo_online
RETURNING VALUE(ro_branch_overview) TYPE REF TO zcl_abapgit_branch_overview
RAISING zcx_abapgit_exception.
INTERFACES zif_abapgit_branch_overview.
METHODS:
constructor
IMPORTING io_repo TYPE REF TO zcl_abapgit_repo_online
RAISING zcx_abapgit_exception,
get_branches
RETURNING VALUE(rt_branches) TYPE zif_abapgit_definitions=>ty_git_branch_list_tt,
get_tags
RETURNING VALUE(rt_tags) TYPE zif_abapgit_definitions=>ty_git_tag_list_tt,
get_commits
RETURNING
VALUE(rt_commits) TYPE zif_abapgit_definitions=>ty_commit_tt,
compress
IMPORTING it_commits TYPE zif_abapgit_definitions=>ty_commit_tt
RETURNING VALUE(rt_commits) TYPE zif_abapgit_definitions=>ty_commit_tt
RAISING zcx_abapgit_exception.
PRIVATE SECTION.
@ -61,7 +48,7 @@ ENDCLASS.
CLASS zcl_abapgit_branch_overview IMPLEMENTATION.
METHOD compress.
METHOD zif_abapgit_branch_overview~compress.
DEFINE _compress.
IF lines( lt_temp ) >= 10.
@ -271,12 +258,12 @@ CLASS zcl_abapgit_branch_overview IMPLEMENTATION.
ENDMETHOD.
METHOD get_branches.
METHOD zif_abapgit_branch_overview~get_branches.
rt_branches = mt_branches.
ENDMETHOD.
METHOD get_commits.
METHOD zif_abapgit_branch_overview~get_commits.
rt_commits = mt_commits.
ENDMETHOD.
@ -336,7 +323,7 @@ CLASS zcl_abapgit_branch_overview IMPLEMENTATION.
ENDMETHOD.
METHOD get_tags.
METHOD zif_abapgit_branch_overview~get_tags.
rt_tags = mt_tags.
@ -409,12 +396,4 @@ CLASS zcl_abapgit_branch_overview IMPLEMENTATION.
ENDMETHOD.
METHOD run.
CREATE OBJECT ro_branch_overview
EXPORTING
io_repo = io_repo.
ENDMETHOD.
ENDCLASS.

View File

@ -30,6 +30,14 @@ CLASS zcl_abapgit_factory DEFINITION
iv_package TYPE devclass
RETURNING
VALUE(ri_syntax_check) TYPE REF TO zif_abapgit_code_inspector
RAISING
zcx_abapgit_exception,
get_branch_overview
IMPORTING
io_repo TYPE REF TO zcl_abapgit_repo_online
RETURNING
VALUE(ri_branch_overview) TYPE REF TO zif_abapgit_branch_overview
RAISING
zcx_abapgit_exception.
@ -55,13 +63,21 @@ CLASS zcl_abapgit_factory DEFINITION
instance TYPE REF TO zif_abapgit_code_inspector,
END OF ty_syntax_check,
tty_syntax_check TYPE HASHED TABLE OF ty_syntax_check
WITH UNIQUE KEY package.
WITH UNIQUE KEY package,
BEGIN OF ty_branch_overview,
repo_key TYPE zif_abapgit_persistence=>ty_value,
instance TYPE REF TO zif_abapgit_branch_overview,
END OF ty_branch_overview,
tty_branch_overview TYPE HASHED TABLE OF ty_branch_overview
WITH UNIQUE KEY repo_key.
CLASS-DATA:
gi_tadir TYPE REF TO zif_abapgit_tadir,
gt_sap_package TYPE tty_sap_package,
gt_code_inspector TYPE tty_code_inspector,
gt_syntax_check TYPE tty_syntax_check.
gi_tadir TYPE REF TO zif_abapgit_tadir,
gt_sap_package TYPE tty_sap_package,
gt_code_inspector TYPE tty_code_inspector,
gt_syntax_check TYPE tty_syntax_check,
gt_branch_overview TYPE tty_branch_overview.
ENDCLASS.
@ -154,4 +170,32 @@ CLASS zcl_abapgit_factory IMPLEMENTATION.
ENDMETHOD.
METHOD get_branch_overview.
DATA: ls_branch_overview LIKE LINE OF gt_branch_overview,
lv_repo_key TYPE ty_branch_overview-repo_key.
FIELD-SYMBOLS: <ls_branch_overview> TYPE zcl_abapgit_factory=>ty_branch_overview.
lv_repo_key = io_repo->get_key( ).
READ TABLE gt_branch_overview ASSIGNING <ls_branch_overview>
WITH TABLE KEY repo_key = lv_repo_key.
IF sy-subrc <> 0.
ls_branch_overview-repo_key = lv_repo_key.
CREATE OBJECT ls_branch_overview-instance TYPE zcl_abapgit_branch_overview
EXPORTING
io_repo = io_repo.
INSERT ls_branch_overview
INTO TABLE gt_branch_overview
ASSIGNING <ls_branch_overview>.
ENDIF.
ri_branch_overview = <ls_branch_overview>-instance.
ENDMETHOD.
ENDCLASS.

View File

@ -0,0 +1,20 @@
INTERFACE zif_abapgit_branch_overview
PUBLIC .
METHODS:
get_branches
RETURNING VALUE(rt_branches) TYPE zif_abapgit_definitions=>ty_git_branch_list_tt,
get_tags
RETURNING VALUE(rt_tags) TYPE zif_abapgit_definitions=>ty_git_tag_list_tt,
get_commits
RETURNING
VALUE(rt_commits) TYPE zif_abapgit_definitions=>ty_commit_tt,
compress
IMPORTING it_commits TYPE zif_abapgit_definitions=>ty_commit_tt
RETURNING VALUE(rt_commits) TYPE zif_abapgit_definitions=>ty_commit_tt
RAISING zcx_abapgit_exception.
ENDINTERFACE.

View File

@ -0,0 +1,16 @@
<?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_BRANCH_OVERVIEW</CLSNAME>
<VERSION>1</VERSION>
<LANGU>E</LANGU>
<DESCRIPT>Branch overview</DESCRIPT>
<EXPOSURE>2</EXPOSURE>
<STATE>1</STATE>
<UNICODE>X</UNICODE>
</VSEOINTERF>
</asx:values>
</asx:abap>
</abapGit>