abapGit/src/data/zcl_abapgit_data_config.clas.testclasses.abap
Lars Hvam 773f2f7749
refactor, extract git definitions to git (#6029)
Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>
2023-02-03 11:46:00 +01:00

106 lines
2.5 KiB
ABAP

CLASS ltcl_test DEFINITION FOR TESTING DURATION SHORT RISK LEVEL HARMLESS FINAL.
PRIVATE SECTION.
DATA mv_json TYPE string.
DATA ms_config TYPE zif_abapgit_data_config=>ty_config.
METHODS setup.
METHODS double_add_config FOR TESTING RAISING cx_static_check.
METHODS to_json FOR TESTING RAISING cx_static_check.
METHODS from_json
IMPORTING it_files TYPE zif_abapgit_git_definitions=>ty_files_tt
RAISING cx_static_check.
ENDCLASS.
CLASS ltcl_test IMPLEMENTATION.
METHOD setup.
mv_json = |\{\n| &&
| "name": "DUMMY",\n| &&
| "skip_initial": false,\n| &&
| "type": "TABU",\n| &&
| "where": [\n| &&
| "DUMMY"\n| &&
| ]\n| &&
|\}|.
ms_config-type = zif_abapgit_data_config=>c_data_type-tabu.
ms_config-name = 'DUMMY'.
APPEND 'DUMMY' TO ms_config-where.
ENDMETHOD.
METHOD double_add_config.
DATA li_config TYPE REF TO zif_abapgit_data_config.
DATA ls_config TYPE zif_abapgit_data_config=>ty_config.
CREATE OBJECT li_config TYPE zcl_abapgit_data_config.
ls_config-name = 'HELLO'.
ls_config-type = zif_abapgit_data_config=>c_data_type-tabu.
APPEND 'foo' TO ls_config-where.
li_config->add_config( ls_config ).
CLEAR ls_config-where.
APPEND 'bar' TO ls_config-where.
li_config->add_config( ls_config ).
cl_abap_unit_assert=>assert_equals(
act = lines( li_config->get_configs( ) )
exp = 1 ).
ENDMETHOD.
METHOD to_json.
DATA li_config TYPE REF TO zif_abapgit_data_config.
DATA lt_files TYPE zif_abapgit_git_definitions=>ty_files_tt.
DATA ls_file LIKE LINE OF lt_files.
DATA lv_json TYPE string.
CREATE OBJECT li_config TYPE zcl_abapgit_data_config.
li_config->add_config( ms_config ).
lt_files = li_config->to_json( ).
cl_abap_unit_assert=>assert_equals(
act = lines( lt_files )
exp = 1 ).
READ TABLE lt_files INDEX 1 INTO ls_file.
cl_abap_unit_assert=>assert_subrc( ).
cl_abap_unit_assert=>assert_not_initial( ls_file-data ).
lv_json = zcl_abapgit_convert=>xstring_to_string_utf8( ls_file-data ).
cl_abap_unit_assert=>assert_equals(
act = lv_json
exp = mv_json ).
from_json( lt_files ).
ENDMETHOD.
METHOD from_json.
DATA li_config TYPE REF TO zif_abapgit_data_config.
CREATE OBJECT li_config TYPE zcl_abapgit_data_config.
li_config->from_json( it_files ).
cl_abap_unit_assert=>assert_equals(
act = lines( li_config->get_configs( ) )
exp = 1 ).
ENDMETHOD.
ENDCLASS.