From 9d1e14a90dc13aff287e1ae7736206abaa8738ff Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 2 Aug 2021 06:57:22 +0200 Subject: [PATCH] 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 Co-authored-by: Lars Hvam --- .github/workflows/ajson_mirror.yaml | 2 +- .../zcl_abapgit_ajson.clas.locals_imp.abap | 4 +- .../zcl_abapgit_ajson.clas.testclasses.abap | 59 +++++++++++++++++++ test/abap_transpile.json | 4 +- 4 files changed, 66 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ajson_mirror.yaml b/.github/workflows/ajson_mirror.yaml index ab4af5386..7c6b7a668 100644 --- a/.github/workflows/ajson_mirror.yaml +++ b/.github/workflows/ajson_mirror.yaml @@ -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 diff --git a/src/json/zcl_abapgit_ajson.clas.locals_imp.abap b/src/json/zcl_abapgit_ajson.clas.locals_imp.abap index 565f74f1e..d91a7f474 100644 --- a/src/json/zcl_abapgit_ajson.clas.locals_imp.abap +++ b/src/json/zcl_abapgit_ajson.clas.locals_imp.abap @@ -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. diff --git a/src/json/zcl_abapgit_ajson.clas.testclasses.abap b/src/json/zcl_abapgit_ajson.clas.testclasses.abap index 01e44e8b8..372dac1b9 100644 --- a/src/json/zcl_abapgit_ajson.clas.testclasses.abap +++ b/src/json/zcl_abapgit_ajson.clas.testclasses.abap @@ -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' ). diff --git a/test/abap_transpile.json b/test/abap_transpile.json index bf65e8231..5bad6ec58 100644 --- a/test/abap_transpile.json +++ b/test/abap_transpile.json @@ -189,6 +189,8 @@ {"object": "ZCL_ABAPGIT_AJSON", "class": "ltcl_writer_test", "method": "read_only"}, {"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"}, @@ -259,4 +261,4 @@ {"object": "ZCL_ABAPGIT_DOT_ABAPGIT", "class": "ltcl_dot_abapgit", "method": "identity"} ] } -} \ No newline at end of file +}