ADT fallback: Accept headers for FUNC; G0189 accepted; regen2 results

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014aUaQeLnwbb1zTpN7kHeat
This commit is contained in:
Kral
2026-10-03 16:31:03 +02:00
parent 428b3565b2
commit 7510131a7d
335 changed files with 12047 additions and 5545 deletions

View File

@@ -0,0 +1,95 @@
CLASS ltc_provision_calc DEFINITION FINAL FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
PRIVATE SECTION.
DATA mo_cut TYPE REF TO {{p}}provision_calc.
METHODS setup.
METHODS empty_order FOR TESTING.
METHODS material_missing FOR TESTING.
METHODS duplicate_material FOR TESTING.
METHODS value_of_valid_order FOR TESTING.
METHODS limit_exceeded FOR TESTING.
METHODS rounds_total FOR TESTING.
ENDCLASS.
CLASS ltc_provision_calc IMPLEMENTATION.
METHOD setup.
mo_cut = NEW {{p}}provision_calc( ).
ENDMETHOD.
METHOD empty_order.
DATA lt_lines TYPE {{p}}provision_calc=>tt_lines.
TRY.
mo_cut->check_order( lt_lines ).
cl_abap_unit_assert=>fail( ).
CATCH {{p}}cx_prov_error INTO DATA(lx_error).
cl_abap_unit_assert=>assert_equals( exp = {{p}}provision_calc=>c_empty_order
act = lx_error->reason ).
ENDTRY.
ENDMETHOD.
METHOD material_missing.
DATA lt_lines TYPE {{p}}provision_calc=>tt_lines.
lt_lines = VALUE #( ( material = ` ` quantity = 1 price = 1 ) ).
TRY.
mo_cut->check_order( lt_lines ).
cl_abap_unit_assert=>fail( ).
CATCH {{p}}cx_prov_error INTO DATA(lx_error).
cl_abap_unit_assert=>assert_equals( exp = {{p}}provision_calc=>c_material_missing
act = lx_error->reason ).
ENDTRY.
ENDMETHOD.
METHOD duplicate_material.
DATA lt_lines TYPE {{p}}provision_calc=>tt_lines.
lt_lines = VALUE #( ( material = 'ROPE' quantity = 1 price = 1 )
( material = 'ROPE' quantity = 2 price = 1 ) ).
TRY.
mo_cut->check_order( lt_lines ).
cl_abap_unit_assert=>fail( ).
CATCH {{p}}cx_prov_error INTO DATA(lx_error).
cl_abap_unit_assert=>assert_equals( exp = {{p}}provision_calc=>c_duplicate_material
act = lx_error->reason ).
ENDTRY.
ENDMETHOD.
METHOD value_of_valid_order.
DATA lt_lines TYPE {{p}}provision_calc=>tt_lines.
lt_lines = VALUE #( ( material = 'ROPE' quantity = 2 price = '3.50' )
( material = 'BOLT' quantity = 3 price = '1.25' ) ).
DATA lv_expected TYPE {{p}}provision_calc=>ty_amount VALUE '10.75'.
DATA lv_value TYPE {{p}}provision_calc=>ty_amount.
TRY.
lv_value = mo_cut->calculate_value( lt_lines ).
CATCH {{p}}cx_prov_error INTO DATA(lx_error).
cl_abap_unit_assert=>fail( msg = |Unexpected reason { lx_error->reason }| ).
ENDTRY.
cl_abap_unit_assert=>assert_equals( exp = lv_expected act = lv_value ).
ENDMETHOD.
METHOD limit_exceeded.
DATA lt_lines TYPE {{p}}provision_calc=>tt_lines.
lt_lines = VALUE #( ( material = 'ENGINE' quantity = 1 price = '100000.01' ) ).
TRY.
mo_cut->check_order( lt_lines ).
cl_abap_unit_assert=>fail( ).
CATCH {{p}}cx_prov_error INTO DATA(lx_error).
cl_abap_unit_assert=>assert_equals( exp = {{p}}provision_calc=>c_limit_exceeded
act = lx_error->reason ).
ENDTRY.
ENDMETHOD.
METHOD rounds_total.
DATA lt_lines TYPE {{p}}provision_calc=>tt_lines.
lt_lines = VALUE #( ( material = 'ROPE' quantity = '1.005' price = '1.00' )
( material = 'BOLT' quantity = '1.005' price = '1.00' ) ).
DATA lv_expected TYPE {{p}}provision_calc=>ty_amount VALUE '2.01'.
DATA lv_value TYPE {{p}}provision_calc=>ty_amount.
TRY.
lv_value = mo_cut->calculate_value( lt_lines ).
CATCH {{p}}cx_prov_error INTO DATA(lx_error).
cl_abap_unit_assert=>fail( msg = |Unexpected reason { lx_error->reason }| ).
ENDTRY.
cl_abap_unit_assert=>assert_equals( exp = lv_expected act = lv_value ).
ENDMETHOD.
ENDCLASS.