ajson, Automatic Update (#6844)

Co-authored-by: larshp <larshp@users.noreply.github.com>
Co-authored-by: Lars Hvam <larshp@hotmail.com>
This commit is contained in:
github-actions[bot] 2024-03-11 06:41:43 +01:00 committed by GitHub
parent f7d2384e16
commit 6183f2d30d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 41 additions and 6 deletions

View File

@ -992,12 +992,19 @@ CLASS lcl_json_to_abap IMPLEMENTATION.
WHEN zif_abapgit_ajson_types=>node_type-string.
" TODO: check type ?
IF is_node_type-type_kind = lif_kind=>date AND is_node-value IS NOT INITIAL.
IF is_node-value IS NOT INITIAL.
IF is_node_type-type_kind = lif_kind=>date.
<container> = to_date( is_node-value ).
ELSEIF is_node_type-type_kind = lif_kind=>time AND is_node-value IS NOT INITIAL.
ELSEIF is_node_type-type_kind = lif_kind=>time.
<container> = to_time( is_node-value ).
ELSEIF is_node_type-type_kind = lif_kind=>packed AND is_node-value IS NOT INITIAL.
ELSEIF is_node_type-dd->absolute_name = '\TYPE=TIMESTAMP'
OR is_node_type-dd->absolute_name = '\TYPE=TIMESTAMPL'.
<container> = to_timestamp( is_node-value ).
ELSEIF is_node_type-type_kind = lif_kind=>packed. " Number as a string, but not a timestamp
<container> = is_node-value.
ELSE.
<container> = is_node-value.
ENDIF.
ELSE.
<container> = is_node-value.
ENDIF.

View File

@ -1409,6 +1409,7 @@ CLASS ltcl_json_to_abap DEFINITION
timestamp1 TYPE timestamp,
timestamp2 TYPE timestamp,
timestamp3 TYPE timestamp,
timestamp4 TYPE timestampl,
END OF ty_complex.
METHODS to_abap_struc
@ -1462,6 +1463,9 @@ CLASS ltcl_json_to_abap DEFINITION
METHODS to_abap_time
FOR TESTING
RAISING cx_static_check.
METHODS to_abap_str_to_packed
FOR TESTING
RAISING cx_static_check.
ENDCLASS.
CLASS zcl_abapgit_ajson DEFINITION LOCAL FRIENDS ltcl_json_to_abap.
@ -1491,6 +1495,7 @@ CLASS ltcl_json_to_abap IMPLEMENTATION.
lo_nodes->add( '/ |timestamp1 |str |2020-07-28T00:00:00 | ' ).
lo_nodes->add( '/ |timestamp2 |str |2020-07-28T00:00:00Z | ' ).
lo_nodes->add( '/ |timestamp3 |str |2020-07-28T01:00:00+01:00 | ' ).
lo_nodes->add( '/ |timestamp4 |str |2020-07-28T01:00:00+01:00 | ' ).
CREATE OBJECT lo_cut.
lo_cut->to_abap(
@ -1509,6 +1514,7 @@ CLASS ltcl_json_to_abap IMPLEMENTATION.
ls_exp-timestamp1 = lv_exp_timestamp.
ls_exp-timestamp2 = lv_exp_timestamp.
ls_exp-timestamp3 = lv_exp_timestamp.
ls_exp-timestamp4 = lv_exp_timestamp.
cl_abap_unit_assert=>assert_equals(
act = ls_mock
@ -1576,6 +1582,28 @@ CLASS ltcl_json_to_abap IMPLEMENTATION.
ENDMETHOD.
METHOD to_abap_str_to_packed.
DATA lo_cut TYPE REF TO lcl_json_to_abap.
DATA lv_act TYPE p LENGTH 10 DECIMALS 3.
DATA lo_nodes TYPE REF TO lcl_nodes_helper.
CREATE OBJECT lo_nodes.
lo_nodes->add( ' | |str |1.3333 | ' ).
CREATE OBJECT lo_cut.
lo_cut->to_abap(
EXPORTING
it_nodes = lo_nodes->sorted( )
CHANGING
c_container = lv_act ).
cl_abap_unit_assert=>assert_equals(
act = lv_act
exp = '1.333' ).
ENDMETHOD.
METHOD to_abap_value.
DATA lo_cut TYPE REF TO lcl_json_to_abap.