From 13c4d57dd3c535bad025fced98da689629890112 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20G=C3=BCnter?= Date: Fri, 26 Nov 2021 07:41:57 +0100 Subject: [PATCH] Patch: enable new view options similar to Diff (#5162) * enable new view options on patch page * add unit test * new constant for unchanged lines --- src/git/zcl_abapgit_git_add_patch.clas.abap | 4 ++-- ...bapgit_git_add_patch.clas.testclasses.abap | 19 +++++++++++++++++++ src/ui/zcl_abapgit_gui_page_diff.clas.abap | 8 ++++---- src/ui/zcl_abapgit_gui_page_patch.clas.abap | 2 ++ src/utils/zcl_abapgit_diff.clas.abap | 2 +- src/zif_abapgit_definitions.intf.abap | 7 ++++--- 6 files changed, 32 insertions(+), 10 deletions(-) diff --git a/src/git/zcl_abapgit_git_add_patch.clas.abap b/src/git/zcl_abapgit_git_add_patch.clas.abap index 6bb0fdee2..551922272 100644 --- a/src/git/zcl_abapgit_git_add_patch.clas.abap +++ b/src/git/zcl_abapgit_git_add_patch.clas.abap @@ -47,9 +47,9 @@ CLASS ZCL_ABAPGIT_GIT_ADD_PATCH IMPLEMENTATION. LOOP AT mt_diff ASSIGNING . CASE -result. - WHEN ' '. + WHEN zif_abapgit_definitions=>c_diff-unchanged. - INSERT -new INTO TABLE rt_patch. + INSERT -old INTO TABLE rt_patch. WHEN zif_abapgit_definitions=>c_diff-insert. diff --git a/src/git/zcl_abapgit_git_add_patch.clas.testclasses.abap b/src/git/zcl_abapgit_git_add_patch.clas.testclasses.abap index abf56251d..07782d2e1 100644 --- a/src/git/zcl_abapgit_git_add_patch.clas.testclasses.abap +++ b/src/git/zcl_abapgit_git_add_patch.clas.testclasses.abap @@ -23,6 +23,8 @@ CLASS ltcl_calculate_patch DEFINITION FINAL FOR TESTING mixed FOR TESTING RAISING cx_static_check, + no_diff FOR TESTING RAISING cx_static_check, + unknown_result_type FOR TESTING RAISING cx_static_check. METHODS: @@ -612,6 +614,23 @@ CLASS ltcl_calculate_patch IMPLEMENTATION. ENDMETHOD. + + METHOD no_diff. + + given_diff( iv_patch_flag = ' ' + iv_new_num = ' 1' + iv_new = '" new' + iv_result = ' ' + iv_old_num = ' 1' + iv_old = '" old' ). + + when_patch_is_calculated( ). + + then_patch_should_be( |" old| ). + + ENDMETHOD. + + METHOD unknown_result_type. given_diff( iv_patch_flag = ' ' diff --git a/src/ui/zcl_abapgit_gui_page_diff.clas.abap b/src/ui/zcl_abapgit_gui_page_diff.clas.abap index 95196033c..06f35adc2 100644 --- a/src/ui/zcl_abapgit_gui_page_diff.clas.abap +++ b/src/ui/zcl_abapgit_gui_page_diff.clas.abap @@ -152,9 +152,12 @@ CLASS zcl_abapgit_gui_page_diff DEFINITION VALUE(rv_is_refrseh) TYPE abap_bool. METHODS modify_files_before_diff_calc IMPORTING - !it_diff_files_old TYPE ty_file_diffs + it_diff_files_old TYPE ty_file_diffs RETURNING VALUE(rt_files) TYPE zif_abapgit_definitions=>ty_stage_tt. + METHODS add_view_sub_menu + IMPORTING + io_menu TYPE REF TO zcl_abapgit_html_toolbar . METHODS render_content REDEFINITION . @@ -232,9 +235,6 @@ CLASS zcl_abapgit_gui_page_diff DEFINITION METHODS add_filter_sub_menu IMPORTING !io_menu TYPE REF TO zcl_abapgit_html_toolbar . - METHODS add_view_sub_menu - IMPORTING - !io_menu TYPE REF TO zcl_abapgit_html_toolbar . METHODS render_lines IMPORTING !is_diff TYPE ty_file_diff diff --git a/src/ui/zcl_abapgit_gui_page_patch.clas.abap b/src/ui/zcl_abapgit_gui_page_patch.clas.abap index b58e37e77..54f95af39 100644 --- a/src/ui/zcl_abapgit_gui_page_patch.clas.abap +++ b/src/ui/zcl_abapgit_gui_page_patch.clas.abap @@ -164,6 +164,8 @@ CLASS zcl_abapgit_gui_page_patch IMPLEMENTATION. iv_id = 'stage' iv_typ = zif_abapgit_html=>c_action_type-dummy ). + add_view_sub_menu( io_menu ). + ENDMETHOD. diff --git a/src/utils/zcl_abapgit_diff.clas.abap b/src/utils/zcl_abapgit_diff.clas.abap index 20e01f299..c10f89373 100644 --- a/src/utils/zcl_abapgit_diff.clas.abap +++ b/src/utils/zcl_abapgit_diff.clas.abap @@ -150,7 +150,7 @@ CLASS zcl_abapgit_diff IMPLEMENTATION. ELSEIF -flag1 = 'M' AND -flag2 = 'M'. ls_diff-result = zif_abapgit_definitions=>c_diff-update. ELSEIF -flag1 = '' AND -flag2 = ''. - ls_diff-result = ''. + ls_diff-result = zif_abapgit_definitions=>c_diff-unchanged. ELSE. ASSERT 0 = 1. " unknown comparison result ENDIF. diff --git a/src/zif_abapgit_definitions.intf.abap b/src/zif_abapgit_definitions.intf.abap index abf885be6..e57726380 100644 --- a/src/zif_abapgit_definitions.intf.abap +++ b/src/zif_abapgit_definitions.intf.abap @@ -392,9 +392,10 @@ INTERFACE zif_abapgit_definitions END OF c_git_branch. CONSTANTS: BEGIN OF c_diff, - insert TYPE c LENGTH 1 VALUE 'I', - delete TYPE c LENGTH 1 VALUE 'D', - update TYPE c LENGTH 1 VALUE 'U', + unchanged TYPE c LENGTH 1 VALUE ' ', + insert TYPE c LENGTH 1 VALUE 'I', + delete TYPE c LENGTH 1 VALUE 'D', + update TYPE c LENGTH 1 VALUE 'U', END OF c_diff . CONSTANTS: BEGIN OF c_type,