Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014aUaQeLnwbb1zTpN7kHeat
61 lines
2.0 KiB
ABAP
61 lines
2.0 KiB
ABAP
CLASS {{p}}t14_test DEFINITION PUBLIC FINAL CREATE PUBLIC
|
|
FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
|
|
PRIVATE SECTION.
|
|
TYPES: BEGIN OF ty_result,
|
|
fee TYPE decfloat34,
|
|
note TYPE string,
|
|
subrc TYPE sysubrc,
|
|
END OF ty_result.
|
|
METHODS calc
|
|
IMPORTING iv_visitor TYPE string
|
|
iv_day TYPE string
|
|
iv_size TYPE i
|
|
iv_member TYPE abap_bool
|
|
RETURNING VALUE(rs_result) TYPE ty_result.
|
|
METHODS adult_fee FOR TESTING.
|
|
METHODS family_fee FOR TESTING.
|
|
METHODS weekend_and_member FOR TESTING.
|
|
METHODS invalid_input FOR TESTING.
|
|
ENDCLASS.
|
|
|
|
|
|
CLASS {{p}}t14_test IMPLEMENTATION.
|
|
METHOD calc.
|
|
rs_result-fee = 0.
|
|
rs_result-note = ''.
|
|
CALL FUNCTION '{{P}}MUSEUM_FEE_OLD'
|
|
EXPORTING
|
|
iv_visitor = iv_visitor
|
|
iv_day = iv_day
|
|
iv_size = iv_size
|
|
iv_member = iv_member
|
|
IMPORTING
|
|
ev_fee = rs_result-fee
|
|
ev_note = rs_result-note
|
|
EXCEPTIONS
|
|
invalid_input = 1
|
|
OTHERS = 2.
|
|
rs_result-subrc = sy-subrc.
|
|
ENDMETHOD.
|
|
|
|
METHOD adult_fee.
|
|
DATA(ls_r) = me->calc( iv_visitor = 'ADULT' iv_day = 'MON' iv_size = 2 iv_member = abap_false ).
|
|
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( 24 ) act = ls_r-fee ).
|
|
ENDMETHOD.
|
|
|
|
METHOD family_fee.
|
|
DATA(ls_r) = me->calc( iv_visitor = 'FAMILY' iv_day = 'MON' iv_size = 6 iv_member = abap_false ).
|
|
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( 42 ) act = ls_r-fee ).
|
|
ENDMETHOD.
|
|
|
|
METHOD weekend_and_member.
|
|
DATA(ls_r) = me->calc( iv_visitor = 'ADULT' iv_day = 'SAT' iv_size = 2 iv_member = abap_true ).
|
|
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '18.8' ) act = ls_r-fee ).
|
|
ENDMETHOD.
|
|
|
|
METHOD invalid_input.
|
|
DATA(ls_r) = me->calc( iv_visitor = 'ADULT' iv_day = 'MON' iv_size = 0 iv_member = abap_false ).
|
|
cl_abap_unit_assert=>assert_equals( exp = 1 act = ls_r-subrc ).
|
|
ENDMETHOD.
|
|
ENDCLASS.
|