CLASS {{p}}t21_test DEFINITION PUBLIC FINAL CREATE PUBLIC FOR TESTING DURATION SHORT RISK LEVEL HARMLESS. PRIVATE SECTION. METHODS stats IMPORTING iv_scans TYPE string iv_lifts TYPE string EXPORTING ev_rides TYPE i ev_passes TYPE i ev_report TYPE string. METHODS one_pass FOR TESTING. METHODS duplicates FOR TESTING. METHODS unknown_lift FOR TESTING. METHODS sorted_report FOR TESTING. ENDCLASS. CLASS {{p}}t21_test IMPLEMENTATION. METHOD stats. CALL FUNCTION '{{P}}LIFT_STATS' EXPORTING iv_scans = iv_scans iv_lifts = iv_lifts IMPORTING ev_rides = ev_rides ev_passes = ev_passes ev_report = ev_report EXCEPTIONS no_lifts = 1 OTHERS = 2. ENDMETHOD. METHOD one_pass. stats( EXPORTING iv_scans = `P1;L1` iv_lifts = `L1;North` IMPORTING ev_rides = DATA(lv_rides) ev_report = DATA(lv_report) ). cl_abap_unit_assert=>assert_equals( exp = 1 act = lv_rides ). cl_abap_unit_assert=>assert_equals( exp = `P1;1;1` act = lv_report ). ENDMETHOD. METHOD duplicates. stats( EXPORTING iv_scans = |P1;L1\nP1;L1| iv_lifts = `L1;North` IMPORTING ev_rides = DATA(lv_rides) ). cl_abap_unit_assert=>assert_equals( exp = 1 act = lv_rides ). ENDMETHOD. METHOD unknown_lift. stats( EXPORTING iv_scans = `P1;L9` iv_lifts = `L1;North` IMPORTING ev_rides = DATA(lv_rides) ev_report = DATA(lv_report) ). cl_abap_unit_assert=>assert_equals( exp = 0 act = lv_rides ). cl_abap_unit_assert=>assert_equals( exp = `` act = lv_report ). ENDMETHOD. METHOD sorted_report. stats( EXPORTING iv_scans = |P2;L1\nP1;L1| iv_lifts = `L1;North` IMPORTING ev_report = DATA(lv_report) ). cl_abap_unit_assert=>assert_equals( exp = |P1;1;1\nP2;1;1| act = lv_report ). ENDMETHOD. ENDCLASS.