Files
abap-llm/tasks_gen/train/G1097/reference/t14_test.clas.abap
2026-10-05 18:02:52 +02:00

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.