CLASS {{p}}t31_hidden DEFINITION PUBLIC FINAL CREATE PUBLIC FOR TESTING DURATION SHORT RISK LEVEL HARMLESS. PRIVATE SECTION. CLASS-DATA go_env TYPE REF TO if_cds_test_environment. CLASS-METHODS class_setup. CLASS-METHODS class_teardown. METHODS setup. METHODS row_count FOR TESTING. METHODS count_of_busy_tutor FOR TESTING. METHODS minutes_of_busy_tutor FOR TESTING. METHODS count_of_top_tutor FOR TESTING. METHODS minutes_of_top_tutor FOR TESTING. METHODS zero_minutes_ignored FOR TESTING. METHODS zero_minutes_reduce_count FOR TESTING. METHODS tutor_with_two_lessons FOR TESTING. METHODS tutor_without_lessons FOR TESTING. METHODS name_is_shown FOR TESTING. ENDCLASS. CLASS {{p}}t31_hidden IMPLEMENTATION. METHOD class_setup. go_env = cl_cds_test_environment=>create( i_for_entity = '{{P}}I_TUTOR_LOAD' ). ENDMETHOD. METHOD class_teardown. go_env->destroy( ). ENDMETHOD. METHOD setup. DATA lt_tutor TYPE STANDARD TABLE OF {{p}}tutor WITH EMPTY KEY. DATA lt_lesson TYPE STANDARD TABLE OF {{p}}lesson WITH EMPTY KEY. go_env->clear_doubles( ). lt_tutor = VALUE #( ( tutor_id = 'T1' tutor_name = 'ALICE' subject = 'PIANO' ) ( tutor_id = 'T2' tutor_name = 'BOB' subject = 'GUITAR' ) ( tutor_id = 'T3' tutor_name = 'CARLA' subject = 'VIOLIN' ) ( tutor_id = 'T4' tutor_name = 'DAVE' subject = 'DRUMS' ) ( tutor_id = 'T5' tutor_name = 'EMMA' subject = 'FLUTE' ) ( tutor_id = 'T6' tutor_name = 'FELIX' subject = 'CELLO' ) ). lt_lesson = VALUE #( ( lesson_id = 'L01' tutor_id = 'T1' dur_min = 30 ) ( lesson_id = 'L02' tutor_id = 'T1' dur_min = 45 ) ( lesson_id = 'L03' tutor_id = 'T1' dur_min = 45 ) ( lesson_id = 'L04' tutor_id = 'T2' dur_min = 60 ) ( lesson_id = 'L05' tutor_id = 'T2' dur_min = 60 ) ( lesson_id = 'L06' tutor_id = 'T2' dur_min = 30 ) ( lesson_id = 'L07' tutor_id = 'T2' dur_min = 15 ) ( lesson_id = 'L08' tutor_id = 'T4' dur_min = 30 ) ( lesson_id = 'L09' tutor_id = 'T4' dur_min = 30 ) ( lesson_id = 'L10' tutor_id = 'T5' dur_min = 30 ) ( lesson_id = 'L11' tutor_id = 'T5' dur_min = 30 ) ( lesson_id = 'L12' tutor_id = 'T5' dur_min = 0 ) ( lesson_id = 'L13' tutor_id = 'T6' dur_min = 30 ) ( lesson_id = 'L14' tutor_id = 'T6' dur_min = 30 ) ( lesson_id = 'L15' tutor_id = 'T6' dur_min = 30 ) ( lesson_id = 'L16' tutor_id = 'T6' dur_min = 0 ) ). go_env->insert_test_data( lt_tutor ). go_env->insert_test_data( lt_lesson ). ENDMETHOD. METHOD row_count. SELECT COUNT(*) FROM {{p}}i_tutor_load INTO @DATA(lv_rows). cl_abap_unit_assert=>assert_equals( exp = 3 act = CONV i( lv_rows ) ). ENDMETHOD. METHOD count_of_busy_tutor. SELECT SINGLE lesson_count FROM {{p}}i_tutor_load WHERE tutor_id = 'T1' INTO @DATA(lv_count). cl_abap_unit_assert=>assert_equals( exp = 3 act = CONV i( lv_count ) ). ENDMETHOD. METHOD minutes_of_busy_tutor. SELECT SINGLE total_minutes FROM {{p}}i_tutor_load WHERE tutor_id = 'T1' INTO @DATA(lv_total). cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( 120 ) act = CONV decfloat34( lv_total ) ). ENDMETHOD. METHOD count_of_top_tutor. SELECT SINGLE lesson_count FROM {{p}}i_tutor_load WHERE tutor_id = 'T2' INTO @DATA(lv_count). cl_abap_unit_assert=>assert_equals( exp = 4 act = CONV i( lv_count ) ). ENDMETHOD. METHOD minutes_of_top_tutor. SELECT SINGLE total_minutes FROM {{p}}i_tutor_load WHERE tutor_id = 'T2' INTO @DATA(lv_total). cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( 165 ) act = CONV decfloat34( lv_total ) ). ENDMETHOD. METHOD zero_minutes_ignored. SELECT SINGLE lesson_count, total_minutes FROM {{p}}i_tutor_load WHERE tutor_id = 'T6' INTO @DATA(ls_load). cl_abap_unit_assert=>assert_equals( exp = 3 act = CONV i( ls_load-lesson_count ) ). cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( 90 ) act = CONV decfloat34( ls_load-total_minutes ) ). ENDMETHOD. METHOD zero_minutes_reduce_count. SELECT COUNT(*) FROM {{p}}i_tutor_load WHERE tutor_id = 'T5' INTO @DATA(lv_rows). cl_abap_unit_assert=>assert_equals( exp = 0 act = CONV i( lv_rows ) ). ENDMETHOD. METHOD tutor_with_two_lessons. SELECT COUNT(*) FROM {{p}}i_tutor_load WHERE tutor_id = 'T4' INTO @DATA(lv_rows). cl_abap_unit_assert=>assert_equals( exp = 0 act = CONV i( lv_rows ) ). ENDMETHOD. METHOD tutor_without_lessons. SELECT COUNT(*) FROM {{p}}i_tutor_load WHERE tutor_id = 'T3' INTO @DATA(lv_rows). cl_abap_unit_assert=>assert_equals( exp = 0 act = CONV i( lv_rows ) ). ENDMETHOD. METHOD name_is_shown. SELECT SINGLE tutor_name FROM {{p}}i_tutor_load WHERE tutor_id = 'T2' INTO @DATA(lv_name). cl_abap_unit_assert=>assert_equals( exp = 'BOB' act = lv_name ). ENDMETHOD. ENDCLASS.