CLASS {{p}}t14_test DEFINITION PUBLIC FINAL CREATE PUBLIC FOR TESTING DURATION SHORT RISK LEVEL HARMLESS. PRIVATE SECTION. METHODS call_fee IMPORTING iv_km TYPE decfloat34 iv_class TYPE i iv_axles TYPE i EXPORTING ev_fee TYPE decfloat34 ev_subrc TYPE sysubrc. METHODS returns_fee FOR TESTING. METHODS rejects_input FOR TESTING. ENDCLASS. CLASS {{p}}t14_test IMPLEMENTATION. METHOD call_fee. CALL FUNCTION '{{P}}TOLL_FEE' EXPORTING iv_distance_km = iv_km iv_weight_class = iv_class iv_axles = iv_axles IMPORTING ev_fee = ev_fee EXCEPTIONS invalid_input = 1 OTHERS = 2. ev_subrc = sy-subrc. ENDMETHOD. METHOD returns_fee. DATA lv_fee TYPE decfloat34. DATA lv_rc TYPE sysubrc. call_fee( EXPORTING iv_km = 100 iv_class = 2 iv_axles = 3 IMPORTING ev_fee = lv_fee ev_subrc = lv_rc ). cl_abap_unit_assert=>assert_equals( exp = 0 act = lv_rc ). cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '14.70' ) act = lv_fee ). ENDMETHOD. METHOD rejects_input. DATA lv_fee TYPE decfloat34. DATA lv_rc TYPE sysubrc. call_fee( EXPORTING iv_km = -1 iv_class = 1 iv_axles = 2 IMPORTING ev_fee = lv_fee ev_subrc = lv_rc ). cl_abap_unit_assert=>assert_equals( exp = 1 act = lv_rc ). cl_abap_unit_assert=>assert_initial( act = lv_fee ). ENDMETHOD. ENDCLASS.