Fix coverage with several contract classes; table annotation and file path checks; clean task dir on write

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 08:44:35 +02:00
parent fb576b0954
commit 03ab36149e
388 changed files with 28620 additions and 339 deletions

View File

@@ -0,0 +1,100 @@
CLASS {{p}}t21_hidden DEFINITION PUBLIC FINAL CREATE PUBLIC
FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
PRIVATE SECTION.
METHODS bill
IMPORTING
iv_consumption TYPE decfloat34
iv_tariff TYPE string
iv_direct_debit TYPE abap_bool DEFAULT abap_false
EXPORTING
ev_bill TYPE decfloat34
ev_subrc TYPE sysubrc.
METHODS basic_no_tier FOR TESTING.
METHODS tier_discount FOR TESTING.
METHODS green_tariff FOR TESTING.
METHODS night_tariff FOR TESTING.
METHODS direct_debit FOR TESTING.
METHODS rounding FOR TESTING.
METHODS tier_boundary FOR TESTING.
METHODS zero_consumption FOR TESTING.
METHODS negative_consumption FOR TESTING.
METHODS unknown_tariff FOR TESTING.
ENDCLASS.
CLASS {{p}}t21_hidden IMPLEMENTATION.
METHOD bill.
CALL FUNCTION '{{P}}ENERGY_BILL'
EXPORTING
iv_consumption = iv_consumption
iv_tariff = iv_tariff
iv_direct_debit = iv_direct_debit
IMPORTING
ev_bill = ev_bill
EXCEPTIONS
invalid_consumption = 1
invalid_tariff = 2
OTHERS = 3.
ev_subrc = sy-subrc.
ENDMETHOD.
METHOD basic_no_tier.
bill( EXPORTING iv_consumption = 100 iv_tariff = `BASIC`
IMPORTING ev_bill = DATA(lv_bill) ).
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '44.00' ) act = lv_bill ).
ENDMETHOD.
METHOD tier_discount.
bill( EXPORTING iv_consumption = 400 iv_tariff = `BASIC`
IMPORTING ev_bill = DATA(lv_bill) ).
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '133.60' ) act = lv_bill ).
ENDMETHOD.
METHOD green_tariff.
bill( EXPORTING iv_consumption = 250 iv_tariff = `GREEN`
IMPORTING ev_bill = DATA(lv_bill) ).
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '107.00' ) act = lv_bill ).
ENDMETHOD.
METHOD night_tariff.
bill( EXPORTING iv_consumption = 500 iv_tariff = `NIGHT`
IMPORTING ev_bill = DATA(lv_bill) ).
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '122.40' ) act = lv_bill ).
ENDMETHOD.
METHOD direct_debit.
bill( EXPORTING iv_consumption = 400 iv_tariff = `BASIC` iv_direct_debit = abap_true
IMPORTING ev_bill = DATA(lv_bill) ).
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '130.93' ) act = lv_bill ).
ENDMETHOD.
METHOD rounding.
bill( EXPORTING iv_consumption = 309 iv_tariff = `BASIC`
IMPORTING ev_bill = DATA(lv_bill) ).
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '110.30' ) act = lv_bill ).
ENDMETHOD.
METHOD tier_boundary.
bill( EXPORTING iv_consumption = 300 iv_tariff = `BASIC`
IMPORTING ev_bill = DATA(lv_bill) ).
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '108.00' ) act = lv_bill ).
ENDMETHOD.
METHOD zero_consumption.
bill( EXPORTING iv_consumption = 0 iv_tariff = `NIGHT`
IMPORTING ev_bill = DATA(lv_bill) ).
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '12.00' ) act = lv_bill ).
ENDMETHOD.
METHOD negative_consumption.
bill( EXPORTING iv_consumption = -1 iv_tariff = `BASIC`
IMPORTING ev_subrc = DATA(lv_rc) ).
cl_abap_unit_assert=>assert_equals( exp = 1 act = lv_rc ).
ENDMETHOD.
METHOD unknown_tariff.
bill( EXPORTING iv_consumption = 100 iv_tariff = `ECO`
IMPORTING ev_subrc = DATA(lv_rc) ).
cl_abap_unit_assert=>assert_equals( exp = 2 act = lv_rc ).
ENDMETHOD.
ENDCLASS.