delete ltcl_dangerous (#3984)

This commit is contained in:
Lars Hvam 2020-10-07 09:02:36 +02:00 committed by GitHub
parent 4e96acd4be
commit 7339e0ec47
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,113 +1,3 @@
*----------------------------------------------------------------------*
* CLASS ltcl_dangerous DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS ltcl_dangerous DEFINITION FOR TESTING RISK LEVEL CRITICAL DURATION LONG FINAL.
* if this test class does not run, parameters in transaction SAUNIT_CLIENT_SETUP
* might need to be adjusted
PRIVATE SECTION.
CLASS-METHODS:
class_setup.
METHODS:
run FOR TESTING
RAISING zcx_abapgit_exception.
CONSTANTS: c_package TYPE devclass VALUE '$ABAPGIT_UNIT_TEST'.
ENDCLASS.
*----------------------------------------------------------------------*
* CLASS ltcl_dangerous IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS ltcl_dangerous IMPLEMENTATION.
METHOD class_setup.
"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.
cl_abap_unit_assert=>fail(
msg = 'Cancelled. You can enable these tests at the Settings page'
level = if_aunit_constants=>tolerable ).
ENDIF.
ENDMETHOD.
METHOD run.
DATA: lo_repo TYPE REF TO zcl_abapgit_repo_online,
lt_tadir TYPE zif_abapgit_definitions=>ty_tadir_tt,
lv_msg TYPE string,
lt_results TYPE zif_abapgit_definitions=>ty_results_tt,
ls_checks TYPE zif_abapgit_definitions=>ty_deserialize_checks,
lt_types TYPE zcl_abapgit_objects=>ty_types_tt,
li_log TYPE REF TO zif_abapgit_log.
FIELD-SYMBOLS: <ls_result> LIKE LINE OF lt_results,
<ls_tadir> LIKE LINE OF lt_tadir,
<lv_type> LIKE LINE OF lt_types.
CREATE OBJECT li_log TYPE zcl_abapgit_log.
zcl_abapgit_factory=>get_sap_package( c_package )->create_local( ).
lt_types = zcl_abapgit_objects=>supported_list( ).
lo_repo = zcl_abapgit_repo_srv=>get_instance( )->new_online(
iv_url = 'https://github.com/abapGit/Test-Objects.git'
iv_branch_name = zif_abapgit_definitions=>c_git_branch-master
iv_package = c_package ).
lo_repo->status( ).
lo_repo->deserialize( is_checks = ls_checks
ii_log = li_log ).
lt_tadir = zcl_abapgit_factory=>get_tadir( )->read( c_package ).
LOOP AT lt_types ASSIGNING <lv_type>.
READ TABLE lt_tadir WITH KEY object = <lv_type> TRANSPORTING NO FIELDS.
IF sy-subrc <> 0.
lv_msg = |Missing object type { <lv_type> }|.
cl_abap_unit_assert=>fail(
msg = lv_msg
level = if_aunit_constants=>tolerable
quit = if_aunit_constants=>no ).
ENDIF.
ENDLOOP.
lt_results = lo_repo->status( ).
LOOP AT lt_results ASSIGNING <ls_result> WHERE match = abap_false.
lv_msg = |Does not match { <ls_result>-obj_type } { <ls_result>-obj_name }|.
cl_abap_unit_assert=>fail(
msg = lv_msg
quit = if_aunit_constants=>no ).
ENDLOOP.
zcl_abapgit_objects=>delete( lt_tadir ).
lt_tadir = zcl_abapgit_factory=>get_tadir( )->read( c_package ).
LOOP AT lt_tadir ASSIGNING <ls_tadir>.
lv_msg = |Not deleted properly { <ls_tadir>-object } { <ls_tadir>-obj_name }|.
cl_abap_unit_assert=>fail(
msg = lv_msg
quit = if_aunit_constants=>no ).
ENDLOOP.
zcl_abapgit_repo_srv=>get_instance( )->delete( lo_repo ).
COMMIT WORK.
ENDMETHOD.
ENDCLASS.
*----------------------------------------------------------------------*
* CLASS ltcl_object_types DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS ltcl_object_types DEFINITION FOR TESTING RISK LEVEL HARMLESS DURATION SHORT FINAL. CLASS ltcl_object_types DEFINITION FOR TESTING RISK LEVEL HARMLESS DURATION SHORT FINAL.
PRIVATE SECTION. PRIVATE SECTION.
@ -116,11 +6,6 @@ CLASS ltcl_object_types DEFINITION FOR TESTING RISK LEVEL HARMLESS DURATION SHOR
ENDCLASS. ENDCLASS.
*----------------------------------------------------------------------*
* CLASS ltcl_object_types IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS ltcl_object_types IMPLEMENTATION. CLASS ltcl_object_types IMPLEMENTATION.
METHOD not_exist. METHOD not_exist.