69 lines
2.1 KiB
ABAP
69 lines
2.1 KiB
ABAP
CLASS {{p}}t88_test DEFINITION PUBLIC FINAL CREATE PUBLIC
|
|
FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
|
|
PRIVATE SECTION.
|
|
METHODS fee_for
|
|
IMPORTING iv_type TYPE string
|
|
iv_hours TYPE decfloat34
|
|
RETURNING VALUE(rv_fee) TYPE decfloat34.
|
|
METHODS day_fee FOR TESTING.
|
|
METHODS night_fee FOR TESTING.
|
|
METHODS holiday_fee FOR TESTING.
|
|
METHODS minimum_fee FOR TESTING.
|
|
METHODS invalid_hours FOR TESTING.
|
|
ENDCLASS.
|
|
|
|
|
|
CLASS {{p}}t88_test IMPLEMENTATION.
|
|
METHOD fee_for.
|
|
DATA lv_skip TYPE abap_bool.
|
|
CALL FUNCTION '{{P}}GUARD_FEE'
|
|
EXPORTING
|
|
iv_shift_type = iv_type
|
|
iv_hours = iv_hours
|
|
IMPORTING
|
|
ev_surcharge = lv_skip
|
|
CHANGING
|
|
cv_fee = rv_fee
|
|
EXCEPTIONS
|
|
invalid_hours = 1
|
|
OTHERS = 2.
|
|
cl_abap_unit_assert=>assert_equals( exp = 0 act = sy-subrc ).
|
|
ENDMETHOD.
|
|
|
|
METHOD day_fee.
|
|
DATA lv_exp TYPE decfloat34 VALUE '102.00'.
|
|
cl_abap_unit_assert=>assert_equals( exp = lv_exp act = fee_for( iv_type = 'DAY' iv_hours = 4 ) ).
|
|
ENDMETHOD.
|
|
|
|
METHOD night_fee.
|
|
DATA lv_exp TYPE decfloat34 VALUE '127.50'.
|
|
cl_abap_unit_assert=>assert_equals( exp = lv_exp act = fee_for( iv_type = 'NIGHT' iv_hours = 4 ) ).
|
|
ENDMETHOD.
|
|
|
|
METHOD holiday_fee.
|
|
DATA lv_exp TYPE decfloat34 VALUE '204.00'.
|
|
cl_abap_unit_assert=>assert_equals( exp = lv_exp act = fee_for( iv_type = 'HOLIDAY' iv_hours = 4 ) ).
|
|
ENDMETHOD.
|
|
|
|
METHOD minimum_fee.
|
|
DATA lv_exp TYPE decfloat34 VALUE '50.00'.
|
|
cl_abap_unit_assert=>assert_equals( exp = lv_exp act = fee_for( iv_type = 'DAY' iv_hours = 1 ) ).
|
|
ENDMETHOD.
|
|
|
|
METHOD invalid_hours.
|
|
DATA lv_fee TYPE decfloat34 VALUE '7.00'.
|
|
DATA lv_expected TYPE decfloat34 VALUE '7.00'.
|
|
CALL FUNCTION '{{P}}GUARD_FEE'
|
|
EXPORTING
|
|
iv_shift_type = 'DAY'
|
|
iv_hours = 0
|
|
CHANGING
|
|
cv_fee = lv_fee
|
|
EXCEPTIONS
|
|
invalid_hours = 1
|
|
OTHERS = 2.
|
|
cl_abap_unit_assert=>assert_equals( exp = 1 act = sy-subrc ).
|
|
cl_abap_unit_assert=>assert_equals( exp = lv_expected act = lv_fee ).
|
|
ENDMETHOD.
|
|
ENDCLASS.
|