Files
abap-llm/tasks_gen/eval/G0189/reference/duty_test.clas.abap

73 lines
2.0 KiB
ABAP

CLASS {{p}}duty_test DEFINITION PUBLIC FINAL CREATE PUBLIC
FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
PRIVATE SECTION.
METHODS duty_for
IMPORTING
iv_value TYPE decfloat34
iv_country TYPE string
iv_category TYPE string
RETURNING
VALUE(rv_duty) TYPE decfloat34.
METHODS food_duty FOR TESTING.
METHODS rounding FOR TESTING.
METHODS minimum FOR TESTING.
METHODS preferential FOR TESTING.
METHODS negative_value FOR TESTING.
ENDCLASS.
CLASS {{p}}duty_test IMPLEMENTATION.
METHOD duty_for.
CALL FUNCTION '{{P}}CUSTOMS_DUTY_OLD'
EXPORTING
iv_value = iv_value
iv_country = iv_country
iv_category = iv_category
IMPORTING
ev_duty = rv_duty
EXCEPTIONS
invalid_value = 1
OTHERS = 2.
cl_abap_unit_assert=>assert_subrc( exp = 0 ).
ENDMETHOD.
METHOD food_duty.
cl_abap_unit_assert=>assert_equals(
exp = CONV decfloat34( 50 )
act = duty_for( iv_value = 1000 iv_country = 'US' iv_category = 'FOOD' ) ).
ENDMETHOD.
METHOD rounding.
cl_abap_unit_assert=>assert_equals(
exp = CONV decfloat34( '6.19' )
act = duty_for( iv_value = '123.7' iv_country = 'US' iv_category = 'FOOD' ) ).
ENDMETHOD.
METHOD minimum.
cl_abap_unit_assert=>assert_equals(
exp = CONV decfloat34( 5 )
act = duty_for( iv_value = 50 iv_country = 'US' iv_category = 'FOOD' ) ).
ENDMETHOD.
METHOD preferential.
cl_abap_unit_assert=>assert_equals(
exp = CONV decfloat34( 0 )
act = duty_for( iv_value = 10000 iv_country = 'FR' iv_category = 'FOOD' ) ).
ENDMETHOD.
METHOD negative_value.
DATA lv_duty TYPE decfloat34.
CALL FUNCTION '{{P}}CUSTOMS_DUTY_OLD'
EXPORTING
iv_value = -1
iv_country = 'US'
iv_category = 'FOOD'
IMPORTING
ev_duty = lv_duty
EXCEPTIONS
invalid_value = 1
OTHERS = 2.
cl_abap_unit_assert=>assert_equals( exp = 1 act = sy-subrc ).
ENDMETHOD.
ENDCLASS.