mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 20:32:26 +08:00

* log: new features * log in exception * log via gui_services Co-authored-by: Lars Hvam <larshp@hotmail.com>
258 lines
6.3 KiB
ABAP
258 lines
6.3 KiB
ABAP
|
|
CLASS ltcl_test DEFINITION FOR TESTING DURATION SHORT RISK LEVEL HARMLESS FINAL.
|
|
|
|
PRIVATE SECTION.
|
|
DATA:
|
|
mi_cut TYPE REF TO zif_abapgit_log.
|
|
|
|
METHODS:
|
|
setup,
|
|
from_x FOR TESTING,
|
|
get_status FOR TESTING,
|
|
get_log_level FOR TESTING,
|
|
merge_with FOR TESTING,
|
|
merge_with_min_level FOR TESTING,
|
|
empty FOR TESTING,
|
|
clone FOR TESTING,
|
|
add FOR TESTING.
|
|
ENDCLASS.
|
|
|
|
|
|
CLASS ltcl_test IMPLEMENTATION.
|
|
|
|
METHOD setup.
|
|
CREATE OBJECT mi_cut TYPE zcl_abapgit_log.
|
|
ENDMETHOD.
|
|
|
|
METHOD empty.
|
|
|
|
cl_abap_unit_assert=>assert_equals(
|
|
act = mi_cut->count( )
|
|
exp = 0 ).
|
|
|
|
cl_abap_unit_assert=>assert_equals(
|
|
act = mi_cut->get_title( )
|
|
exp = 'Log' ).
|
|
|
|
ENDMETHOD.
|
|
|
|
METHOD add.
|
|
|
|
DATA lv_message TYPE string.
|
|
DATA lt_messages TYPE zif_abapgit_log=>ty_log_outs.
|
|
DATA ls_message LIKE LINE OF lt_messages.
|
|
|
|
lv_message = 'hello'.
|
|
|
|
mi_cut->add( lv_message ).
|
|
|
|
cl_abap_unit_assert=>assert_equals(
|
|
act = mi_cut->count( )
|
|
exp = 1 ).
|
|
|
|
cl_abap_unit_assert=>assert_equals(
|
|
act = mi_cut->get_status( )
|
|
exp = 'E' ).
|
|
|
|
lt_messages = mi_cut->get_messages( ).
|
|
READ TABLE lt_messages INDEX 1 INTO ls_message.
|
|
cl_abap_unit_assert=>assert_subrc( ).
|
|
|
|
cl_abap_unit_assert=>assert_equals(
|
|
act = ls_message-text
|
|
exp = lv_message ).
|
|
|
|
ENDMETHOD.
|
|
|
|
METHOD get_status.
|
|
|
|
DATA lo_x TYPE REF TO zcx_abapgit_exception.
|
|
|
|
mi_cut->add_success( 'success' ).
|
|
|
|
cl_abap_unit_assert=>assert_equals(
|
|
act = mi_cut->get_status( )
|
|
exp = zif_abapgit_log=>c_status-ok ).
|
|
|
|
mi_cut->add_warning( 'warn' ).
|
|
|
|
cl_abap_unit_assert=>assert_equals(
|
|
act = mi_cut->get_status( )
|
|
exp = zif_abapgit_log=>c_status-warning ).
|
|
|
|
mi_cut->add_error( 'err' ).
|
|
|
|
cl_abap_unit_assert=>assert_equals(
|
|
act = mi_cut->get_status( )
|
|
exp = zif_abapgit_log=>c_status-error ).
|
|
|
|
mi_cut->clear( ).
|
|
|
|
cl_abap_unit_assert=>assert_equals(
|
|
act = mi_cut->get_status( )
|
|
exp = zif_abapgit_log=>c_status-ok ).
|
|
|
|
CREATE OBJECT lo_x EXPORTING msgv1 = 'x'.
|
|
mi_cut->add_exception( lo_x ).
|
|
|
|
cl_abap_unit_assert=>assert_equals(
|
|
act = mi_cut->get_status( )
|
|
exp = zif_abapgit_log=>c_status-error ).
|
|
|
|
ENDMETHOD.
|
|
|
|
METHOD merge_with.
|
|
|
|
DATA li_secondary_log LIKE mi_cut.
|
|
DATA lt_act_msgs TYPE zif_abapgit_log=>ty_log_outs.
|
|
|
|
CREATE OBJECT li_secondary_log TYPE zcl_abapgit_log.
|
|
|
|
mi_cut->add_success( 'success' ).
|
|
li_secondary_log->add_warning( 'warn' ).
|
|
mi_cut->merge_with( li_secondary_log ).
|
|
|
|
cl_abap_unit_assert=>assert_equals(
|
|
act = mi_cut->count( )
|
|
exp = 2 ).
|
|
|
|
lt_act_msgs = mi_cut->get_messages( ).
|
|
|
|
READ TABLE lt_act_msgs TRANSPORTING NO FIELDS WITH KEY text = 'success'.
|
|
cl_abap_unit_assert=>assert_subrc( ).
|
|
READ TABLE lt_act_msgs TRANSPORTING NO FIELDS WITH KEY text = 'warn'.
|
|
cl_abap_unit_assert=>assert_subrc( ).
|
|
|
|
ENDMETHOD.
|
|
|
|
METHOD merge_with_min_level.
|
|
|
|
DATA li_secondary_log LIKE mi_cut.
|
|
DATA lt_act_msgs TYPE zif_abapgit_log=>ty_log_outs.
|
|
|
|
CREATE OBJECT li_secondary_log TYPE zcl_abapgit_log.
|
|
|
|
mi_cut->add_success( 'success' ).
|
|
li_secondary_log->add_warning( 'warn' ).
|
|
mi_cut->merge_with(
|
|
ii_log = li_secondary_log
|
|
iv_min_level = zif_abapgit_log=>c_log_level-error ).
|
|
|
|
cl_abap_unit_assert=>assert_equals(
|
|
act = mi_cut->count( )
|
|
exp = 1 ).
|
|
|
|
lt_act_msgs = mi_cut->get_messages( ).
|
|
|
|
READ TABLE lt_act_msgs TRANSPORTING NO FIELDS WITH KEY text = 'success'.
|
|
cl_abap_unit_assert=>assert_subrc( ).
|
|
|
|
" change level to warning
|
|
mi_cut->merge_with(
|
|
ii_log = li_secondary_log
|
|
iv_min_level = zif_abapgit_log=>c_log_level-warning ).
|
|
|
|
cl_abap_unit_assert=>assert_equals(
|
|
act = mi_cut->count( )
|
|
exp = 2 ).
|
|
|
|
lt_act_msgs = mi_cut->get_messages( ).
|
|
|
|
READ TABLE lt_act_msgs TRANSPORTING NO FIELDS WITH KEY text = 'success'.
|
|
cl_abap_unit_assert=>assert_subrc( ).
|
|
READ TABLE lt_act_msgs TRANSPORTING NO FIELDS WITH KEY text = 'warn'.
|
|
cl_abap_unit_assert=>assert_subrc( ).
|
|
|
|
ENDMETHOD.
|
|
|
|
METHOD from_x.
|
|
|
|
DATA lo_x TYPE REF TO zcx_abapgit_exception.
|
|
DATA lt_act_msgs TYPE zif_abapgit_log=>ty_log_outs.
|
|
|
|
" Uninitialized
|
|
mi_cut = zcl_abapgit_log=>from_exception( lo_x ).
|
|
cl_abap_unit_assert=>assert_equals(
|
|
act = mi_cut->count( )
|
|
exp = 0 ).
|
|
|
|
" Notmal exception
|
|
TRY.
|
|
zcx_abapgit_exception=>raise( 'Error!' ).
|
|
CATCH zcx_abapgit_exception INTO lo_x.
|
|
mi_cut = zcl_abapgit_log=>from_exception( lo_x ).
|
|
ENDTRY.
|
|
|
|
cl_abap_unit_assert=>assert_bound( mi_cut ).
|
|
cl_abap_unit_assert=>assert_equals(
|
|
act = mi_cut->count( )
|
|
exp = 1 ).
|
|
|
|
lt_act_msgs = mi_cut->get_messages( ).
|
|
|
|
READ TABLE lt_act_msgs TRANSPORTING NO FIELDS WITH KEY type = 'E'.
|
|
cl_abap_unit_assert=>assert_subrc( ).
|
|
READ TABLE lt_act_msgs TRANSPORTING NO FIELDS WITH KEY text = 'Error!'.
|
|
cl_abap_unit_assert=>assert_subrc( ).
|
|
|
|
ENDMETHOD.
|
|
|
|
METHOD get_log_level.
|
|
|
|
DATA lo_x TYPE REF TO zcx_abapgit_exception.
|
|
|
|
cl_abap_unit_assert=>assert_equals(
|
|
act = mi_cut->get_log_level( )
|
|
exp = zif_abapgit_log=>c_log_level-empty ).
|
|
|
|
mi_cut->add_success( 'success' ).
|
|
|
|
cl_abap_unit_assert=>assert_equals(
|
|
act = mi_cut->get_log_level( )
|
|
exp = zif_abapgit_log=>c_log_level-info ).
|
|
|
|
mi_cut->add_warning( 'warn' ).
|
|
|
|
cl_abap_unit_assert=>assert_equals(
|
|
act = mi_cut->get_log_level( )
|
|
exp = zif_abapgit_log=>c_log_level-warning ).
|
|
|
|
mi_cut->add_error( 'err' ).
|
|
|
|
cl_abap_unit_assert=>assert_equals(
|
|
act = mi_cut->get_log_level( )
|
|
exp = zif_abapgit_log=>c_log_level-error ).
|
|
|
|
CREATE OBJECT lo_x EXPORTING msgv1 = 'x'.
|
|
mi_cut->add_exception( lo_x ).
|
|
|
|
cl_abap_unit_assert=>assert_equals(
|
|
act = mi_cut->get_log_level( )
|
|
exp = zif_abapgit_log=>c_log_level-error ).
|
|
|
|
ENDMETHOD.
|
|
|
|
METHOD clone.
|
|
|
|
DATA li_clone TYPE REF TO zif_abapgit_log.
|
|
|
|
mi_cut->add( 'Hello' ).
|
|
mi_cut->set_title( 'My log' ).
|
|
|
|
li_clone = mi_cut->clone( ).
|
|
|
|
mi_cut->add( 'World' ).
|
|
mi_cut->set_title( 'My log CHANGED' ).
|
|
|
|
cl_abap_unit_assert=>assert_equals(
|
|
act = li_clone->count( )
|
|
exp = 1 ).
|
|
|
|
cl_abap_unit_assert=>assert_equals(
|
|
act = li_clone->get_title( )
|
|
exp = 'My log' ).
|
|
|
|
ENDMETHOD.
|
|
|
|
ENDCLASS.
|