Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x | CLASS ltcl_test_sort_contexts DEFINITION DEFERRED.
CLASS zcl_abapgit_object_sfpf DEFINITION LOCAL FRIENDS ltcl_test_sort_contexts.
CLASS ltcl_test_sort_contexts DEFINITION FOR TESTING DURATION SHORT RISK LEVEL HARMLESS FINAL.
PRIVATE SECTION.
METHODS basic FOR TESTING RAISING cx_static_check.
METHODS parse
IMPORTING
iv_xml TYPE string
RETURNING
VALUE(ri_doc) TYPE REF TO if_ixml_document.
METHODS render
IMPORTING
ii_doc TYPE REF TO if_ixml_document
RETURNING
VALUE(rv_xml) TYPE string.
ENDCLASS.
CLASS ltcl_test_sort_contexts IMPLEMENTATION.
METHOD parse.
DATA li_factory TYPE REF TO if_ixml_stream_factory.
DATA li_istream TYPE REF TO if_ixml_istream.
DATA li_parser TYPE REF TO if_ixml_parser.
DATA lv_subrc TYPE i.
DATA li_ixml TYPE REF TO if_ixml.
li_ixml = cl_ixml=>create( ).
ri_doc = li_ixml->create_document( ).
li_factory = li_ixml->create_stream_factory( ).
li_istream = li_factory->create_istream_string( iv_xml ).
li_parser = li_ixml->create_parser( stream_factory = li_factory
istream = li_istream
document = ri_doc ).
li_parser->add_strip_space_element( ).
lv_subrc = li_parser->parse( ).
li_istream->close( ).
cl_abap_unit_assert=>assert_equals(
act = lv_subrc
exp = 0 ).
ENDMETHOD.
METHOD render.
DATA li_ostream TYPE REF TO if_ixml_ostream.
DATA li_renderer TYPE REF TO if_ixml_renderer.
DATA li_factory TYPE REF TO if_ixml_stream_factory.
DATA li_ixml TYPE REF TO if_ixml.
li_ixml = cl_ixml=>create( ).
li_factory = li_ixml->create_stream_factory( ).
li_ostream = li_factory->create_ostream_cstring( rv_xml ).
li_renderer = li_ixml->create_renderer(
ostream = li_ostream
document = ii_doc ).
li_renderer->render( ).
ENDMETHOD.
METHOD basic.
DATA lv_xml TYPE string.
DATA lv_result TYPE string.
DATA li_xml_doc TYPE REF TO if_ixml_document.
lv_xml =
|<ROOT>| &&
| <FPCONTEXTT>| &&
| <item>| &&
| <NAME>ZB</NAME>| &&
| <STATE>A</STATE>| &&
| <LANGUAGE>E</LANGUAGE>| &&
| <ID>1</ID>| &&
| <TEXT>fourth</TEXT>| &&
| </item>| &&
| <item>| &&
| <NAME>ZA</NAME>| &&
| <STATE>B</STATE>| &&
| <LANGUAGE>E</LANGUAGE>| &&
| <ID>1</ID>| &&
| <TEXT>third</TEXT>| &&
| </item>| &&
| <item>| &&
| <NAME>ZA</NAME>| &&
| <STATE>A</STATE>| &&
| <LANGUAGE>D</LANGUAGE>| &&
| <ID>1</ID>| &&
| <TEXT>second</TEXT>| &&
| </item>| &&
| <item>| &&
| <NAME>ZA</NAME>| &&
| <STATE>A</STATE>| &&
| <LANGUAGE>C</LANGUAGE>| &&
| <ID>2</ID>| &&
| <TEXT>id second</TEXT>| &&
| </item>| &&
| <item>| &&
| <NAME>ZA</NAME>| &&
| <STATE>A</STATE>| &&
| <LANGUAGE>C</LANGUAGE>| &&
| <ID>1</ID>| &&
| <TEXT>id first</TEXT>| &&
| </item>| &&
| </FPCONTEXTT>| &&
|</ROOT>|.
li_xml_doc = parse( lv_xml ).
zcl_abapgit_object_sfpf=>sort_contexts( li_xml_doc ).
lv_result = render( li_xml_doc ).
cl_abap_unit_assert=>assert_char_cp(
act = lv_result
exp = '*<FPCONTEXTT>' &&
'<item><NAME>ZA</NAME><STATE>A</STATE><LANGUAGE>C</LANGUAGE><ID>1</ID><TEXT>id first</TEXT></item>' &&
'<item><NAME>ZA</NAME><STATE>A</STATE><LANGUAGE>C</LANGUAGE><ID>2</ID><TEXT>id second</TEXT></item>' &&
'<item><NAME>ZA</NAME><STATE>A</STATE><LANGUAGE>D</LANGUAGE><ID>1</ID><TEXT>second</TEXT></item>' &&
'<item><NAME>ZA</NAME><STATE>B</STATE><LANGUAGE>E</LANGUAGE><ID>1</ID><TEXT>third</TEXT></item>' &&
'<item><NAME>ZB</NAME><STATE>A</STATE><LANGUAGE>E</LANGUAGE><ID>1</ID><TEXT>fourth</TEXT></item>' &&
'</FPCONTEXTT>*' ).
ENDMETHOD.
ENDCLASS.
|