mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-02 04:36:49 +08:00
452 lines
15 KiB
ABAP
452 lines
15 KiB
ABAP
CLASS ltcl_test DEFINITION DEFERRED.
|
|
CLASS ltcl_split_text DEFINITION DEFERRED.
|
|
CLASS zcx_abapgit_exception DEFINITION LOCAL FRIENDS ltcl_test ltcl_split_text.
|
|
|
|
CLASS ltcl_test DEFINITION
|
|
FOR TESTING
|
|
DURATION SHORT
|
|
RISK LEVEL HARMLESS.
|
|
|
|
PUBLIC SECTION.
|
|
METHODS:
|
|
test_direct_text FOR TESTING,
|
|
test_t100_text1 FOR TESTING,
|
|
test_t100_text2 FOR TESTING,
|
|
test_t100_text3 FOR TESTING,
|
|
test_t100_text4 FOR TESTING,
|
|
test_t100_text5 FOR TESTING,
|
|
test_t100_text6 FOR TESTING,
|
|
test_t100_text7 FOR TESTING,
|
|
test_t100_text8 FOR TESTING,
|
|
test_no_text FOR TESTING.
|
|
PROTECTED SECTION.
|
|
PRIVATE SECTION.
|
|
TYPES:
|
|
BEGIN OF ty_t100_message,
|
|
msgid TYPE symsgid,
|
|
msgno TYPE symsgno,
|
|
msgv1 TYPE symsgv,
|
|
msgv2 TYPE symsgv,
|
|
msgv3 TYPE symsgv,
|
|
msgv4 TYPE symsgv,
|
|
END OF ty_t100_message.
|
|
CLASS-METHODS:
|
|
get_exc_text IMPORTING ix_ex TYPE REF TO cx_root
|
|
RETURNING VALUE(rv_text) TYPE string,
|
|
get_t100_text IMPORTING is_message TYPE ty_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.
|
|
|
|
TRY.
|
|
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'.
|
|
|
|
zcx_abapgit_exception=>raise( iv_text = lx_previous->get_text( )
|
|
ix_previous = lx_previous ).
|
|
cl_abap_unit_assert=>fail( ).
|
|
|
|
CATCH zcx_abapgit_exception INTO lx_ex.
|
|
cl_abap_unit_assert=>assert_equals( act = get_exc_text( lx_ex )
|
|
exp = lx_previous->get_text( ) ).
|
|
cl_abap_unit_assert=>assert_equals( act = lx_ex->previous
|
|
exp = lx_previous ).
|
|
ENDTRY.
|
|
|
|
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 = get_exc_text( lx_ex )
|
|
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 = get_exc_text( lx_ex )
|
|
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.
|
|
|
|
TRY.
|
|
zcx_abapgit_exception=>raise( space ).
|
|
cl_abap_unit_assert=>fail( ).
|
|
CATCH zcx_abapgit_exception INTO lx_ex.
|
|
cl_abap_unit_assert=>assert_equals(
|
|
act = get_exc_text( lx_ex )
|
|
exp = zcx_abapgit_exception=>gc_generic_error_msg ).
|
|
ENDTRY.
|
|
ENDMETHOD.
|
|
|
|
METHOD test_t100_text1.
|
|
CONSTANTS: BEGIN OF lc_msg1,
|
|
msgid TYPE symsgid VALUE '00',
|
|
msgno TYPE symsgno VALUE '001',
|
|
msgv1 TYPE symsgv VALUE IS INITIAL,
|
|
msgv2 TYPE symsgv VALUE IS INITIAL,
|
|
msgv3 TYPE symsgv VALUE IS INITIAL,
|
|
msgv4 TYPE symsgv VALUE IS INITIAL,
|
|
END OF lc_msg1.
|
|
|
|
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 = get_exc_text( lx_ex )
|
|
exp = lv_text ).
|
|
ENDTRY.
|
|
ENDMETHOD.
|
|
|
|
|
|
METHOD test_t100_text2.
|
|
CONSTANTS: BEGIN OF lc_msg2,
|
|
msgid TYPE symsgid VALUE '00',
|
|
msgno TYPE symsgno VALUE '001',
|
|
msgv1 TYPE symsgv VALUE 'Variable 1',
|
|
msgv2 TYPE symsgv VALUE IS INITIAL,
|
|
msgv3 TYPE symsgv VALUE IS INITIAL,
|
|
msgv4 TYPE symsgv VALUE IS INITIAL,
|
|
END OF lc_msg2.
|
|
|
|
DATA: lx_ex TYPE REF TO zcx_abapgit_exception,
|
|
lv_text TYPE string.
|
|
|
|
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 = get_exc_text( lx_ex )
|
|
exp = lv_text ).
|
|
ENDTRY.
|
|
|
|
ENDMETHOD.
|
|
|
|
METHOD test_t100_text3.
|
|
CONSTANTS: BEGIN OF lc_msg3,
|
|
msgid TYPE symsgid VALUE '00',
|
|
msgno TYPE symsgno VALUE '001',
|
|
msgv1 TYPE symsgv VALUE 'Variable 1',
|
|
msgv2 TYPE symsgv VALUE 'Variable 2',
|
|
msgv3 TYPE symsgv VALUE IS INITIAL,
|
|
msgv4 TYPE symsgv VALUE IS INITIAL,
|
|
END OF lc_msg3.
|
|
|
|
DATA: lx_ex TYPE REF TO zcx_abapgit_exception,
|
|
lv_text TYPE string.
|
|
|
|
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 = get_exc_text( lx_ex )
|
|
exp = lv_text ).
|
|
ENDTRY.
|
|
|
|
ENDMETHOD.
|
|
|
|
METHOD test_t100_text4.
|
|
CONSTANTS: BEGIN OF lc_msg4,
|
|
msgid TYPE symsgid VALUE '00',
|
|
msgno TYPE symsgno VALUE '001',
|
|
msgv1 TYPE symsgv VALUE 'Variable 1',
|
|
msgv2 TYPE symsgv VALUE 'Variable 2',
|
|
msgv3 TYPE symsgv VALUE 'Variable 3',
|
|
msgv4 TYPE symsgv VALUE IS INITIAL,
|
|
END OF lc_msg4.
|
|
|
|
DATA: lx_ex TYPE REF TO zcx_abapgit_exception,
|
|
lv_text TYPE string.
|
|
|
|
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 = get_exc_text( lx_ex )
|
|
exp = lv_text ).
|
|
ENDTRY.
|
|
|
|
ENDMETHOD.
|
|
|
|
METHOD test_t100_text5.
|
|
CONSTANTS: BEGIN OF lc_msg5,
|
|
msgid TYPE symsgid VALUE '00',
|
|
msgno TYPE symsgno VALUE '001',
|
|
msgv1 TYPE symsgv VALUE 'Variable 1',
|
|
msgv2 TYPE symsgv VALUE 'Variable 2',
|
|
msgv3 TYPE symsgv VALUE 'Variable 3',
|
|
msgv4 TYPE symsgv VALUE 'Variable 4',
|
|
END OF lc_msg5.
|
|
|
|
DATA: lx_ex TYPE REF TO zcx_abapgit_exception,
|
|
lv_text TYPE string.
|
|
|
|
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 = get_exc_text( lx_ex )
|
|
exp = lv_text ).
|
|
ENDTRY.
|
|
|
|
ENDMETHOD.
|
|
|
|
METHOD test_t100_text6.
|
|
CONSTANTS: BEGIN OF lc_msg6,
|
|
msgid TYPE symsgid VALUE '00',
|
|
msgno TYPE symsgno VALUE '003',
|
|
msgv1 TYPE symsgv VALUE 'Variable 1',
|
|
msgv2 TYPE symsgv VALUE 'Variable 2',
|
|
msgv3 TYPE symsgv VALUE 'Variable 3',
|
|
msgv4 TYPE symsgv VALUE 'Variable 4',
|
|
END OF lc_msg6.
|
|
|
|
DATA: lx_ex TYPE REF TO zcx_abapgit_exception,
|
|
lv_text TYPE string.
|
|
|
|
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 = get_exc_text( lx_ex )
|
|
exp = lv_text ).
|
|
ENDTRY.
|
|
|
|
ENDMETHOD.
|
|
|
|
METHOD test_t100_text7.
|
|
CONSTANTS: BEGIN OF lc_msg7,
|
|
msgid TYPE symsgid VALUE '00',
|
|
msgno TYPE symsgno VALUE '003',
|
|
msgv1 TYPE symsgv VALUE IS INITIAL,
|
|
msgv2 TYPE symsgv VALUE IS INITIAL,
|
|
msgv3 TYPE symsgv VALUE IS INITIAL,
|
|
msgv4 TYPE symsgv VALUE IS INITIAL,
|
|
END OF lc_msg7.
|
|
|
|
DATA: lx_ex TYPE REF TO zcx_abapgit_exception,
|
|
lv_text TYPE string.
|
|
|
|
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 = get_exc_text( lx_ex )
|
|
exp = lv_text ).
|
|
ENDTRY.
|
|
|
|
ENDMETHOD.
|
|
|
|
METHOD test_t100_text8.
|
|
CONSTANTS: BEGIN OF lc_msg8,
|
|
msgid TYPE symsgid VALUE '00',
|
|
msgno TYPE symsgno VALUE '002',
|
|
msgv1 TYPE symsgv VALUE IS INITIAL,
|
|
msgv2 TYPE symsgv VALUE IS INITIAL,
|
|
msgv3 TYPE symsgv VALUE IS INITIAL,
|
|
msgv4 TYPE symsgv VALUE IS INITIAL,
|
|
END OF lc_msg8.
|
|
|
|
DATA: lx_ex TYPE REF TO zcx_abapgit_exception,
|
|
lv_text TYPE string.
|
|
|
|
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 = get_exc_text( lx_ex )
|
|
exp = lv_text ).
|
|
ENDTRY.
|
|
|
|
ENDMETHOD.
|
|
|
|
METHOD get_exc_text.
|
|
rv_text = ix_ex->get_text( ).
|
|
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.
|
|
|
|
CLASS ltcl_get_t100_longtext DEFINITION FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
|
|
|
|
PUBLIC SECTION.
|
|
METHODS test01 FOR TESTING.
|
|
|
|
ENDCLASS.
|
|
|
|
CLASS ltcl_get_t100_longtext IMPLEMENTATION.
|
|
|
|
METHOD test01.
|
|
|
|
DATA: lx_err TYPE REF TO zcx_abapgit_exception,
|
|
lv_dummy TYPE string,
|
|
lv_result TYPE string.
|
|
|
|
TRY.
|
|
MESSAGE e058(00) WITH 'Value_1' 'Value_2' 'Value_3' 'Value_4' INTO lv_dummy.
|
|
zcx_abapgit_exception=>raise_t100( ).
|
|
CATCH zcx_abapgit_exception INTO lx_err.
|
|
lv_result = lx_err->get_longtext( ).
|
|
ENDTRY.
|
|
|
|
cl_abap_unit_assert=>assert_not_initial( lv_result ).
|
|
|
|
IF lv_result NS 'Value_1'.
|
|
cl_abap_unit_assert=>fail( ).
|
|
ENDIF.
|
|
IF lv_result NS 'Value_2'.
|
|
cl_abap_unit_assert=>fail( ).
|
|
ENDIF.
|
|
IF lv_result NS 'Value_3'.
|
|
cl_abap_unit_assert=>fail( ).
|
|
ENDIF.
|
|
IF lv_result NS 'Value_4'.
|
|
cl_abap_unit_assert=>fail( ).
|
|
ENDIF.
|
|
|
|
ENDMETHOD.
|
|
|
|
ENDCLASS.
|
|
|
|
CLASS ltcl_split_text DEFINITION
|
|
FOR TESTING
|
|
DURATION SHORT
|
|
RISK LEVEL HARMLESS.
|
|
|
|
PUBLIC SECTION.
|
|
METHODS:
|
|
test_set_msg_b FOR TESTING,
|
|
test_set_msg_c FOR TESTING,
|
|
test_set_msg_d FOR TESTING,
|
|
test_set_msg_e FOR TESTING,
|
|
test_set_msg_z FOR TESTING.
|
|
PROTECTED SECTION.
|
|
PRIVATE SECTION.
|
|
TYPES:
|
|
BEGIN OF ty_msg,
|
|
v1 TYPE sy-msgv1,
|
|
v2 TYPE sy-msgv2,
|
|
v3 TYPE sy-msgv3,
|
|
v4 TYPE sy-msgv4,
|
|
END OF ty_msg.
|
|
CLASS-METHODS:
|
|
test_set_msg_vars
|
|
IMPORTING
|
|
iv_text TYPE string
|
|
is_msg TYPE ty_msg.
|
|
ENDCLASS.
|
|
|
|
CLASS ltcl_split_text IMPLEMENTATION.
|
|
METHOD test_set_msg_b.
|
|
CONSTANTS:
|
|
lc_text_b TYPE string VALUE '0123456789012345678901234567890123456789012345678 0123456789',
|
|
BEGIN OF lc_msg_b,
|
|
v1 TYPE sy-msgv1 VALUE '0123456789012345678901234567890123456789012345678',
|
|
v2 TYPE sy-msgv2 VALUE ' 0123456789',
|
|
v3 TYPE sy-msgv3 VALUE '',
|
|
v4 TYPE sy-msgv4 VALUE '',
|
|
END OF lc_msg_b.
|
|
test_set_msg_vars( iv_text = lc_text_b
|
|
is_msg = lc_msg_b ).
|
|
ENDMETHOD.
|
|
METHOD test_set_msg_c.
|
|
CONSTANTS:
|
|
lc_text_c TYPE string VALUE '01234567890123456789012345678901234567890123456789 123456789',
|
|
BEGIN OF lc_msg_c,
|
|
v1 TYPE sy-msgv1 VALUE '01234567890123456789012345678901234567890123456789',
|
|
v2 TYPE sy-msgv2 VALUE ' 123456789',
|
|
v3 TYPE sy-msgv3 VALUE '',
|
|
v4 TYPE sy-msgv4 VALUE '',
|
|
END OF lc_msg_c.
|
|
test_set_msg_vars( iv_text = lc_text_c
|
|
is_msg = lc_msg_c ).
|
|
ENDMETHOD.
|
|
METHOD test_set_msg_d.
|
|
CONSTANTS:
|
|
lc_text_d TYPE string VALUE '012345678901234567890123456789012345678901234567890 23456789',
|
|
BEGIN OF lc_msg_d,
|
|
v1 TYPE sy-msgv1 VALUE '01234567890123456789012345678901234567890123456789',
|
|
v2 TYPE sy-msgv2 VALUE '0 23456789',
|
|
v3 TYPE sy-msgv3 VALUE '',
|
|
v4 TYPE sy-msgv4 VALUE '',
|
|
END OF lc_msg_d.
|
|
test_set_msg_vars( iv_text = lc_text_d
|
|
is_msg = lc_msg_d ).
|
|
ENDMETHOD.
|
|
METHOD test_set_msg_e.
|
|
CONSTANTS:
|
|
lc_text_e TYPE string VALUE '012345678901234567890123456789012345678901234567890123456789',
|
|
BEGIN OF lc_msg_e,
|
|
v1 TYPE sy-msgv1 VALUE '01234567890123456789012345678901234567890123456789',
|
|
v2 TYPE sy-msgv2 VALUE '0123456789',
|
|
v3 TYPE sy-msgv3 VALUE '',
|
|
v4 TYPE sy-msgv4 VALUE '',
|
|
END OF lc_msg_e.
|
|
test_set_msg_vars( iv_text = lc_text_e
|
|
is_msg = lc_msg_e ).
|
|
ENDMETHOD.
|
|
METHOD test_set_msg_z.
|
|
CONSTANTS:
|
|
lc_text_x TYPE string VALUE `Here is a very long text more than 200 characters and we have to invent `,
|
|
lc_text_y TYPE string VALUE `a nice story about abapGit to fill this long message. abapGit is simply `,
|
|
lc_text_z TYPE string VALUE `the greatest! #abapGit #awesome #community #opensource`,
|
|
BEGIN OF lc_msg_z,
|
|
v1 TYPE sy-msgv1 VALUE `Here is a very long text more than 200 characters`,
|
|
v2 TYPE sy-msgv2 VALUE ` and we have to invent a nice story about abapGit`,
|
|
v3 TYPE sy-msgv3 VALUE ` to fill this long message. abapGit is simply the`,
|
|
v4 TYPE sy-msgv4 VALUE ` greatest! #abapGit #awesome #community`,
|
|
END OF lc_msg_z.
|
|
test_set_msg_vars( iv_text = lc_text_x && lc_text_y && lc_text_z
|
|
is_msg = lc_msg_z ).
|
|
ENDMETHOD.
|
|
METHOD test_set_msg_vars.
|
|
|
|
zcx_abapgit_exception=>split_text_to_symsg( iv_text ).
|
|
|
|
cl_abap_unit_assert=>assert_equals( act = sy-msgv1
|
|
exp = is_msg-v1 ).
|
|
cl_abap_unit_assert=>assert_equals( act = sy-msgv2
|
|
exp = is_msg-v2 ).
|
|
cl_abap_unit_assert=>assert_equals( act = sy-msgv3
|
|
exp = is_msg-v3 ).
|
|
cl_abap_unit_assert=>assert_equals( act = sy-msgv4
|
|
exp = is_msg-v4 ).
|
|
|
|
ENDMETHOD.
|
|
ENDCLASS.
|