Files
abap-llm/tasks_gen/train/G1054/hidden/pest_test_hidden.clas.abap
2026-10-05 18:02:52 +02:00

142 lines
5.8 KiB
ABAP

CLASS {{p}}pest_test_hidden DEFINITION
PUBLIC
FINAL
CREATE PUBLIC
FOR TESTING
DURATION SHORT
RISK LEVEL HARMLESS.
PRIVATE SECTION.
DATA mo_cut TYPE REF TO {{p}}pest_fee.
METHODS setup.
METHODS expect_fee
IMPORTING iv_expected TYPE {{p}}pest_fee=>ty_fee
iv_actual TYPE {{p}}pest_fee=>ty_fee
iv_case TYPE string.
METHODS rats_base_fee FOR TESTING.
METHODS mice_base_fee FOR TESTING.
METHODS wasp_base_fee FOR TESTING.
METHODS unknown_pest_zero FOR TESTING.
METHODS area_surcharge_step FOR TESTING.
METHODS area_surcharge_rounds FOR TESTING.
METHODS no_surcharge_at_100 FOR TESTING.
METHODS urgent_surcharge FOR TESTING.
METHODS contract_discount FOR TESTING.
METHODS discount_excludes_urgent FOR TESTING.
METHODS minimum_fee FOR TESTING.
ENDCLASS.
CLASS {{p}}pest_test_hidden IMPLEMENTATION.
METHOD setup.
mo_cut = NEW {{p}}pest_fee( ).
ENDMETHOD.
METHOD expect_fee.
cl_abap_unit_assert=>assert_equals( exp = iv_expected
act = iv_actual
msg = iv_case ).
ENDMETHOD.
METHOD rats_base_fee.
expect_fee( iv_expected = 120
iv_actual = mo_cut->calculate_fee( iv_pest_type = 'RATS'
iv_area = 50
iv_urgent = abap_false
iv_contract = abap_false )
iv_case = 'RATS base fee' ).
ENDMETHOD.
METHOD mice_base_fee.
expect_fee( iv_expected = 55
iv_actual = mo_cut->calculate_fee( iv_pest_type = 'MICE'
iv_area = 0
iv_urgent = abap_false
iv_contract = abap_false )
iv_case = 'MICE base fee' ).
ENDMETHOD.
METHOD wasp_base_fee.
expect_fee( iv_expected = 150
iv_actual = mo_cut->calculate_fee( iv_pest_type = 'WASP'
iv_area = 100
iv_urgent = abap_false
iv_contract = abap_false )
iv_case = 'WASP base fee' ).
ENDMETHOD.
METHOD unknown_pest_zero.
expect_fee( iv_expected = 0
iv_actual = mo_cut->calculate_fee( iv_pest_type = 'BIRD'
iv_area = 300
iv_urgent = abap_true
iv_contract = abap_true )
iv_case = 'unknown pest type' ).
ENDMETHOD.
METHOD area_surcharge_step.
expect_fee( iv_expected = 135
iv_actual = mo_cut->calculate_fee( iv_pest_type = 'RATS'
iv_area = 101
iv_urgent = abap_false
iv_contract = abap_false )
iv_case = 'one started area step' ).
ENDMETHOD.
METHOD area_surcharge_rounds.
expect_fee( iv_expected = 165
iv_actual = mo_cut->calculate_fee( iv_pest_type = 'RATS'
iv_area = 250
iv_urgent = abap_false
iv_contract = abap_false )
iv_case = 'three started area steps' ).
ENDMETHOD.
METHOD no_surcharge_at_100.
expect_fee( iv_expected = 80
iv_actual = mo_cut->calculate_fee( iv_pest_type = 'ANTS'
iv_area = 100
iv_urgent = abap_false
iv_contract = abap_false )
iv_case = 'no area surcharge at 100' ).
ENDMETHOD.
METHOD urgent_surcharge.
expect_fee( iv_expected = 125
iv_actual = mo_cut->calculate_fee( iv_pest_type = 'ANTS'
iv_area = 100
iv_urgent = abap_true
iv_contract = abap_false )
iv_case = 'urgent surcharge' ).
ENDMETHOD.
METHOD contract_discount.
expect_fee( iv_expected = 135
iv_actual = mo_cut->calculate_fee( iv_pest_type = 'RATS'
iv_area = 200
iv_urgent = abap_false
iv_contract = abap_true )
iv_case = 'contract discount' ).
ENDMETHOD.
METHOD discount_excludes_urgent.
expect_fee( iv_expected = 153
iv_actual = mo_cut->calculate_fee( iv_pest_type = 'RATS'
iv_area = 0
iv_urgent = abap_true
iv_contract = abap_true )
iv_case = 'discount without urgent surcharge' ).
ENDMETHOD.
METHOD minimum_fee.
expect_fee( iv_expected = 50
iv_actual = mo_cut->calculate_fee( iv_pest_type = 'MICE'
iv_area = 0
iv_urgent = abap_false
iv_contract = abap_true )
iv_case = 'minimum fee' ).
ENDMETHOD.
ENDCLASS.