CLASS {{p}}t02_hidden DEFINITION PUBLIC FINAL CREATE PUBLIC FOR TESTING DURATION SHORT RISK LEVEL HARMLESS. PRIVATE SECTION. DATA mo_cut TYPE REF TO {{p}}sample_batcher. METHODS setup. METHODS adds_sample FOR TESTING. METHODS counts_urgent FOR TESTING. METHODS rejects_empty_id FOR TESTING. METHODS rejects_empty_type FOR TESTING. METHODS rejects_duplicate FOR TESTING. METHODS rejects_bad_priority FOR TESTING. METHODS normalizes_input FOR TESTING. METHODS batches_sorted FOR TESTING. METHODS one_row_per_type FOR TESTING. METHODS get_batch_known FOR TESTING. METHODS get_batch_unknown FOR TESTING. ENDCLASS. CLASS {{p}}t02_hidden IMPLEMENTATION. METHOD setup. mo_cut = NEW {{p}}sample_batcher( ). ENDMETHOD. METHOD adds_sample. cl_abap_unit_assert=>assert_equals( exp = abap_true act = mo_cut->add_sample( iv_sample_id = 'S0000001' iv_test_type = 'GLU' iv_priority = 2 ) ). DATA(lt_batches) = mo_cut->get_batches( ). cl_abap_unit_assert=>assert_equals( exp = 1 act = lines( lt_batches ) ). cl_abap_unit_assert=>assert_equals( exp = 1 act = lt_batches[ 1 ]-total ). cl_abap_unit_assert=>assert_equals( exp = 0 act = lt_batches[ 1 ]-urgent ). ENDMETHOD. METHOD counts_urgent. mo_cut->add_sample( iv_sample_id = 'S1' iv_test_type = 'K' iv_priority = 1 ). mo_cut->add_sample( iv_sample_id = 'S2' iv_test_type = 'K' iv_priority = 3 ). mo_cut->add_sample( iv_sample_id = 'S3' iv_test_type = 'K' iv_priority = 1 ). DATA(ls_batch) = mo_cut->get_batch( 'K' ). cl_abap_unit_assert=>assert_equals( exp = 3 act = ls_batch-total ). cl_abap_unit_assert=>assert_equals( exp = 2 act = ls_batch-urgent ). ENDMETHOD. METHOD rejects_empty_id. cl_abap_unit_assert=>assert_equals( exp = abap_false act = mo_cut->add_sample( iv_sample_id = '' iv_test_type = 'GLU' iv_priority = 2 ) ). DATA(lt_batches) = mo_cut->get_batches( ). cl_abap_unit_assert=>assert_equals( exp = 0 act = lines( lt_batches ) ). ENDMETHOD. METHOD rejects_empty_type. cl_abap_unit_assert=>assert_equals( exp = abap_false act = mo_cut->add_sample( iv_sample_id = 'S1' iv_test_type = ' ' iv_priority = 2 ) ). DATA(lt_batches) = mo_cut->get_batches( ). cl_abap_unit_assert=>assert_equals( exp = 0 act = lines( lt_batches ) ). ENDMETHOD. METHOD rejects_duplicate. mo_cut->add_sample( iv_sample_id = 'S1' iv_test_type = 'GLU' iv_priority = 2 ). cl_abap_unit_assert=>assert_equals( exp = abap_false act = mo_cut->add_sample( iv_sample_id = 's1' iv_test_type = 'NA' iv_priority = 2 ) ). DATA(lt_batches) = mo_cut->get_batches( ). cl_abap_unit_assert=>assert_equals( exp = 1 act = lines( lt_batches ) ). cl_abap_unit_assert=>assert_equals( exp = 'GLU' act = lt_batches[ 1 ]-test_type ). ENDMETHOD. METHOD rejects_bad_priority. cl_abap_unit_assert=>assert_equals( exp = abap_false act = mo_cut->add_sample( iv_sample_id = 'S1' iv_test_type = 'GLU' iv_priority = 4 ) ). cl_abap_unit_assert=>assert_equals( exp = abap_false act = mo_cut->add_sample( iv_sample_id = 'S2' iv_test_type = 'GLU' iv_priority = 0 ) ). DATA(lt_batches) = mo_cut->get_batches( ). cl_abap_unit_assert=>assert_equals( exp = 0 act = lines( lt_batches ) ). ENDMETHOD. METHOD normalizes_input. cl_abap_unit_assert=>assert_equals( exp = abap_true act = mo_cut->add_sample( iv_sample_id = ' s0000001 ' iv_test_type = 'glu' iv_priority = 2 ) ). DATA(lt_batches) = mo_cut->get_batches( ). cl_abap_unit_assert=>assert_equals( exp = 1 act = lines( lt_batches ) ). cl_abap_unit_assert=>assert_equals( exp = 'GLU' act = lt_batches[ 1 ]-test_type ). ENDMETHOD. METHOD batches_sorted. mo_cut->add_sample( iv_sample_id = 'S1' iv_test_type = 'NA' iv_priority = 2 ). mo_cut->add_sample( iv_sample_id = 'S2' iv_test_type = 'GLU' iv_priority = 2 ). mo_cut->add_sample( iv_sample_id = 'S3' iv_test_type = 'K' iv_priority = 2 ). DATA(lt_batches) = mo_cut->get_batches( ). cl_abap_unit_assert=>assert_equals( exp = 3 act = lines( lt_batches ) ). cl_abap_unit_assert=>assert_equals( exp = 'GLU' act = lt_batches[ 1 ]-test_type ). cl_abap_unit_assert=>assert_equals( exp = 'K' act = lt_batches[ 2 ]-test_type ). cl_abap_unit_assert=>assert_equals( exp = 'NA' act = lt_batches[ 3 ]-test_type ). ENDMETHOD. METHOD one_row_per_type. mo_cut->add_sample( iv_sample_id = 'S1' iv_test_type = 'GLU' iv_priority = 1 ). mo_cut->add_sample( iv_sample_id = 'S2' iv_test_type = 'GLU' iv_priority = 2 ). mo_cut->add_sample( iv_sample_id = 'S3' iv_test_type = 'GLU' iv_priority = 3 ). DATA(lt_batches) = mo_cut->get_batches( ). cl_abap_unit_assert=>assert_equals( exp = 1 act = lines( lt_batches ) ). cl_abap_unit_assert=>assert_equals( exp = 3 act = lt_batches[ 1 ]-total ). ENDMETHOD. METHOD get_batch_known. mo_cut->add_sample( iv_sample_id = 'S1' iv_test_type = 'GLU' iv_priority = 1 ). mo_cut->add_sample( iv_sample_id = 'S2' iv_test_type = 'NA' iv_priority = 2 ). DATA(ls_batch) = mo_cut->get_batch( 'GLU' ). cl_abap_unit_assert=>assert_equals( exp = 'GLU' act = ls_batch-test_type ). cl_abap_unit_assert=>assert_equals( exp = 1 act = ls_batch-total ). cl_abap_unit_assert=>assert_equals( exp = 1 act = ls_batch-urgent ). ENDMETHOD. METHOD get_batch_unknown. DATA(ls_batch) = mo_cut->get_batch( 'XXX' ). cl_abap_unit_assert=>assert_equals( exp = 'XXX' act = ls_batch-test_type ). cl_abap_unit_assert=>assert_equals( exp = 0 act = ls_batch-total ). cl_abap_unit_assert=>assert_equals( exp = 0 act = ls_batch-urgent ). ENDMETHOD. ENDCLASS.