From 9d29fe57ceca3fe10a66872dd81bf17f6c71a4f3 Mon Sep 17 00:00:00 2001 From: Marc Bernard <59966492+mbtools@users.noreply.github.com> Date: Sat, 4 Jul 2020 09:31:21 +0200 Subject: [PATCH] Missing objects in overwrite confirmation popup (#3558) * Missing objects in overwrite confirmation popup Closes https://github.com/larshp/abapGit/issues/3550 * Unit tests Co-authored-by: Lars Hvam --- src/objects/zcl_abapgit_objects.clas.abap | 5 +- .../zcl_abapgit_objects.clas.testclasses.abap | 53 +++++++++++++++++++ 2 files changed, 56 insertions(+), 2 deletions(-) diff --git a/src/objects/zcl_abapgit_objects.clas.abap b/src/objects/zcl_abapgit_objects.clas.abap index 40fde6378..02ef46d30 100644 --- a/src/objects/zcl_abapgit_objects.clas.abap +++ b/src/objects/zcl_abapgit_objects.clas.abap @@ -899,7 +899,8 @@ CLASS ZCL_ABAPGIT_OBJECTS IMPLEMENTATION. SORT rt_results BY obj_type ASCENDING obj_name ASCENDING - rstate DESCENDING. " ensures that non-empty rstate is kept + rstate DESCENDING " ensures that non-empty rstate is kept + lstate DESCENDING. " ensures that non-empty lstate is kept DELETE ADJACENT DUPLICATES FROM rt_results COMPARING obj_type obj_name. ENDMETHOD. @@ -1100,7 +1101,7 @@ CLASS ZCL_ABAPGIT_OBJECTS IMPLEMENTATION. APPEND TO rt_results. ENDLOOP. -* TOBJ has to be handled before ODSO +* TOBJ has to be handled before SCP1 LOOP AT it_results ASSIGNING WHERE obj_type = 'TOBJ'. APPEND TO rt_results. ENDLOOP. diff --git a/src/objects/zcl_abapgit_objects.clas.testclasses.abap b/src/objects/zcl_abapgit_objects.clas.testclasses.abap index 7e2db5406..979c84afb 100644 --- a/src/objects/zcl_abapgit_objects.clas.testclasses.abap +++ b/src/objects/zcl_abapgit_objects.clas.testclasses.abap @@ -553,6 +553,8 @@ CLASS ltcl_filter_files_to_deser DEFINITION FINAL FOR TESTING filter_duplicates_lstate FOR TESTING RAISING cx_static_check, filter_duplicates_match FOR TESTING RAISING cx_static_check, filter_duplicates_init_objtype FOR TESTING RAISING cx_static_check, + filter_duplicates_changes_01 FOR TESTING RAISING cx_static_check, + filter_duplicates_changes_02 FOR TESTING RAISING cx_static_check, given_result IMPORTING @@ -652,6 +654,57 @@ CLASS ltcl_filter_files_to_deser IMPLEMENTATION. ENDMETHOD. + METHOD filter_duplicates_changes_01. + + DATA: ls_exp LIKE LINE OF mt_result, + ls_act LIKE LINE OF mt_result. + + " test different order since SORT object,obj_name is non-deterministic + given_result( |CLAS;ZAG_UNIT_TEST;;/src/;zag_unit_test.clas.abap;;;M;M| ). + given_result( |CLAS;ZAG_UNIT_TEST;;/src/;zag_unit_test.clas.testclasses.abap;;;;M| ). + + READ TABLE mt_result INDEX 1 INTO ls_exp. + + when_filter_is_applied( ). + + cl_abap_unit_assert=>assert_equals( + exp = 1 + act = lines( mt_result ) ). + + READ TABLE mt_result INDEX 1 INTO ls_act. + + " expect M,M + cl_abap_unit_assert=>assert_equals( + exp = ls_exp + act = ls_act ). + + ENDMETHOD. + + METHOD filter_duplicates_changes_02. + + DATA: ls_exp LIKE LINE OF mt_result, + ls_act LIKE LINE OF mt_result. + + " test different order since SORT object,obj_name is non-deterministic + given_result( |CLAS;ZAG_UNIT_TEST;;/src/;zag_unit_test.clas.abap;;;;M| ). + given_result( |CLAS;ZAG_UNIT_TEST;;/src/;zag_unit_test.clas.testclasses.abap;;;M;M| ). + + READ TABLE mt_result INDEX 2 INTO ls_exp. + + when_filter_is_applied( ). + + cl_abap_unit_assert=>assert_equals( + exp = 1 + act = lines( mt_result ) ). + + READ TABLE mt_result INDEX 1 INTO ls_act. + + " expect M,M + cl_abap_unit_assert=>assert_equals( + exp = ls_exp + act = ls_act ). + + ENDMETHOD. METHOD given_result.