Files
abap-llm/tasks_gen/train/G1142/reference/hut_fee_test.clas.abap
2026-10-05 18:02:52 +02:00

90 lines
2.6 KiB
ABAP

CLASS {{p}}hut_fee_test DEFINITION PUBLIC FINAL CREATE PUBLIC
FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
PRIVATE SECTION.
METHODS fee_of
IMPORTING
iv_type TYPE string
iv_nights TYPE i
iv_member TYPE abap_bool DEFAULT abap_false
iv_breakfast TYPE abap_bool DEFAULT abap_false
RETURNING
VALUE(rv_fee) TYPE decfloat34.
METHODS adult_rate FOR TESTING.
METHODS child_with_breakfast FOR TESTING.
METHODS member_share FOR TESTING.
METHODS dog_rules FOR TESTING.
METHODS stay_discount FOR TESTING.
METHODS invalid_nights FOR TESTING.
ENDCLASS.
CLASS {{p}}hut_fee_test IMPLEMENTATION.
METHOD fee_of.
DATA lv_subrc TYPE sysubrc.
CALL FUNCTION '{{P}}HUT_FEE'
EXPORTING
iv_guest_type = iv_type
iv_nights = iv_nights
iv_member = iv_member
iv_breakfast = iv_breakfast
IMPORTING
ev_fee = rv_fee
EXCEPTIONS
invalid_nights = 1
OTHERS = 2.
lv_subrc = sy-subrc.
cl_abap_unit_assert=>assert_equals( exp = 0 act = lv_subrc ).
ENDMETHOD.
METHOD adult_rate.
cl_abap_unit_assert=>assert_equals(
exp = CONV decfloat34( '28.00' )
act = fee_of( iv_type = `ADULT` iv_nights = 1 ) ).
ENDMETHOD.
METHOD child_with_breakfast.
cl_abap_unit_assert=>assert_equals(
exp = CONV decfloat34( '47.00' )
act = fee_of( iv_type = `CHILD` iv_nights = 2 iv_breakfast = abap_true ) ).
ENDMETHOD.
METHOD member_share.
cl_abap_unit_assert=>assert_equals(
exp = CONV decfloat34( '28.00' )
act = fee_of( iv_type = `ADULT` iv_nights = 2 iv_member = abap_true ) ).
ENDMETHOD.
METHOD dog_rules.
cl_abap_unit_assert=>assert_equals(
exp = CONV decfloat34( '10.00' )
act = fee_of( iv_type = `DOG` iv_nights = 2 iv_member = abap_true iv_breakfast = abap_true ) ).
ENDMETHOD.
METHOD stay_discount.
cl_abap_unit_assert=>assert_equals(
exp = CONV decfloat34( '75.60' )
act = fee_of( iv_type = `ADULT` iv_nights = 3 ) ).
cl_abap_unit_assert=>assert_equals(
exp = CONV decfloat34( '156.80' )
act = fee_of( iv_type = `ADULT` iv_nights = 7 ) ).
ENDMETHOD.
METHOD invalid_nights.
DATA lv_fee TYPE decfloat34.
DATA lv_subrc TYPE sysubrc.
CALL FUNCTION '{{P}}HUT_FEE'
EXPORTING
iv_guest_type = `ADULT`
iv_nights = 0
IMPORTING
ev_fee = lv_fee
EXCEPTIONS
invalid_nights = 1
OTHERS = 2.
lv_subrc = sy-subrc.
cl_abap_unit_assert=>assert_equals( exp = 1 act = lv_subrc ).
ENDMETHOD.
ENDCLASS.