62 lines
1.8 KiB
ABAP
62 lines
1.8 KiB
ABAP
CLASS {{p}}t14_test DEFINITION PUBLIC FINAL CREATE PUBLIC
|
|
FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
|
|
PRIVATE SECTION.
|
|
METHODS fee_for
|
|
IMPORTING iv_material TYPE string
|
|
iv_seam_cm TYPE decfloat34
|
|
iv_express TYPE abap_bool DEFAULT abap_false
|
|
RETURNING VALUE(rv_fee) TYPE decfloat34.
|
|
METHODS steel_charge FOR TESTING.
|
|
METHODS stainless_charge FOR TESTING.
|
|
METHODS aluminium_charge FOR TESTING.
|
|
METHODS express_and_discount FOR TESTING.
|
|
METHODS minimum_charge FOR TESTING.
|
|
ENDCLASS.
|
|
|
|
|
|
CLASS {{p}}t14_test IMPLEMENTATION.
|
|
METHOD fee_for.
|
|
CALL FUNCTION '{{P}}WELD_FEE'
|
|
EXPORTING
|
|
iv_material = iv_material
|
|
iv_seam_cm = iv_seam_cm
|
|
iv_express = iv_express
|
|
CHANGING
|
|
cv_fee = rv_fee
|
|
EXCEPTIONS
|
|
invalid_length = 1
|
|
OTHERS = 2.
|
|
cl_abap_unit_assert=>assert_subrc( exp = 0 ).
|
|
ENDMETHOD.
|
|
|
|
METHOD steel_charge.
|
|
cl_abap_unit_assert=>assert_equals(
|
|
exp = CONV decfloat34( 120 )
|
|
act = fee_for( iv_material = `ST` iv_seam_cm = 10 ) ).
|
|
ENDMETHOD.
|
|
|
|
METHOD stainless_charge.
|
|
cl_abap_unit_assert=>assert_equals(
|
|
exp = CONV decfloat34( 200 )
|
|
act = fee_for( iv_material = `SS` iv_seam_cm = 10 ) ).
|
|
ENDMETHOD.
|
|
|
|
METHOD aluminium_charge.
|
|
cl_abap_unit_assert=>assert_equals(
|
|
exp = CONV decfloat34( 840 )
|
|
act = fee_for( iv_material = `AL` iv_seam_cm = 30 ) ).
|
|
ENDMETHOD.
|
|
|
|
METHOD express_and_discount.
|
|
cl_abap_unit_assert=>assert_equals(
|
|
exp = CONV decfloat34( 3375 )
|
|
act = fee_for( iv_material = `ST` iv_seam_cm = 250 iv_express = abap_true ) ).
|
|
ENDMETHOD.
|
|
|
|
METHOD minimum_charge.
|
|
cl_abap_unit_assert=>assert_equals(
|
|
exp = CONV decfloat34( 40 )
|
|
act = fee_for( iv_material = `ST` iv_seam_cm = 2 ) ).
|
|
ENDMETHOD.
|
|
ENDCLASS.
|