109 lines
4.6 KiB
ABAP
109 lines
4.6 KiB
ABAP
CLASS {{p}}farrier_test DEFINITION PUBLIC FINAL CREATE PUBLIC
|
|
FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
|
|
PRIVATE SECTION.
|
|
METHODS run_visit
|
|
IMPORTING iv_horses TYPE i
|
|
iv_km TYPE decfloat34
|
|
iv_new_shoes TYPE abap_bool
|
|
iv_contract TYPE abap_bool
|
|
EXPORTING ev_fee TYPE decfloat34
|
|
ev_weeks TYPE i
|
|
ev_reject TYPE abap_bool
|
|
ev_subrc TYPE sysubrc.
|
|
METHODS standard_visit FOR TESTING.
|
|
METHODS bulk_visit FOR TESTING.
|
|
METHODS travel_rules FOR TESTING.
|
|
METHODS contract_visit FOR TESTING.
|
|
METHODS rejected_and_invalid FOR TESTING.
|
|
ENDCLASS.
|
|
|
|
|
|
CLASS {{p}}farrier_test IMPLEMENTATION.
|
|
METHOD run_visit.
|
|
CALL FUNCTION '{{P}}FARRIER_FEE'
|
|
EXPORTING
|
|
iv_horses = iv_horses
|
|
iv_km = iv_km
|
|
iv_new_shoes = iv_new_shoes
|
|
iv_contract = iv_contract
|
|
IMPORTING
|
|
ev_fee = ev_fee
|
|
ev_weeks = ev_weeks
|
|
ev_reject = ev_reject
|
|
EXCEPTIONS
|
|
invalid_horses = 1
|
|
OTHERS = 2.
|
|
ev_subrc = sy-subrc.
|
|
ENDMETHOD.
|
|
|
|
METHOD standard_visit.
|
|
DATA lv_fee TYPE decfloat34.
|
|
DATA lv_weeks TYPE i.
|
|
DATA lv_reject TYPE abap_bool.
|
|
DATA lv_subrc TYPE sysubrc.
|
|
DATA lv_expected TYPE decfloat34 VALUE '100'.
|
|
run_visit( EXPORTING iv_horses = 2 iv_km = 10 iv_new_shoes = abap_false iv_contract = abap_false
|
|
IMPORTING ev_fee = lv_fee ev_weeks = lv_weeks ev_reject = lv_reject ev_subrc = lv_subrc ).
|
|
cl_abap_unit_assert=>assert_equals( exp = 0 act = lv_subrc ).
|
|
cl_abap_unit_assert=>assert_false( lv_reject ).
|
|
cl_abap_unit_assert=>assert_equals( exp = lv_expected act = lv_fee ).
|
|
cl_abap_unit_assert=>assert_equals( exp = 6 act = lv_weeks ).
|
|
ENDMETHOD.
|
|
|
|
METHOD bulk_visit.
|
|
DATA lv_fee TYPE decfloat34.
|
|
DATA lv_weeks TYPE i.
|
|
DATA lv_reject TYPE abap_bool.
|
|
DATA lv_subrc TYPE sysubrc.
|
|
DATA lv_expected TYPE decfloat34 VALUE '230'.
|
|
run_visit( EXPORTING iv_horses = 5 iv_km = 10 iv_new_shoes = abap_false iv_contract = abap_false
|
|
IMPORTING ev_fee = lv_fee ev_weeks = lv_weeks ev_reject = lv_reject ev_subrc = lv_subrc ).
|
|
cl_abap_unit_assert=>assert_equals( exp = lv_expected act = lv_fee ).
|
|
cl_abap_unit_assert=>assert_equals( exp = 6 act = lv_weeks ).
|
|
ENDMETHOD.
|
|
|
|
METHOD travel_rules.
|
|
DATA lv_fee TYPE decfloat34.
|
|
DATA lv_weeks TYPE i.
|
|
DATA lv_reject TYPE abap_bool.
|
|
DATA lv_subrc TYPE sysubrc.
|
|
DATA lv_minimum TYPE decfloat34 VALUE '55'.
|
|
DATA lv_rounded TYPE decfloat34 VALUE '61'.
|
|
run_visit( EXPORTING iv_horses = 1 iv_km = 3 iv_new_shoes = abap_false iv_contract = abap_false
|
|
IMPORTING ev_fee = lv_fee ev_weeks = lv_weeks ev_reject = lv_reject ev_subrc = lv_subrc ).
|
|
cl_abap_unit_assert=>assert_equals( exp = lv_minimum act = lv_fee ).
|
|
run_visit( EXPORTING iv_horses = 1 iv_km = 26 iv_new_shoes = abap_false iv_contract = abap_false
|
|
IMPORTING ev_fee = lv_fee ev_weeks = lv_weeks ev_reject = lv_reject ev_subrc = lv_subrc ).
|
|
cl_abap_unit_assert=>assert_equals( exp = lv_rounded act = lv_fee ).
|
|
ENDMETHOD.
|
|
|
|
METHOD contract_visit.
|
|
DATA lv_fee TYPE decfloat34.
|
|
DATA lv_weeks TYPE i.
|
|
DATA lv_reject TYPE abap_bool.
|
|
DATA lv_subrc TYPE sysubrc.
|
|
DATA lv_expected TYPE decfloat34 VALUE '352'.
|
|
run_visit( EXPORTING iv_horses = 5 iv_km = 50 iv_new_shoes = abap_true iv_contract = abap_true
|
|
IMPORTING ev_fee = lv_fee ev_weeks = lv_weeks ev_reject = lv_reject ev_subrc = lv_subrc ).
|
|
cl_abap_unit_assert=>assert_equals( exp = lv_expected act = lv_fee ).
|
|
cl_abap_unit_assert=>assert_equals( exp = 4 act = lv_weeks ).
|
|
ENDMETHOD.
|
|
|
|
METHOD rejected_and_invalid.
|
|
DATA lv_fee TYPE decfloat34.
|
|
DATA lv_weeks TYPE i.
|
|
DATA lv_reject TYPE abap_bool.
|
|
DATA lv_subrc TYPE sysubrc.
|
|
DATA lv_expected TYPE decfloat34 VALUE '0'.
|
|
run_visit( EXPORTING iv_horses = 0 iv_km = 10 iv_new_shoes = abap_false iv_contract = abap_false
|
|
IMPORTING ev_fee = lv_fee ev_weeks = lv_weeks ev_reject = lv_reject ev_subrc = lv_subrc ).
|
|
cl_abap_unit_assert=>assert_equals( exp = 0 act = lv_subrc ).
|
|
cl_abap_unit_assert=>assert_true( lv_reject ).
|
|
cl_abap_unit_assert=>assert_equals( exp = lv_expected act = lv_fee ).
|
|
cl_abap_unit_assert=>assert_equals( exp = 0 act = lv_weeks ).
|
|
run_visit( EXPORTING iv_horses = -1 iv_km = 10 iv_new_shoes = abap_false iv_contract = abap_false
|
|
IMPORTING ev_fee = lv_fee ev_weeks = lv_weeks ev_reject = lv_reject ev_subrc = lv_subrc ).
|
|
cl_abap_unit_assert=>assert_equals( exp = 1 act = lv_subrc ).
|
|
ENDMETHOD.
|
|
ENDCLASS.
|