+CLASS ltcl_report_order_extractor DEFINITION FINAL FOR TESTING
+ RISK LEVEL HARMLESS DURATION SHORT.
+ PRIVATE SECTION.
+ DATA cut TYPE REF TO zcl_report_order_extractor.
+ METHODS setup.
+ METHODS extracts_confirmed_items_from_forms FOR TESTING.
+ METHODS keeps_totals_currency_safe FOR TESTING.
+ENDCLASS.
+CLASS ltcl_report_order_extractor IMPLEMENTATION.
+ METHOD setup.
+ cut = NEW #( source = NEW lcl_report_fixture_source( ) ).
+ ENDMETHOD.
+ METHOD extracts_confirmed_items_from_forms.
+ DATA(result) = cut->extract( report_fixture( 'LEGACY_FORMS' ) ).
+ cl_abap_unit_assert=>assert_equals( exp = 3 act = lines( result-items ) ).
+ cl_abap_unit_assert=>assert_equals( exp = '4711' act = result-items[ 1 ]-vbeln ).
+ ENDMETHOD.
+ METHOD keeps_totals_currency_safe.
+ DATA(total) = cut->summarize( report_fixture( 'MIXED_CURRENCY' ) ).
+ cl_abap_unit_assert=>assert_equals( exp = 'EUR' act = total-currency ).
+ ENDMETHOD.
+ENDCLASS.