48 lines
1.7 KiB
ABAP
48 lines
1.7 KiB
ABAP
CLASS {{p}}t_bike_test 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_bike_only FOR TESTING.
|
|
METHODS light_bike_hidden FOR TESTING.
|
|
ENDCLASS.
|
|
|
|
|
|
CLASS {{p}}t_bike_test 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' ) ).
|
|
lt_ride = VALUE #( ( ride_id = 'R1' bike_id = 'B1' ride_date = '20240101' distance_km = '60.0' )
|
|
( ride_id = 'R2' bike_id = 'B2' ride_date = '20240102' distance_km = '20.0' ) ).
|
|
go_env->insert_test_data( lt_bike ).
|
|
go_env->insert_test_data( lt_ride ).
|
|
ENDMETHOD.
|
|
|
|
METHOD heavy_bike_only.
|
|
SELECT COUNT(*) FROM {{p}}i_bike_use INTO @DATA(lv_rows).
|
|
cl_abap_unit_assert=>assert_equals( exp = 1 act = lv_rows ).
|
|
ENDMETHOD.
|
|
|
|
METHOD light_bike_hidden.
|
|
SELECT SINGLE ride_count, total_distance FROM {{p}}i_bike_use WHERE bike_id = 'B1'
|
|
INTO @DATA(ls_use).
|
|
cl_abap_unit_assert=>assert_equals( exp = 1 act = ls_use-ride_count ).
|
|
cl_abap_unit_assert=>assert_equals(
|
|
exp = CONV decfloat34( '60.0' )
|
|
act = CONV decfloat34( ls_use-total_distance ) ).
|
|
ENDMETHOD.
|
|
ENDCLASS.
|