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

142 lines
4.2 KiB
ABAP

CLASS {{p}}hut_fee_hidden 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 rc_of
IMPORTING
iv_type TYPE string
iv_nights TYPE i
RETURNING
VALUE(rv_subrc) TYPE sysubrc.
METHODS adult_one_night FOR TESTING.
METHODS child_with_breakfast FOR TESTING.
METHODS member_halves_rate FOR TESTING.
METHODS dog_ignores_member FOR TESTING.
METHODS dog_gets_no_breakfast FOR TESTING.
METHODS unknown_type_as_adult FOR TESTING.
METHODS lower_case_type FOR TESTING.
METHODS three_nights_discount FOR TESTING.
METHODS seven_nights_discount FOR TESTING.
METHODS two_nights_no_discount FOR TESTING.
METHODS member_full_stay FOR TESTING.
METHODS invalid_nights_raise FOR TESTING.
ENDCLASS.
CLASS {{p}}hut_fee_hidden 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 rc_of.
DATA lv_fee TYPE decfloat34.
CALL FUNCTION '{{P}}HUT_FEE'
EXPORTING
iv_guest_type = iv_type
iv_nights = iv_nights
IMPORTING
ev_fee = lv_fee
EXCEPTIONS
invalid_nights = 1
OTHERS = 2.
rv_subrc = sy-subrc.
ENDMETHOD.
METHOD adult_one_night.
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_halves_rate.
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_ignores_member.
cl_abap_unit_assert=>assert_equals(
exp = CONV decfloat34( '10.00' )
act = fee_of( iv_type = `DOG` iv_nights = 2 iv_member = abap_true ) ).
ENDMETHOD.
METHOD dog_gets_no_breakfast.
cl_abap_unit_assert=>assert_equals(
exp = CONV decfloat34( '10.00' )
act = fee_of( iv_type = `DOG` iv_nights = 2 iv_breakfast = abap_true ) ).
ENDMETHOD.
METHOD unknown_type_as_adult.
cl_abap_unit_assert=>assert_equals(
exp = CONV decfloat34( '28.00' )
act = fee_of( iv_type = `STUDENT` iv_nights = 1 ) ).
ENDMETHOD.
METHOD lower_case_type.
cl_abap_unit_assert=>assert_equals(
exp = CONV decfloat34( '7.00' )
act = fee_of( iv_type = `child` iv_nights = 1 iv_member = abap_true ) ).
ENDMETHOD.
METHOD three_nights_discount.
cl_abap_unit_assert=>assert_equals(
exp = CONV decfloat34( '75.60' )
act = fee_of( iv_type = `ADULT` iv_nights = 3 ) ).
ENDMETHOD.
METHOD seven_nights_discount.
cl_abap_unit_assert=>assert_equals(
exp = CONV decfloat34( '156.80' )
act = fee_of( iv_type = `ADULT` iv_nights = 7 ) ).
ENDMETHOD.
METHOD two_nights_no_discount.
cl_abap_unit_assert=>assert_equals(
exp = CONV decfloat34( '56.00' )
act = fee_of( iv_type = `ADULT` iv_nights = 2 ) ).
ENDMETHOD.
METHOD member_full_stay.
cl_abap_unit_assert=>assert_equals(
exp = CONV decfloat34( '144.90' )
act = fee_of( iv_type = `ADULT` iv_nights = 7 iv_member = abap_true iv_breakfast = abap_true ) ).
ENDMETHOD.
METHOD invalid_nights_raise.
cl_abap_unit_assert=>assert_equals(
exp = 1
act = rc_of( iv_type = `ADULT` iv_nights = 0 ) ).
cl_abap_unit_assert=>assert_equals(
exp = 1
act = rc_of( iv_type = `ADULT` iv_nights = -2 ) ).
ENDMETHOD.
ENDCLASS.