113 lines
5.2 KiB
ABAP
113 lines
5.2 KiB
ABAP
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.
|