mirror of
https://github.com/abapGit/abapGit.git
synced 2025-04-30 11:46:38 +08:00
Improve error messages (#1213)
* Add T100 support to ZCX_ABAPGIT_EXCEPTION * Use T100 error messages in DEVC * Replace zcx_abapgit_exception->text with get_text * Use SE24 generated constructor in T100 exception
This commit is contained in:
parent
30112e0557
commit
889106b68b
|
@ -27,7 +27,7 @@ ENDCLASS.
|
|||
|
||||
|
||||
|
||||
CLASS ZCL_ABAPGIT_OBJECT_DEVC IMPLEMENTATION.
|
||||
CLASS zcl_abapgit_object_devc IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD constructor.
|
||||
|
@ -55,7 +55,7 @@ CLASS ZCL_ABAPGIT_OBJECT_DEVC IMPLEMENTATION.
|
|||
IF sy-subrc = 1.
|
||||
RETURN.
|
||||
ELSEIF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise( |Error from CL_PACKAGE_FACTORY=>LOAD_PACKAGE { sy-subrc }| ).
|
||||
zcx_abapgit_exception=>raise_t100( ).
|
||||
ENDIF.
|
||||
ENDIF.
|
||||
ENDMETHOD.
|
||||
|
@ -82,7 +82,7 @@ CLASS ZCL_ABAPGIT_OBJECT_DEVC IMPLEMENTATION.
|
|||
unexpected_error = 10
|
||||
OTHERS = 11 ).
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise( |Error from IF_PACKAGE->SET_CHANGEABLE { sy-subrc }| ).
|
||||
zcx_abapgit_exception=>raise_t100( ).
|
||||
ENDIF.
|
||||
ENDIF.
|
||||
|
||||
|
@ -104,7 +104,7 @@ CLASS ZCL_ABAPGIT_OBJECT_DEVC IMPLEMENTATION.
|
|||
IF ( sy-subrc = 1 AND iv_lock = abap_true ) OR ( sy-subrc = 2 AND iv_lock = abap_false ).
|
||||
" There's no getter to find out beforehand...
|
||||
ELSEIF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise( |Error from IF_PACKAGE->SET_PERMISSIONS_CHANGEABLE { sy-subrc }| ).
|
||||
zcx_abapgit_exception=>raise_t100( ).
|
||||
ENDIF.
|
||||
ENDMETHOD.
|
||||
|
||||
|
@ -126,7 +126,7 @@ CLASS ZCL_ABAPGIT_OBJECT_DEVC IMPLEMENTATION.
|
|||
unexpected_error = 2
|
||||
OTHERS = 3 ).
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise( |Error from IF_PACKAGE=>GET_PERMISSIONS_TO_USE { sy-subrc }| ).
|
||||
zcx_abapgit_exception=>raise_t100( ).
|
||||
ENDIF.
|
||||
|
||||
ls_data_sign-err_sever = abap_true.
|
||||
|
@ -151,8 +151,7 @@ CLASS ZCL_ABAPGIT_OBJECT_DEVC IMPLEMENTATION.
|
|||
intern_err = 3
|
||||
OTHERS = 4 ).
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise(
|
||||
|Error from IF_PACKAGE_PERMISSION_TO_USE->SET_ALL_ATTRIBUTES { sy-subrc }| ).
|
||||
zcx_abapgit_exception=>raise_t100( ).
|
||||
ENDIF.
|
||||
|
||||
ELSE.
|
||||
|
@ -169,7 +168,7 @@ CLASS ZCL_ABAPGIT_OBJECT_DEVC IMPLEMENTATION.
|
|||
unexpected_error = 5
|
||||
OTHERS = 6 ).
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise( |Error from IF_PACKAGE->ADD_PERMISSION_TO_USE { sy-subrc }| ).
|
||||
zcx_abapgit_exception=>raise_t100( ).
|
||||
ENDIF.
|
||||
|
||||
ENDIF.
|
||||
|
@ -192,7 +191,7 @@ CLASS ZCL_ABAPGIT_OBJECT_DEVC IMPLEMENTATION.
|
|||
intern_err = 4
|
||||
OTHERS = 5 ).
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise( |Error from IF_PACKAGE->DELETE { sy-subrc }| ).
|
||||
zcx_abapgit_exception=>raise_t100( ).
|
||||
ENDIF.
|
||||
ENDLOOP.
|
||||
ENDMETHOD.
|
||||
|
@ -218,11 +217,11 @@ CLASS ZCL_ABAPGIT_OBJECT_DEVC IMPLEMENTATION.
|
|||
|
||||
|
||||
METHOD zif_abapgit_object~deserialize.
|
||||
DATA: li_package TYPE REF TO if_package,
|
||||
ls_package_data TYPE scompkdtln,
|
||||
ls_data_sign TYPE scompksign,
|
||||
lt_usage_data TYPE scomppdata,
|
||||
ls_save_sign TYPE paksavsign.
|
||||
DATA: li_package TYPE REF TO if_package,
|
||||
ls_package_data TYPE scompkdtln,
|
||||
ls_data_sign TYPE scompksign,
|
||||
lt_usage_data TYPE scomppdata,
|
||||
ls_save_sign TYPE paksavsign.
|
||||
|
||||
FIELD-SYMBOLS: <ls_usage_data> TYPE scomppdtln.
|
||||
|
||||
|
@ -301,7 +300,7 @@ CLASS ZCL_ABAPGIT_OBJECT_DEVC IMPLEMENTATION.
|
|||
superpackage_invalid = 17
|
||||
OTHERS = 18 ).
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise( |Error from IF_PACKAGE->SET_ALL_ATTRIBUTES { sy-subrc }| ).
|
||||
zcx_abapgit_exception=>raise_t100( ).
|
||||
ENDIF.
|
||||
|
||||
* " If the application component was cleared SET_ALL_ATTRIBUTES doesn't change it
|
||||
|
@ -341,7 +340,7 @@ CLASS ZCL_ABAPGIT_OBJECT_DEVC IMPLEMENTATION.
|
|||
* error_in_cts_checks = 21 downport, does not exist in 7.31
|
||||
OTHERS = 22 ).
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise( |Error from CL_PACKAGE_FACTORY=>CREATE_NEW_PACKAGE { sy-subrc }| ).
|
||||
zcx_abapgit_exception=>raise_t100( ).
|
||||
ENDIF.
|
||||
ENDIF.
|
||||
|
||||
|
@ -374,7 +373,7 @@ CLASS ZCL_ABAPGIT_OBJECT_DEVC IMPLEMENTATION.
|
|||
object_invalid = 4
|
||||
OTHERS = 5 ).
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise( |Error from IF_PACKAGE->SAVE_GENERIC { sy-subrc }| ).
|
||||
zcx_abapgit_exception=>raise_t100( ).
|
||||
ENDIF.
|
||||
|
||||
set_lock( ii_package = li_package iv_lock = abap_false ).
|
||||
|
@ -382,7 +381,6 @@ CLASS ZCL_ABAPGIT_OBJECT_DEVC IMPLEMENTATION.
|
|||
|
||||
|
||||
METHOD zif_abapgit_object~exists.
|
||||
|
||||
" Check remote package if deserialize has not been called before this
|
||||
IF mv_local_devclass IS INITIAL.
|
||||
rv_bool = abap_false.
|
||||
|
@ -396,7 +394,7 @@ CLASS ZCL_ABAPGIT_OBJECT_DEVC IMPLEMENTATION.
|
|||
intern_err = 1
|
||||
OTHERS = 2 ).
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise( |Error from CL_PACKAGE_HELPER=>CHECK_PACKAGE_EXISTENCE { sy-subrc }| ).
|
||||
zcx_abapgit_exception=>raise_t100( ).
|
||||
ENDIF.
|
||||
ENDIF.
|
||||
ENDMETHOD.
|
||||
|
@ -424,7 +422,7 @@ CLASS ZCL_ABAPGIT_OBJECT_DEVC IMPLEMENTATION.
|
|||
invalid_object_type = 2
|
||||
OTHERS = 3.
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise( |Error from RS_TOOL_ACCESS, DEVC| ).
|
||||
zcx_abapgit_exception=>raise_t100( ).
|
||||
ENDIF.
|
||||
ENDMETHOD.
|
||||
|
||||
|
@ -454,7 +452,7 @@ CLASS ZCL_ABAPGIT_OBJECT_DEVC IMPLEMENTATION.
|
|||
intern_err = 3
|
||||
OTHERS = 4 ).
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise( |Error from IF_PACKAGE->GET_ALL_ATTRIBUTES { sy-subrc }| ).
|
||||
zcx_abapgit_exception=>raise_t100( ).
|
||||
ENDIF.
|
||||
|
||||
CLEAR: ls_package_data-devclass,
|
||||
|
@ -508,7 +506,7 @@ CLASS ZCL_ABAPGIT_OBJECT_DEVC IMPLEMENTATION.
|
|||
unexpected_error = 2
|
||||
OTHERS = 3 ).
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise( |Error from IF_PACKAGE->GET_PERMISSION_TO_USE { sy-subrc }| ).
|
||||
zcx_abapgit_exception=>raise_t100( ).
|
||||
ENDIF.
|
||||
|
||||
LOOP AT lt_intf_usages INTO li_usage.
|
||||
|
@ -520,8 +518,7 @@ CLASS ZCL_ABAPGIT_OBJECT_DEVC IMPLEMENTATION.
|
|||
intern_err = 2
|
||||
OTHERS = 3 ).
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise(
|
||||
|Error from IF_PACKAGE_PERMISSION_TO_USE->GET_ALL_ATTRIBUTES { sy-subrc }| ).
|
||||
zcx_abapgit_exception=>raise_t100( ).
|
||||
ENDIF.
|
||||
|
||||
CLEAR: ls_usage_data-pack_name, ls_usage_data-client_pak.
|
||||
|
|
|
@ -270,7 +270,7 @@ CLASS ZCL_ABAPGIT_GUI IMPLEMENTATION.
|
|||
|
||||
CATCH zcx_abapgit_exception INTO lx_exception.
|
||||
ROLLBACK WORK.
|
||||
MESSAGE lx_exception->text TYPE 'S' DISPLAY LIKE 'E'.
|
||||
MESSAGE lx_exception TYPE 'S' DISPLAY LIKE 'E'.
|
||||
CATCH zcx_abapgit_cancel ##NO_HANDLER.
|
||||
" Do nothing = gc_event_state-no_more_act
|
||||
ENDTRY.
|
||||
|
|
|
@ -83,7 +83,7 @@ CLASS ZCL_ABAPGIT_GUI_CHUNK_LIB IMPLEMENTATION.
|
|||
CREATE OBJECT ro_html.
|
||||
|
||||
IF ix_error IS BOUND.
|
||||
lv_error = ix_error->text.
|
||||
lv_error = ix_error->get_text( ).
|
||||
ELSE.
|
||||
lv_error = iv_error.
|
||||
ENDIF.
|
||||
|
|
|
@ -24,7 +24,7 @@ FORM run.
|
|||
zcl_abapgit_migrations=>run( ).
|
||||
PERFORM open_gui.
|
||||
CATCH zcx_abapgit_exception INTO lx_exception.
|
||||
MESSAGE lx_exception->text TYPE 'E'.
|
||||
MESSAGE lx_exception TYPE 'E'.
|
||||
ENDTRY.
|
||||
|
||||
ENDFORM. "run
|
||||
|
@ -73,7 +73,7 @@ FORM branch_popup TABLES tt_fields TYPE zif_abapgit_definitions=>ty_sval_tt
|
|||
cv_show_popup = cv_show_popup ).
|
||||
|
||||
CATCH zcx_abapgit_exception INTO lx_error.
|
||||
MESSAGE lx_error->text TYPE 'S' DISPLAY LIKE 'E'.
|
||||
MESSAGE lx_error TYPE 'S' DISPLAY LIKE 'E'.
|
||||
ENDTRY.
|
||||
|
||||
ENDFORM. "branch_popup
|
||||
|
@ -97,7 +97,7 @@ FORM package_popup TABLES tt_fields TYPE zif_abapgit_definitions=>ty_sval_tt
|
|||
cv_show_popup = cv_show_popup ).
|
||||
|
||||
CATCH zcx_abapgit_exception INTO lx_error.
|
||||
MESSAGE lx_error->text TYPE 'S' DISPLAY LIKE 'E'.
|
||||
MESSAGE lx_error TYPE 'S' DISPLAY LIKE 'E'.
|
||||
ENDTRY.
|
||||
|
||||
ENDFORM. "package_popup
|
||||
|
|
|
@ -58,7 +58,7 @@ CLASS ZCL_ABAPGIT_MIGRATIONS IMPLEMENTATION.
|
|||
CALL FUNCTION 'POPUP_TO_INFORM'
|
||||
EXPORTING
|
||||
titel = 'Migration has failed'
|
||||
txt1 = lx_exception->text
|
||||
txt1 = lx_exception->get_text( )
|
||||
txt2 = lv_msg
|
||||
txt3 = 'You will be prompted to migrate the repository every time you run abapGit.'
|
||||
txt4 = 'You can safely remove the repository in its ''Advanced -> Remove'' menu.'.
|
||||
|
|
|
@ -161,7 +161,7 @@ CLASS ZCL_ABAPGIT_REPO IMPLEMENTATION.
|
|||
|
||||
" ensure to reset default transport request task
|
||||
zcl_abapgit_default_task=>get_instance( )->reset( ).
|
||||
zcx_abapgit_exception=>raise( lx_error->text ).
|
||||
RAISE EXCEPTION lx_error.
|
||||
|
||||
ENDTRY.
|
||||
|
||||
|
|
|
@ -1,47 +1,147 @@
|
|||
"! abapGit general error
|
||||
CLASS zcx_abapgit_exception DEFINITION
|
||||
PUBLIC
|
||||
INHERITING FROM cx_static_check
|
||||
CREATE PUBLIC .
|
||||
CREATE PUBLIC.
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
DATA text TYPE string .
|
||||
|
||||
METHODS constructor
|
||||
IMPORTING
|
||||
!textid LIKE textid OPTIONAL
|
||||
!previous LIKE previous OPTIONAL
|
||||
!text TYPE string OPTIONAL.
|
||||
|
||||
CLASS-METHODS raise
|
||||
IMPORTING
|
||||
!iv_text TYPE clike
|
||||
RAISING
|
||||
zcx_abapgit_exception.
|
||||
|
||||
INTERFACES:
|
||||
if_t100_message.
|
||||
CONSTANTS:
|
||||
BEGIN OF dummy,
|
||||
msgid TYPE symsgid VALUE '02',
|
||||
msgno TYPE symsgno VALUE '004',
|
||||
attr1 TYPE scx_attrname VALUE 'MSGV1',
|
||||
attr2 TYPE scx_attrname VALUE 'MSGV2',
|
||||
attr3 TYPE scx_attrname VALUE 'MSGV3',
|
||||
attr4 TYPE scx_attrname VALUE 'MSGV4',
|
||||
END OF dummy.
|
||||
CLASS-METHODS:
|
||||
"! Raise exception with text
|
||||
"! @parameter iv_text | Text
|
||||
"! @raising zcx_abapgit_exception | Exception
|
||||
raise IMPORTING iv_text TYPE clike
|
||||
RAISING zcx_abapgit_exception,
|
||||
"! Raise exception with T100 message
|
||||
"! <p>
|
||||
"! Will default to sy-msg* variables. These need to be set right before calling this method.
|
||||
"! </p>
|
||||
"! @parameter iv_msgid | Message ID
|
||||
"! @parameter iv_msgno | Message number
|
||||
"! @parameter iv_msgv1 | Message variable 1
|
||||
"! @parameter iv_msgv2 | Message variable 2
|
||||
"! @parameter iv_msgv3 | Message variable 3
|
||||
"! @parameter iv_msgv4 | Message variable 4
|
||||
"! @raising zcx_abapgit_exception | Exception
|
||||
raise_t100 IMPORTING VALUE(iv_msgid) TYPE syst_msgid DEFAULT sy-msgid
|
||||
VALUE(iv_msgno) TYPE syst_msgno DEFAULT sy-msgno
|
||||
VALUE(iv_msgv1) TYPE syst_msgv DEFAULT sy-msgv1
|
||||
VALUE(iv_msgv2) TYPE syst_msgv DEFAULT sy-msgv2
|
||||
VALUE(iv_msgv3) TYPE syst_msgv DEFAULT sy-msgv3
|
||||
VALUE(iv_msgv4) TYPE syst_msgv DEFAULT sy-msgv4
|
||||
RAISING zcx_abapgit_exception .
|
||||
METHODS:
|
||||
constructor IMPORTING textid LIKE if_t100_message=>t100key OPTIONAL
|
||||
previous LIKE previous OPTIONAL
|
||||
text TYPE string OPTIONAL
|
||||
subrc TYPE syst_subrc OPTIONAL
|
||||
msgv1 TYPE syst_msgv OPTIONAL
|
||||
msgv2 TYPE syst_msgv OPTIONAL
|
||||
msgv3 TYPE syst_msgv OPTIONAL
|
||||
msgv4 TYPE syst_msgv OPTIONAL,
|
||||
if_message~get_text REDEFINITION.
|
||||
DATA:
|
||||
text TYPE string READ-ONLY,
|
||||
subrc TYPE syst_subrc READ-ONLY,
|
||||
msgv1 TYPE syst_msgv READ-ONLY,
|
||||
msgv2 TYPE syst_msgv READ-ONLY,
|
||||
msgv3 TYPE syst_msgv READ-ONLY,
|
||||
msgv4 TYPE syst_msgv READ-ONLY.
|
||||
PROTECTED SECTION.
|
||||
PRIVATE SECTION.
|
||||
CONSTANTS:
|
||||
gc_generic_error_msg TYPE string VALUE `An error occured (ZCX_ABAPGIT_EXCEPTION)` ##NO_TEXT.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS zcx_abapgit_exception IMPLEMENTATION.
|
||||
|
||||
METHOD constructor ##ADT_SUPPRESS_GENERATION.
|
||||
super->constructor( previous = previous ).
|
||||
|
||||
CALL METHOD super->constructor
|
||||
EXPORTING
|
||||
textid = textid
|
||||
previous = previous.
|
||||
me->text = text.
|
||||
me->subrc = subrc.
|
||||
me->msgv1 = msgv1.
|
||||
me->msgv2 = msgv2.
|
||||
me->msgv3 = msgv3.
|
||||
me->msgv4 = msgv4.
|
||||
|
||||
me->text = text .
|
||||
CLEAR me->textid.
|
||||
IF textid IS INITIAL.
|
||||
if_t100_message~t100key = if_t100_message=>default_textid.
|
||||
ELSE.
|
||||
if_t100_message~t100key = textid.
|
||||
ENDIF.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD if_message~get_text.
|
||||
" The standard implementation of this method always uses T100 messages, if IF_T100_MESSAGE is
|
||||
" implemented. Since this is a 'hybrid' exception of IF_MESSAGE and IF_T100_MESSAGE the normal
|
||||
" get_text() is only called if a T100 message is used.
|
||||
" Otherwise try to get a meaningful error text for the user in this order:
|
||||
" mv_text variable, previous exception's text, generic error message
|
||||
|
||||
IF if_t100_message~t100key IS INITIAL OR
|
||||
if_t100_message~t100key = if_t100_message=>default_textid.
|
||||
IF text IS NOT INITIAL.
|
||||
result = text.
|
||||
ELSEIF previous IS NOT INITIAL.
|
||||
result = previous->get_text( ).
|
||||
ELSE.
|
||||
IF sy-subrc IS NOT INITIAL.
|
||||
result = |{ gc_generic_error_msg } ({ subrc })|.
|
||||
ELSE.
|
||||
result = gc_generic_error_msg.
|
||||
ENDIF.
|
||||
ENDIF.
|
||||
|
||||
ELSE.
|
||||
result = super->get_text( ).
|
||||
ENDIF.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD raise.
|
||||
|
||||
RAISE EXCEPTION TYPE zcx_abapgit_exception
|
||||
EXPORTING
|
||||
text = iv_text.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD raise_t100.
|
||||
DATA: ls_t100_key TYPE scx_t100key,
|
||||
lv_subrc TYPE syst_subrc.
|
||||
|
||||
" If this method is called right in the sy-subrc handling of a method or function module
|
||||
" sy-subrc should still contain the id from that.
|
||||
lv_subrc = sy-subrc.
|
||||
|
||||
ls_t100_key-msgid = iv_msgid.
|
||||
ls_t100_key-msgno = iv_msgno.
|
||||
ls_t100_key-attr1 = 'MSGV1'.
|
||||
ls_t100_key-attr2 = 'MSGV2'.
|
||||
ls_t100_key-attr3 = 'MSGV3'.
|
||||
ls_t100_key-attr4 = 'MSGV4'.
|
||||
|
||||
IF iv_msgid IS INITIAL OR iv_msgno IS INITIAL.
|
||||
CLEAR ls_t100_key.
|
||||
ENDIF.
|
||||
|
||||
RAISE EXCEPTION TYPE zcx_abapgit_exception
|
||||
EXPORTING
|
||||
textid = ls_t100_key
|
||||
msgv1 = iv_msgv1
|
||||
msgv2 = iv_msgv2
|
||||
msgv3 = iv_msgv3
|
||||
msgv4 = iv_msgv4
|
||||
subrc = lv_subrc.
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
|
|
281
src/zcx_abapgit_exception.clas.testclasses.abap
Normal file
281
src/zcx_abapgit_exception.clas.testclasses.abap
Normal file
|
@ -0,0 +1,281 @@
|
|||
CLASS ltcl_test DEFINITION DEFERRED.
|
||||
CLASS zcx_abapgit_exception DEFINITION LOCAL FRIENDS ltcl_test.
|
||||
|
||||
CLASS ltcl_test DEFINITION
|
||||
FOR TESTING
|
||||
DURATION SHORT
|
||||
RISK LEVEL HARMLESS.
|
||||
|
||||
PUBLIC SECTION.
|
||||
METHODS:
|
||||
test_direct_text FOR TESTING,
|
||||
test_t100_text FOR TESTING,
|
||||
test_no_text FOR TESTING.
|
||||
PROTECTED SECTION.
|
||||
PRIVATE SECTION.
|
||||
TYPES:
|
||||
BEGIN OF gty_t100_message,
|
||||
msgid TYPE syst_msgid,
|
||||
msgno TYPE syst_msgno,
|
||||
msgv1 TYPE syst_msgv,
|
||||
msgv2 TYPE syst_msgv,
|
||||
msgv3 TYPE syst_msgv,
|
||||
msgv4 TYPE syst_msgv,
|
||||
END OF gty_t100_message.
|
||||
CLASS-METHODS:
|
||||
get_t100_text IMPORTING is_message TYPE gty_t100_message
|
||||
RETURNING VALUE(rv_text) TYPE string.
|
||||
ENDCLASS.
|
||||
|
||||
CLASS ltcl_test IMPLEMENTATION.
|
||||
METHOD test_direct_text.
|
||||
CONSTANTS: lc_text1 TYPE string VALUE `This is a test error message.`,
|
||||
lc_text2 TYPE string VALUE ``.
|
||||
DATA: lx_ex TYPE REF TO zcx_abapgit_exception,
|
||||
lx_previous TYPE REF TO cx_root.
|
||||
|
||||
CREATE OBJECT lx_ex
|
||||
EXPORTING
|
||||
text = lc_text1.
|
||||
|
||||
cl_abap_unit_assert=>assert_equals( act = lx_ex->get_text( ) exp = lc_text1 ).
|
||||
|
||||
FREE lx_ex.
|
||||
|
||||
CREATE OBJECT lx_ex
|
||||
EXPORTING
|
||||
text = lc_text2.
|
||||
|
||||
cl_abap_unit_assert=>assert_equals( act = lx_ex->get_text( )
|
||||
exp = zcx_abapgit_exception=>gc_generic_error_msg ).
|
||||
|
||||
FREE lx_ex.
|
||||
|
||||
CREATE OBJECT lx_previous TYPE cx_sy_dyn_call_illegal_method
|
||||
EXPORTING
|
||||
textid = cx_sy_dyn_call_illegal_method=>private_method
|
||||
classname = 'CLASS'
|
||||
methodname = 'METHOD'.
|
||||
|
||||
CREATE OBJECT lx_ex
|
||||
EXPORTING
|
||||
text = lc_text2
|
||||
previous = lx_previous.
|
||||
|
||||
cl_abap_unit_assert=>assert_equals( act = lx_ex->get_text( )
|
||||
exp = lx_previous->get_text( ) ).
|
||||
|
||||
FREE: lx_ex, lx_previous.
|
||||
|
||||
TRY.
|
||||
zcx_abapgit_exception=>raise( lc_text1 ).
|
||||
cl_abap_unit_assert=>fail( ).
|
||||
CATCH zcx_abapgit_exception INTO lx_ex.
|
||||
cl_abap_unit_assert=>assert_equals( act = lx_ex->get_text( ) exp = lc_text1 ).
|
||||
ENDTRY.
|
||||
|
||||
FREE lx_ex.
|
||||
|
||||
TRY.
|
||||
zcx_abapgit_exception=>raise( lc_text2 ).
|
||||
cl_abap_unit_assert=>fail( ).
|
||||
CATCH zcx_abapgit_exception INTO lx_ex.
|
||||
cl_abap_unit_assert=>assert_equals( act = lx_ex->get_text( )
|
||||
exp = zcx_abapgit_exception=>gc_generic_error_msg ).
|
||||
ENDTRY.
|
||||
|
||||
FREE lx_ex.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD test_no_text.
|
||||
DATA: lx_ex TYPE REF TO zcx_abapgit_exception.
|
||||
|
||||
CREATE OBJECT lx_ex.
|
||||
|
||||
cl_abap_unit_assert=>assert_equals( act = lx_ex->get_text( )
|
||||
exp = zcx_abapgit_exception=>gc_generic_error_msg ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD test_t100_text.
|
||||
CONSTANTS: BEGIN OF lc_msg1,
|
||||
msgid TYPE syst_msgid VALUE '00',
|
||||
msgno TYPE syst_msgno VALUE '001',
|
||||
msgv1 TYPE syst_msgv VALUE IS INITIAL,
|
||||
msgv2 TYPE syst_msgv VALUE IS INITIAL,
|
||||
msgv3 TYPE syst_msgv VALUE IS INITIAL,
|
||||
msgv4 TYPE syst_msgv VALUE IS INITIAL,
|
||||
END OF lc_msg1,
|
||||
BEGIN OF lc_msg2,
|
||||
msgid TYPE syst_msgid VALUE '00',
|
||||
msgno TYPE syst_msgno VALUE '001',
|
||||
msgv1 TYPE syst_msgv VALUE 'Variable 1',
|
||||
msgv2 TYPE syst_msgv VALUE IS INITIAL,
|
||||
msgv3 TYPE syst_msgv VALUE IS INITIAL,
|
||||
msgv4 TYPE syst_msgv VALUE IS INITIAL,
|
||||
END OF lc_msg2,
|
||||
BEGIN OF lc_msg3,
|
||||
msgid TYPE syst_msgid VALUE '00',
|
||||
msgno TYPE syst_msgno VALUE '001',
|
||||
msgv1 TYPE syst_msgv VALUE 'Variable 1',
|
||||
msgv2 TYPE syst_msgv VALUE 'Variable 2',
|
||||
msgv3 TYPE syst_msgv VALUE IS INITIAL,
|
||||
msgv4 TYPE syst_msgv VALUE IS INITIAL,
|
||||
END OF lc_msg3,
|
||||
BEGIN OF lc_msg4,
|
||||
msgid TYPE syst_msgid VALUE '00',
|
||||
msgno TYPE syst_msgno VALUE '001',
|
||||
msgv1 TYPE syst_msgv VALUE 'Variable 1',
|
||||
msgv2 TYPE syst_msgv VALUE 'Variable 2',
|
||||
msgv3 TYPE syst_msgv VALUE'Variable 3',
|
||||
msgv4 TYPE syst_msgv VALUE IS INITIAL,
|
||||
END OF lc_msg4,
|
||||
BEGIN OF lc_msg5,
|
||||
msgid TYPE syst_msgid VALUE '00',
|
||||
msgno TYPE syst_msgno VALUE '001',
|
||||
msgv1 TYPE syst_msgv VALUE 'Variable 1',
|
||||
msgv2 TYPE syst_msgv VALUE 'Variable 2',
|
||||
msgv3 TYPE syst_msgv VALUE 'Variable 3',
|
||||
msgv4 TYPE syst_msgv VALUE 'Variable 4',
|
||||
END OF lc_msg5,
|
||||
BEGIN OF lc_msg6,
|
||||
msgid TYPE syst_msgid VALUE '00',
|
||||
msgno TYPE syst_msgno VALUE '003',
|
||||
msgv1 TYPE syst_msgv VALUE 'Variable 1',
|
||||
msgv2 TYPE syst_msgv VALUE 'Variable 2',
|
||||
msgv3 TYPE syst_msgv VALUE 'Variable 3',
|
||||
msgv4 TYPE syst_msgv VALUE 'Variable 4',
|
||||
END OF lc_msg6,
|
||||
BEGIN OF lc_msg7,
|
||||
msgid TYPE syst_msgid VALUE '00',
|
||||
msgno TYPE syst_msgno VALUE '003',
|
||||
msgv1 TYPE syst_msgv VALUE IS INITIAL,
|
||||
msgv2 TYPE syst_msgv VALUE IS INITIAL,
|
||||
msgv3 TYPE syst_msgv VALUE IS INITIAL,
|
||||
msgv4 TYPE syst_msgv VALUE IS INITIAL,
|
||||
END OF lc_msg7,
|
||||
BEGIN OF lc_msg8,
|
||||
msgid TYPE syst_msgid VALUE '00',
|
||||
msgno TYPE syst_msgno VALUE '002',
|
||||
msgv1 TYPE syst_msgv VALUE IS INITIAL,
|
||||
msgv2 TYPE syst_msgv VALUE IS INITIAL,
|
||||
msgv3 TYPE syst_msgv VALUE IS INITIAL,
|
||||
msgv4 TYPE syst_msgv VALUE IS INITIAL,
|
||||
END OF lc_msg8,
|
||||
BEGIN OF lc_msg9,
|
||||
msgid TYPE syst_msgid VALUE '!"(/&&(%!)"(',
|
||||
msgno TYPE syst_msgno VALUE '000',
|
||||
msgv1 TYPE syst_msgv VALUE IS INITIAL,
|
||||
msgv2 TYPE syst_msgv VALUE IS INITIAL,
|
||||
msgv3 TYPE syst_msgv VALUE IS INITIAL,
|
||||
msgv4 TYPE syst_msgv VALUE IS INITIAL,
|
||||
END OF lc_msg9.
|
||||
DATA: lx_ex TYPE REF TO zcx_abapgit_exception,
|
||||
lv_text TYPE string.
|
||||
|
||||
TRY.
|
||||
lv_text = get_t100_text( lc_msg1 ).
|
||||
zcx_abapgit_exception=>raise_t100( ).
|
||||
cl_abap_unit_assert=>fail( ).
|
||||
CATCH zcx_abapgit_exception INTO lx_ex.
|
||||
cl_abap_unit_assert=>assert_equals( act = lx_ex->get_text( ) exp = lv_text ).
|
||||
ENDTRY.
|
||||
|
||||
CLEAR lv_text.
|
||||
FREE lx_ex.
|
||||
|
||||
TRY.
|
||||
lv_text = get_t100_text( lc_msg2 ).
|
||||
zcx_abapgit_exception=>raise_t100( ).
|
||||
cl_abap_unit_assert=>fail( ).
|
||||
CATCH zcx_abapgit_exception INTO lx_ex.
|
||||
cl_abap_unit_assert=>assert_equals( act = lx_ex->get_text( ) exp = lv_text ).
|
||||
ENDTRY.
|
||||
|
||||
CLEAR lv_text.
|
||||
FREE lx_ex.
|
||||
|
||||
TRY.
|
||||
lv_text = get_t100_text( lc_msg3 ).
|
||||
zcx_abapgit_exception=>raise_t100( ).
|
||||
cl_abap_unit_assert=>fail( ).
|
||||
CATCH zcx_abapgit_exception INTO lx_ex.
|
||||
cl_abap_unit_assert=>assert_equals( act = lx_ex->get_text( ) exp = lv_text ).
|
||||
ENDTRY.
|
||||
|
||||
CLEAR lv_text.
|
||||
FREE lx_ex.
|
||||
|
||||
TRY.
|
||||
lv_text = get_t100_text( lc_msg4 ).
|
||||
zcx_abapgit_exception=>raise_t100( ).
|
||||
cl_abap_unit_assert=>fail( ).
|
||||
CATCH zcx_abapgit_exception INTO lx_ex.
|
||||
cl_abap_unit_assert=>assert_equals( act = lx_ex->get_text( ) exp = lv_text ).
|
||||
ENDTRY.
|
||||
|
||||
CLEAR lv_text.
|
||||
FREE lx_ex.
|
||||
|
||||
TRY.
|
||||
lv_text = get_t100_text( lc_msg5 ).
|
||||
zcx_abapgit_exception=>raise_t100( ).
|
||||
cl_abap_unit_assert=>fail( ).
|
||||
CATCH zcx_abapgit_exception INTO lx_ex.
|
||||
cl_abap_unit_assert=>assert_equals( act = lx_ex->get_text( ) exp = lv_text ).
|
||||
ENDTRY.
|
||||
|
||||
CLEAR lv_text.
|
||||
FREE lx_ex.
|
||||
|
||||
TRY.
|
||||
lv_text = get_t100_text( lc_msg6 ).
|
||||
zcx_abapgit_exception=>raise_t100( ).
|
||||
cl_abap_unit_assert=>fail( ).
|
||||
CATCH zcx_abapgit_exception INTO lx_ex.
|
||||
cl_abap_unit_assert=>assert_equals( act = lx_ex->get_text( ) exp = lv_text ).
|
||||
ENDTRY.
|
||||
|
||||
CLEAR lv_text.
|
||||
FREE lx_ex.
|
||||
|
||||
TRY.
|
||||
lv_text = get_t100_text( lc_msg7 ).
|
||||
zcx_abapgit_exception=>raise_t100( ).
|
||||
cl_abap_unit_assert=>fail( ).
|
||||
CATCH zcx_abapgit_exception INTO lx_ex.
|
||||
cl_abap_unit_assert=>assert_equals( act = lx_ex->get_text( ) exp = lv_text ).
|
||||
ENDTRY.
|
||||
|
||||
CLEAR lv_text.
|
||||
FREE lx_ex.
|
||||
|
||||
TRY.
|
||||
lv_text = get_t100_text( lc_msg8 ).
|
||||
zcx_abapgit_exception=>raise_t100( ).
|
||||
cl_abap_unit_assert=>fail( ).
|
||||
CATCH zcx_abapgit_exception INTO lx_ex.
|
||||
cl_abap_unit_assert=>assert_equals( act = lx_ex->get_text( ) exp = lv_text ).
|
||||
ENDTRY.
|
||||
|
||||
CLEAR lv_text.
|
||||
FREE lx_ex.
|
||||
|
||||
TRY.
|
||||
lv_text = get_t100_text( lc_msg9 ).
|
||||
zcx_abapgit_exception=>raise_t100( ).
|
||||
cl_abap_unit_assert=>fail( ).
|
||||
CATCH zcx_abapgit_exception INTO lx_ex.
|
||||
cl_abap_unit_assert=>assert_equals( act = lx_ex->get_text( )
|
||||
exp = zcx_abapgit_exception=>gc_generic_error_msg ).
|
||||
ENDTRY.
|
||||
|
||||
CLEAR lv_text.
|
||||
FREE lx_ex.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_t100_text.
|
||||
MESSAGE ID is_message-msgid TYPE 'S' NUMBER is_message-msgno
|
||||
WITH is_message-msgv1 is_message-msgv2 is_message-msgv3 is_message-msgv4
|
||||
INTO rv_text.
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
|
@ -13,6 +13,7 @@
|
|||
<CLSCCINCL>X</CLSCCINCL>
|
||||
<FIXPT>X</FIXPT>
|
||||
<UNICODE>X</UNICODE>
|
||||
<WITH_UNIT_TESTS>X</WITH_UNIT_TESTS>
|
||||
</VSEOCLASS>
|
||||
<DESCRIPTIONS>
|
||||
<SEOCOMPOTX>
|
||||
|
|
Loading…
Reference in New Issue
Block a user