Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014aUaQeLnwbb1zTpN7kHeat
73 lines
2.0 KiB
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.
|