mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 12:20:51 +08:00
Fix message helper (#3482)
* Fix message helper Split text didn't work if message has space at offset 51 * Add unit tests
This commit is contained in:
parent
256fdbeec4
commit
91f25304ce
|
@ -4,34 +4,31 @@ CLASS zcl_abapgit_message_helper DEFINITION
|
||||||
CREATE PUBLIC .
|
CREATE PUBLIC .
|
||||||
|
|
||||||
PUBLIC SECTION.
|
PUBLIC SECTION.
|
||||||
|
|
||||||
CONSTANTS:
|
CONSTANTS:
|
||||||
BEGIN OF gc_section_text,
|
BEGIN OF gc_section_text,
|
||||||
cause TYPE string VALUE `Cause`,
|
cause TYPE string VALUE `Cause`,
|
||||||
system_response TYPE string VALUE `System response`,
|
system_response TYPE string VALUE `System response`,
|
||||||
what_to_do TYPE string VALUE `Procedure`,
|
what_to_do TYPE string VALUE `Procedure`,
|
||||||
sys_admin TYPE string VALUE `System administration`,
|
sys_admin TYPE string VALUE `System administration`,
|
||||||
END OF gc_section_text,
|
END OF gc_section_text .
|
||||||
|
CONSTANTS:
|
||||||
BEGIN OF gc_section_token,
|
BEGIN OF gc_section_token,
|
||||||
cause TYPE string VALUE `&CAUSE&`,
|
cause TYPE string VALUE `&CAUSE&`,
|
||||||
system_response TYPE string VALUE `&SYSTEM_RESPONSE&`,
|
system_response TYPE string VALUE `&SYSTEM_RESPONSE&`,
|
||||||
what_to_do TYPE string VALUE `&WHAT_TO_DO&`,
|
what_to_do TYPE string VALUE `&WHAT_TO_DO&`,
|
||||||
sys_admin TYPE string VALUE `&SYS_ADMIN&`,
|
sys_admin TYPE string VALUE `&SYS_ADMIN&`,
|
||||||
END OF gc_section_token.
|
END OF gc_section_token .
|
||||||
|
|
||||||
CLASS-METHODS:
|
|
||||||
set_msg_vars_for_clike
|
|
||||||
IMPORTING
|
|
||||||
iv_text TYPE string.
|
|
||||||
|
|
||||||
METHODS:
|
|
||||||
constructor
|
|
||||||
IMPORTING
|
|
||||||
ii_t100_message TYPE REF TO if_t100_message,
|
|
||||||
|
|
||||||
get_t100_longtext
|
|
||||||
RETURNING
|
|
||||||
VALUE(rv_longtext) TYPE string.
|
|
||||||
|
|
||||||
|
CLASS-METHODS set_msg_vars_for_clike
|
||||||
|
IMPORTING
|
||||||
|
!iv_text TYPE string .
|
||||||
|
METHODS constructor
|
||||||
|
IMPORTING
|
||||||
|
!ii_t100_message TYPE REF TO if_t100_message .
|
||||||
|
METHODS get_t100_longtext
|
||||||
|
RETURNING
|
||||||
|
VALUE(rv_longtext) TYPE string .
|
||||||
PROTECTED SECTION.
|
PROTECTED SECTION.
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
TYPES:
|
TYPES:
|
||||||
|
@ -363,7 +360,8 @@ CLASS ZCL_ABAPGIT_MESSAGE_HELPER IMPLEMENTATION.
|
||||||
line = lv_msg_var
|
line = lv_msg_var
|
||||||
rest = lv_rest.
|
rest = lv_rest.
|
||||||
|
|
||||||
IF lv_msg_var+lc_offset_of_last_character = space.
|
IF lv_msg_var+lc_offset_of_last_character(1) = space OR
|
||||||
|
lv_text+lc_length_of_msgv(1) = space.
|
||||||
" keep the space at the beginning of the rest
|
" keep the space at the beginning of the rest
|
||||||
" because otherwise it's lost
|
" because otherwise it's lost
|
||||||
lv_rest = | { lv_rest }|.
|
lv_rest = | { lv_rest }|.
|
||||||
|
|
106
src/zcl_abapgit_message_helper.clas.testclasses.abap
Normal file
106
src/zcl_abapgit_message_helper.clas.testclasses.abap
Normal file
|
@ -0,0 +1,106 @@
|
||||||
|
CLASS ltcl_test 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_test 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.
|
||||||
|
|
||||||
|
zcl_abapgit_message_helper=>set_msg_vars_for_clike( 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.
|
|
@ -10,6 +10,7 @@
|
||||||
<CLSCCINCL>X</CLSCCINCL>
|
<CLSCCINCL>X</CLSCCINCL>
|
||||||
<FIXPT>X</FIXPT>
|
<FIXPT>X</FIXPT>
|
||||||
<UNICODE>X</UNICODE>
|
<UNICODE>X</UNICODE>
|
||||||
|
<WITH_UNIT_TESTS>X</WITH_UNIT_TESTS>
|
||||||
</VSEOCLASS>
|
</VSEOCLASS>
|
||||||
</asx:values>
|
</asx:values>
|
||||||
</asx:abap>
|
</asx:abap>
|
||||||
|
|
Loading…
Reference in New Issue
Block a user