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

80 lines
2.4 KiB
ABAP

CLASS {{p}}t42_test DEFINITION PUBLIC FINAL CREATE PUBLIC
FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
PRIVATE SECTION.
METHODS fee_for
IMPORTING
iv_style TYPE string
iv_sessions TYPE i
RETURNING
VALUE(rv_fee) TYPE decfloat34.
METHODS line_fee FOR TESTING.
METHODS shade_fee FOR TESTING.
METHODS fee_limits FOR TESTING.
METHODS deposit_flag FOR TESTING.
METHODS invalid_sessions FOR TESTING.
ENDCLASS.
CLASS {{p}}t42_test IMPLEMENTATION.
METHOD fee_for.
DATA lv_deposit TYPE abap_bool.
CALL FUNCTION '{{P}}TATTOO_FEE'
EXPORTING
iv_style = iv_style
iv_sessions = iv_sessions
IMPORTING
ev_deposit = lv_deposit
CHANGING
cv_fee = rv_fee
EXCEPTIONS
invalid_sessions = 1
OTHERS = 2.
cl_abap_unit_assert=>assert_subrc( exp = 0 ).
ENDMETHOD.
METHOD line_fee.
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '200.00' )
act = fee_for( iv_style = `LINE` iv_sessions = 2 ) ).
ENDMETHOD.
METHOD shade_fee.
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '146.66' )
act = fee_for( iv_style = `SHADE` iv_sessions = 2 ) ).
ENDMETHOD.
METHOD fee_limits.
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '150.00' )
act = fee_for( iv_style = `LINE` iv_sessions = 1 ) ).
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '800.00' )
act = fee_for( iv_style = `LINE` iv_sessions = 20 ) ).
ENDMETHOD.
METHOD deposit_flag.
DATA lv_deposit TYPE abap_bool.
DATA lv_fee TYPE decfloat34.
CALL FUNCTION '{{P}}TATTOO_FEE'
EXPORTING
iv_style = `LINE`
iv_sessions = 7
IMPORTING
ev_deposit = lv_deposit
CHANGING
cv_fee = lv_fee.
cl_abap_unit_assert=>assert_true( lv_deposit ).
ENDMETHOD.
METHOD invalid_sessions.
DATA lv_fee TYPE decfloat34.
CALL FUNCTION '{{P}}TATTOO_FEE'
EXPORTING
iv_style = `LINE`
iv_sessions = 0
CHANGING
cv_fee = lv_fee
EXCEPTIONS
invalid_sessions = 1
OTHERS = 2.
cl_abap_unit_assert=>assert_equals( exp = 1 act = sy-subrc ).
ENDMETHOD.
ENDCLASS.