119 lines
4.4 KiB
ABAP
119 lines
4.4 KiB
ABAP
CLASS {{p}}t61_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 shows_dome_data FOR TESTING.
|
|
METHODS shows_scope_data FOR TESTING.
|
|
METHODS shows_ids_and_visitors FOR TESTING.
|
|
METHODS shows_night_date FOR TESTING.
|
|
METHODS free_seats_positive FOR TESTING.
|
|
METHODS free_seats_negative FOR TESTING.
|
|
METHODS hides_unknown_dome FOR TESTING.
|
|
METHODS hides_unknown_scope FOR TESTING.
|
|
METHODS counts_rows FOR TESTING.
|
|
ENDCLASS.
|
|
|
|
|
|
CLASS {{p}}t61_hidden IMPLEMENTATION.
|
|
METHOD class_setup.
|
|
go_env = cl_cds_test_environment=>create( i_for_entity = '{{P}}I_STAR_NIGHT' ).
|
|
ENDMETHOD.
|
|
|
|
METHOD class_teardown.
|
|
go_env->destroy( ).
|
|
ENDMETHOD.
|
|
|
|
METHOD setup.
|
|
DATA lt_dome TYPE STANDARD TABLE OF {{p}}dome WITH EMPTY KEY.
|
|
DATA lt_scope TYPE STANDARD TABLE OF {{p}}scope WITH EMPTY KEY.
|
|
DATA lt_night TYPE STANDARD TABLE OF {{p}}night WITH EMPTY KEY.
|
|
go_env->clear_doubles( ).
|
|
lt_dome = VALUE #( ( dome_id = 'D1' dome_name = 'Main Dome' city = 'NORTH' capacity = 120 )
|
|
( dome_id = 'D2' dome_name = 'Side Dome' city = 'SOUTH' capacity = 60 ) ).
|
|
lt_scope = VALUE #( ( scope_id = 'S1' scope_name = 'Reflector' aperture_mm = 300 mount_kind = 'EQUATORIAL' )
|
|
( scope_id = 'S2' scope_name = 'Refractor' aperture_mm = 150 mount_kind = 'ALT_AZ' ) ).
|
|
lt_night = VALUE #( ( night_id = 'N1' dome_id = 'D1' scope_id = 'S1' visitors = 100 night_date = '20250601' )
|
|
( night_id = 'N2' dome_id = 'D2' scope_id = 'S2' visitors = 70 night_date = '20250602' )
|
|
( night_id = 'N3' dome_id = 'D9' scope_id = 'S1' visitors = 5 night_date = '20250603' )
|
|
( night_id = 'N4' dome_id = 'D1' scope_id = 'S9' visitors = 5 night_date = '20250604' ) ).
|
|
go_env->insert_test_data( lt_dome ).
|
|
go_env->insert_test_data( lt_scope ).
|
|
go_env->insert_test_data( lt_night ).
|
|
ENDMETHOD.
|
|
|
|
METHOD shows_dome_data.
|
|
SELECT SINGLE dome_name, dome_city
|
|
FROM {{p}}i_star_night
|
|
WHERE night_id = 'N1'
|
|
INTO @DATA(ls_row).
|
|
cl_abap_unit_assert=>assert_equals( exp = 'Main Dome' act = ls_row-dome_name ).
|
|
cl_abap_unit_assert=>assert_equals( exp = 'NORTH' act = ls_row-dome_city ).
|
|
ENDMETHOD.
|
|
|
|
METHOD shows_scope_data.
|
|
SELECT SINGLE scope_name, aperture_mm
|
|
FROM {{p}}i_star_night
|
|
WHERE night_id = 'N2'
|
|
INTO @DATA(ls_row).
|
|
cl_abap_unit_assert=>assert_equals( exp = 'Refractor' act = ls_row-scope_name ).
|
|
cl_abap_unit_assert=>assert_equals( exp = 150 act = ls_row-aperture_mm ).
|
|
ENDMETHOD.
|
|
|
|
METHOD shows_ids_and_visitors.
|
|
SELECT SINGLE dome_id, scope_id, visitors
|
|
FROM {{p}}i_star_night
|
|
WHERE night_id = 'N2'
|
|
INTO @DATA(ls_row).
|
|
cl_abap_unit_assert=>assert_equals( exp = 'D2' act = ls_row-dome_id ).
|
|
cl_abap_unit_assert=>assert_equals( exp = 'S2' act = ls_row-scope_id ).
|
|
cl_abap_unit_assert=>assert_equals( exp = 70 act = ls_row-visitors ).
|
|
ENDMETHOD.
|
|
|
|
METHOD shows_night_date.
|
|
DATA lv_expected TYPE dats VALUE '20250601'.
|
|
SELECT SINGLE night_date
|
|
FROM {{p}}i_star_night
|
|
WHERE night_id = 'N1'
|
|
INTO @DATA(lv_date).
|
|
cl_abap_unit_assert=>assert_equals( exp = lv_expected act = lv_date ).
|
|
ENDMETHOD.
|
|
|
|
METHOD free_seats_positive.
|
|
SELECT SINGLE free_seats
|
|
FROM {{p}}i_star_night
|
|
WHERE night_id = 'N1'
|
|
INTO @DATA(lv_free).
|
|
cl_abap_unit_assert=>assert_equals( exp = 20 act = lv_free ).
|
|
ENDMETHOD.
|
|
|
|
METHOD free_seats_negative.
|
|
SELECT SINGLE free_seats
|
|
FROM {{p}}i_star_night
|
|
WHERE night_id = 'N2'
|
|
INTO @DATA(lv_free).
|
|
cl_abap_unit_assert=>assert_equals( exp = -10 act = lv_free ).
|
|
ENDMETHOD.
|
|
|
|
METHOD hides_unknown_dome.
|
|
SELECT COUNT(*) FROM {{p}}i_star_night
|
|
WHERE dome_id = 'D9'
|
|
INTO @DATA(lv_rows).
|
|
cl_abap_unit_assert=>assert_equals( exp = 0 act = lv_rows ).
|
|
ENDMETHOD.
|
|
|
|
METHOD hides_unknown_scope.
|
|
SELECT COUNT(*) FROM {{p}}i_star_night
|
|
WHERE scope_id = 'S9'
|
|
INTO @DATA(lv_rows).
|
|
cl_abap_unit_assert=>assert_equals( exp = 0 act = lv_rows ).
|
|
ENDMETHOD.
|
|
|
|
METHOD counts_rows.
|
|
SELECT COUNT(*) FROM {{p}}i_star_night INTO @DATA(lv_rows).
|
|
cl_abap_unit_assert=>assert_equals( exp = 2 act = lv_rows ).
|
|
ENDMETHOD.
|
|
ENDCLASS.
|