Files
abap-llm/tasks_gen/eval/G0143/reference/crane_test.clas.abap

72 lines
2.1 KiB
ABAP

CLASS {{p}}crane_test DEFINITION PUBLIC FINAL CREATE PUBLIC
FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
PRIVATE SECTION.
METHODS fee_for
IMPORTING iv_type TYPE string
iv_hours TYPE decfloat34
iv_km TYPE i
iv_weekend TYPE abap_bool
iv_customer TYPE string
RETURNING VALUE(rv_total) TYPE decfloat34.
METHODS small_crane FOR TESTING.
METHODS weekend_and_gold FOR TESTING.
METHODS travel_cap FOR TESTING.
METHODS invalid_input FOR TESTING.
ENDCLASS.
CLASS {{p}}crane_test IMPLEMENTATION.
METHOD fee_for.
CALL FUNCTION '{{P}}CRANE_FEE_OLD'
EXPORTING
iv_crane_type = iv_type
iv_hours = iv_hours
iv_distance_km = iv_km
iv_weekend = iv_weekend
iv_customer = iv_customer
IMPORTING
ev_total = rv_total
EXCEPTIONS
invalid_crane_type = 1
invalid_hours = 2
OTHERS = 3.
cl_abap_unit_assert=>assert_subrc( exp = 0 ).
ENDMETHOD.
METHOD small_crane.
cl_abap_unit_assert=>assert_equals(
exp = CONV decfloat34( 230 )
act = fee_for( iv_type = 'SM' iv_hours = 2 iv_km = 0 iv_weekend = abap_false iv_customer = 'STD' ) ).
ENDMETHOD.
METHOD weekend_and_gold.
cl_abap_unit_assert=>assert_equals(
exp = CONV decfloat34( '655.88' )
act = fee_for( iv_type = 'MD' iv_hours = 3 iv_km = 20 iv_weekend = abap_true iv_customer = 'GOLD' ) ).
ENDMETHOD.
METHOD travel_cap.
cl_abap_unit_assert=>assert_equals(
exp = CONV decfloat34( 240 )
act = fee_for( iv_type = 'SM' iv_hours = 1 iv_km = 200 iv_weekend = abap_false iv_customer = 'STD' ) ).
ENDMETHOD.
METHOD invalid_input.
DATA lv_total TYPE decfloat34.
CALL FUNCTION '{{P}}CRANE_FEE_OLD'
EXPORTING
iv_crane_type = 'XX'
iv_hours = 1
iv_distance_km = 0
iv_weekend = abap_false
iv_customer = 'STD'
IMPORTING
ev_total = lv_total
EXCEPTIONS
invalid_crane_type = 1
invalid_hours = 2
OTHERS = 3.
cl_abap_unit_assert=>assert_equals( exp = 1 act = sy-subrc ).
ENDMETHOD.
ENDCLASS.