85 lines
3.6 KiB
ABAP
85 lines
3.6 KiB
ABAP
CLASS {{p}}t_bike_hid 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 heavy_bikes_only FOR TESTING.
|
|
METHODS boundary_excluded FOR TESTING.
|
|
METHODS light_bike_excluded FOR TESTING.
|
|
METHODS bike_without_rides FOR TESTING.
|
|
METHODS ride_count_shown FOR TESTING.
|
|
METHODS total_distance_shown FOR TESTING.
|
|
METHODS station_shown FOR TESTING.
|
|
ENDCLASS.
|
|
|
|
|
|
CLASS {{p}}t_bike_hid IMPLEMENTATION.
|
|
METHOD class_setup.
|
|
go_env = cl_cds_test_environment=>create( i_for_entity = '{{P}}I_BIKE_USE' ).
|
|
ENDMETHOD.
|
|
|
|
METHOD class_teardown.
|
|
go_env->destroy( ).
|
|
ENDMETHOD.
|
|
|
|
METHOD setup.
|
|
DATA lt_bike TYPE STANDARD TABLE OF {{p}}bike WITH EMPTY KEY.
|
|
DATA lt_ride TYPE STANDARD TABLE OF {{p}}ride WITH EMPTY KEY.
|
|
go_env->clear_doubles( ).
|
|
lt_bike = VALUE #( ( bike_id = 'B1' station = 'NORD' bike_type = 'E' )
|
|
( bike_id = 'B2' station = 'SUED' bike_type = 'C' )
|
|
( bike_id = 'B3' station = 'WEST' bike_type = 'C' )
|
|
( bike_id = 'B4' station = 'OST' bike_type = 'E' )
|
|
( bike_id = 'B5' station = 'NORD' bike_type = 'C' ) ).
|
|
lt_ride = VALUE #( ( ride_id = 'R01' bike_id = 'B1' ride_date = '20240101' distance_km = '20.0' )
|
|
( ride_id = 'R02' bike_id = 'B1' ride_date = '20240102' distance_km = '30.0' )
|
|
( ride_id = 'R03' bike_id = 'B2' ride_date = '20240103' distance_km = '25.5' )
|
|
( ride_id = 'R04' bike_id = 'B2' ride_date = '20240104' distance_km = '30.0' )
|
|
( ride_id = 'R05' bike_id = 'B3' ride_date = '20240105' distance_km = '10.0' )
|
|
( ride_id = 'R06' bike_id = 'B4' ride_date = '20240106' distance_km = '40.0' )
|
|
( ride_id = 'R07' bike_id = 'B4' ride_date = '20240107' distance_km = '40.0' )
|
|
( ride_id = 'R08' bike_id = 'B4' ride_date = '20240108' distance_km = '25.0' ) ).
|
|
go_env->insert_test_data( lt_bike ).
|
|
go_env->insert_test_data( lt_ride ).
|
|
ENDMETHOD.
|
|
|
|
METHOD heavy_bikes_only.
|
|
SELECT COUNT(*) FROM {{p}}i_bike_use INTO @DATA(lv_rows).
|
|
cl_abap_unit_assert=>assert_equals( exp = 2 act = lv_rows ).
|
|
ENDMETHOD.
|
|
|
|
METHOD boundary_excluded.
|
|
SELECT COUNT(*) FROM {{p}}i_bike_use WHERE bike_id = 'B1' INTO @DATA(lv_rows).
|
|
cl_abap_unit_assert=>assert_equals( exp = 0 act = lv_rows ).
|
|
ENDMETHOD.
|
|
|
|
METHOD light_bike_excluded.
|
|
SELECT COUNT(*) FROM {{p}}i_bike_use WHERE bike_id = 'B3' INTO @DATA(lv_rows).
|
|
cl_abap_unit_assert=>assert_equals( exp = 0 act = lv_rows ).
|
|
ENDMETHOD.
|
|
|
|
METHOD bike_without_rides.
|
|
SELECT COUNT(*) FROM {{p}}i_bike_use WHERE bike_id = 'B5' INTO @DATA(lv_rows).
|
|
cl_abap_unit_assert=>assert_equals( exp = 0 act = lv_rows ).
|
|
ENDMETHOD.
|
|
|
|
METHOD ride_count_shown.
|
|
SELECT SINGLE ride_count FROM {{p}}i_bike_use WHERE bike_id = 'B2' INTO @DATA(lv_count).
|
|
cl_abap_unit_assert=>assert_equals( exp = 2 act = lv_count ).
|
|
ENDMETHOD.
|
|
|
|
METHOD total_distance_shown.
|
|
SELECT SINGLE total_distance FROM {{p}}i_bike_use WHERE bike_id = 'B4' INTO @DATA(lv_total).
|
|
cl_abap_unit_assert=>assert_equals(
|
|
exp = CONV decfloat34( '105.0' )
|
|
act = CONV decfloat34( lv_total ) ).
|
|
ENDMETHOD.
|
|
|
|
METHOD station_shown.
|
|
SELECT SINGLE station FROM {{p}}i_bike_use WHERE bike_id = 'B2' INTO @DATA(lv_station).
|
|
cl_abap_unit_assert=>assert_equals( exp = 'SUED' act = lv_station ).
|
|
ENDMETHOD.
|
|
ENDCLASS.
|