mirror of
https://github.com/abapGit/abapGit.git
synced 2025-04-30 20:03:20 +08:00
ajson, Automatic Update (#4888)
* [create-pull-request] automated change * Update zcl_abapgit_ajson.clas.locals_imp.abap * Update zcl_abapgit_ajson.clas.locals_imp.abap * Update ajson_mirror.yaml * skip parse_bare_values Co-authored-by: larshp <larshp@users.noreply.github.com> Co-authored-by: Lars Hvam <larshp@hotmail.com>
This commit is contained in:
parent
a85ffb83d0
commit
9d1e14a90d
2
.github/workflows/ajson_mirror.yaml
vendored
2
.github/workflows/ajson_mirror.yaml
vendored
|
@ -33,4 +33,4 @@ jobs:
|
|||
Automatic update from mirror
|
||||
https://github.com/abapGit/ajson_mirror
|
||||
|
||||
Manually close and reopen the pull request to trigger CI
|
||||
Make manual change to trigger CI
|
||||
|
|
|
@ -142,7 +142,9 @@ CLASS lcl_json_parser IMPLEMENTATION.
|
|||
TRY.
|
||||
rt_json_tree = _parse( iv_json ).
|
||||
CATCH cx_sxml_error INTO lx_sxml.
|
||||
zcx_abapgit_ajson_error=>raise( `SXML: ` && lx_sxml->get_text( ) ).
|
||||
zcx_abapgit_ajson_error=>raise(
|
||||
iv_msg = |Json parsing error (SXML): { lx_sxml->get_text( ) }|
|
||||
iv_location = '@PARSER' ).
|
||||
ENDTRY.
|
||||
ENDMETHOD.
|
||||
|
||||
|
|
|
@ -10,6 +10,7 @@ CLASS lcl_nodes_helper DEFINITION FINAL.
|
|||
METHODS add
|
||||
IMPORTING
|
||||
iv_str TYPE string.
|
||||
METHODS clear.
|
||||
METHODS sorted
|
||||
RETURNING
|
||||
VALUE(rt_nodes) TYPE zif_abapgit_ajson=>ty_nodes_ts.
|
||||
|
@ -47,6 +48,10 @@ CLASS lcl_nodes_helper IMPLEMENTATION.
|
|||
METHOD sorted.
|
||||
rt_nodes = mt_nodes.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD clear.
|
||||
CLEAR mt_nodes.
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
|
||||
**********************************************************************
|
||||
|
@ -79,6 +84,7 @@ CLASS ltcl_parser_test DEFINITION FINAL
|
|||
METHODS parse_false FOR TESTING RAISING zcx_abapgit_ajson_error.
|
||||
METHODS parse_null FOR TESTING RAISING zcx_abapgit_ajson_error.
|
||||
METHODS parse_date FOR TESTING RAISING zcx_abapgit_ajson_error.
|
||||
METHODS parse_bare_values FOR TESTING RAISING zcx_abapgit_ajson_error.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
|
@ -89,6 +95,59 @@ CLASS ltcl_parser_test IMPLEMENTATION.
|
|||
CREATE OBJECT mo_nodes.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD parse_bare_values.
|
||||
|
||||
DATA lt_act TYPE zif_abapgit_ajson=>ty_nodes_tt.
|
||||
|
||||
mo_nodes->add( ' | |str |abc | |0' ).
|
||||
lt_act = mo_cut->parse( '"abc"' ).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lt_act
|
||||
exp = mo_nodes->mt_nodes ).
|
||||
|
||||
mo_nodes->clear( ).
|
||||
mo_nodes->add( ' | |num |-123 | |0' ).
|
||||
lt_act = mo_cut->parse( '-123' ).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lt_act
|
||||
exp = mo_nodes->mt_nodes ).
|
||||
|
||||
mo_nodes->clear( ).
|
||||
mo_nodes->add( ' | |bool |true | |0' ).
|
||||
lt_act = mo_cut->parse( 'true' ).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lt_act
|
||||
exp = mo_nodes->mt_nodes ).
|
||||
|
||||
mo_nodes->clear( ).
|
||||
mo_nodes->add( ' | |bool |false | |0' ).
|
||||
lt_act = mo_cut->parse( 'false' ).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lt_act
|
||||
exp = mo_nodes->mt_nodes ).
|
||||
|
||||
mo_nodes->clear( ).
|
||||
mo_nodes->add( ' | |null | | |0' ).
|
||||
lt_act = mo_cut->parse( 'null' ).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lt_act
|
||||
exp = mo_nodes->mt_nodes ).
|
||||
|
||||
DATA lx_err TYPE REF TO zcx_abapgit_ajson_error.
|
||||
TRY.
|
||||
lt_act = mo_cut->parse( 'abc' ).
|
||||
cl_abap_unit_assert=>fail( 'Parsing of string w/o quotes must fail (spec)' ).
|
||||
CATCH zcx_abapgit_ajson_error INTO lx_err.
|
||||
cl_abap_unit_assert=>assert_char_cp(
|
||||
act = lx_err->get_text( )
|
||||
exp = '*parsing error*' ).
|
||||
cl_abap_unit_assert=>assert_char_cp(
|
||||
act = lx_err->location
|
||||
exp = '@PARSER' ).
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD parse_string.
|
||||
mo_nodes->add( ' | |object | | |1' ).
|
||||
mo_nodes->add( '/ |string |str |abc | |0' ).
|
||||
|
|
|
@ -190,6 +190,8 @@
|
|||
{"object": "ZCL_ABAPGIT_AJSON", "class": "ltcl_writer_test", "method": "set_array_obj"},
|
||||
{"object": "ZCL_ABAPGIT_AJSON", "class": "ltcl_writer_test", "method": "set_with_type"},
|
||||
|
||||
{"object": "ZCL_ABAPGIT_AJSON", "class": "ltcl_parser_test", "method": "parse_bare_values"},
|
||||
|
||||
{"object": "ZCL_ABAPGIT_AJSON", "class": "ltcl_integrated", "method": "reader"},
|
||||
{"object": "ZCL_ABAPGIT_AJSON", "class": "ltcl_integrated", "method": "array_index"},
|
||||
{"object": "ZCL_ABAPGIT_AJSON", "class": "ltcl_integrated", "method": "array_simple"},
|
||||
|
|
Loading…
Reference in New Issue
Block a user