56 lines
1.8 KiB
ABAP
56 lines
1.8 KiB
ABAP
CLASS {{p}}t14_test DEFINITION PUBLIC FINAL CREATE PUBLIC
|
|
FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
|
|
PRIVATE SECTION.
|
|
METHODS price_for
|
|
IMPORTING iv_service TYPE string
|
|
iv_weight TYPE decfloat34
|
|
iv_distance TYPE decfloat34
|
|
RETURNING VALUE(rv_price) TYPE decfloat34.
|
|
METHODS express_price FOR TESTING.
|
|
METHODS standard_price FOR TESTING.
|
|
METHODS minimum_charge FOR TESTING.
|
|
METHODS out_of_area_skips FOR TESTING.
|
|
ENDCLASS.
|
|
|
|
|
|
CLASS {{p}}t14_test IMPLEMENTATION.
|
|
METHOD price_for.
|
|
DATA lv_skip TYPE abap_bool.
|
|
CALL FUNCTION '{{P}}DLV_PRICE'
|
|
EXPORTING iv_service = iv_service iv_weight = iv_weight iv_distance = iv_distance
|
|
IMPORTING ev_skip = lv_skip
|
|
CHANGING cv_price = rv_price
|
|
EXCEPTIONS invalid_weight = 1 OTHERS = 2.
|
|
cl_abap_unit_assert=>assert_subrc( exp = 0 ).
|
|
ENDMETHOD.
|
|
|
|
METHOD express_price.
|
|
cl_abap_unit_assert=>assert_equals(
|
|
exp = CONV decfloat34( 21 )
|
|
act = price_for( iv_service = `EX` iv_weight = 2 iv_distance = 10 ) ).
|
|
ENDMETHOD.
|
|
|
|
METHOD standard_price.
|
|
cl_abap_unit_assert=>assert_equals(
|
|
exp = CONV decfloat34( 15 )
|
|
act = price_for( iv_service = `ST` iv_weight = 5 iv_distance = 20 ) ).
|
|
ENDMETHOD.
|
|
|
|
METHOD minimum_charge.
|
|
cl_abap_unit_assert=>assert_equals(
|
|
exp = CONV decfloat34( 6 )
|
|
act = price_for( iv_service = `ST` iv_weight = '0.5' iv_distance = 1 ) ).
|
|
ENDMETHOD.
|
|
|
|
METHOD out_of_area_skips.
|
|
DATA lv_skip TYPE abap_bool.
|
|
DATA lv_price TYPE decfloat34 VALUE 7.
|
|
CALL FUNCTION '{{P}}DLV_PRICE'
|
|
EXPORTING iv_service = `EX` iv_weight = 2 iv_distance = 400
|
|
IMPORTING ev_skip = lv_skip
|
|
CHANGING cv_price = lv_price.
|
|
cl_abap_unit_assert=>assert_true( lv_skip ).
|
|
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( 7 ) act = lv_price ).
|
|
ENDMETHOD.
|
|
ENDCLASS.
|