Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014aUaQeLnwbb1zTpN7kHeat
69 lines
2.3 KiB
ABAP
69 lines
2.3 KiB
ABAP
CLASS {{p}}t21_test 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_bill FOR TESTING.
|
|
METHODS tier_bill FOR TESTING.
|
|
METHODS debit_bill FOR TESTING.
|
|
METHODS invalid_input FOR TESTING.
|
|
METHODS unknown_tariff FOR TESTING.
|
|
ENDCLASS.
|
|
|
|
|
|
CLASS {{p}}t21_test 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_bill.
|
|
bill( EXPORTING iv_consumption = 100 iv_tariff = `BASIC`
|
|
IMPORTING ev_bill = DATA(lv_bill) ev_subrc = DATA(lv_rc) ).
|
|
cl_abap_unit_assert=>assert_equals( exp = 0 act = lv_rc ).
|
|
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '44.00' ) act = lv_bill ).
|
|
ENDMETHOD.
|
|
|
|
METHOD tier_bill.
|
|
bill( EXPORTING iv_consumption = 400 iv_tariff = `BASIC`
|
|
IMPORTING ev_bill = DATA(lv_bill) ev_subrc = DATA(lv_rc) ).
|
|
cl_abap_unit_assert=>assert_equals( exp = 0 act = lv_rc ).
|
|
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '133.60' ) act = lv_bill ).
|
|
ENDMETHOD.
|
|
|
|
METHOD debit_bill.
|
|
bill( EXPORTING iv_consumption = 400 iv_tariff = `BASIC` iv_direct_debit = abap_true
|
|
IMPORTING ev_bill = DATA(lv_bill) ev_subrc = DATA(lv_rc) ).
|
|
cl_abap_unit_assert=>assert_equals( exp = 0 act = lv_rc ).
|
|
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '130.93' ) act = lv_bill ).
|
|
ENDMETHOD.
|
|
|
|
METHOD invalid_input.
|
|
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.
|