101 lines
3.7 KiB
ABAP
101 lines
3.7 KiB
ABAP
CLASS {{p}}t37_hidden DEFINITION PUBLIC FINAL CREATE PUBLIC
|
|
FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
|
|
PRIVATE SECTION.
|
|
METHODS call
|
|
IMPORTING iv_program TYPE string
|
|
iv_vehicle TYPE string
|
|
iv_wax TYPE abap_bool DEFAULT abap_false
|
|
iv_fleet TYPE abap_bool DEFAULT abap_false
|
|
iv_price TYPE decfloat34 DEFAULT 99
|
|
EXPORTING ev_price TYPE decfloat34
|
|
ev_reject TYPE abap_bool
|
|
ev_subrc TYPE sysubrc.
|
|
METHODS basic_small_price FOR TESTING.
|
|
METHODS plus_medium_price FOR TESTING.
|
|
METHODS premium_wax_free FOR TESTING.
|
|
METHODS fleet_discount_rounds FOR TESTING.
|
|
METHODS fleet_rounds_up FOR TESTING.
|
|
METHODS large_basic_rejected FOR TESTING.
|
|
METHODS invalid_program_raises FOR TESTING.
|
|
METHODS invalid_vehicle_raises FOR TESTING.
|
|
METHODS reject_flag_false FOR TESTING.
|
|
ENDCLASS.
|
|
|
|
|
|
CLASS {{p}}t37_hidden IMPLEMENTATION.
|
|
METHOD call.
|
|
ev_price = iv_price.
|
|
CALL FUNCTION '{{P}}WASH_FEE'
|
|
EXPORTING
|
|
iv_program = iv_program
|
|
iv_vehicle = iv_vehicle
|
|
iv_extra_wax = iv_wax
|
|
iv_fleet = iv_fleet
|
|
IMPORTING
|
|
ev_reject = ev_reject
|
|
CHANGING
|
|
cv_price = ev_price
|
|
EXCEPTIONS
|
|
invalid_program = 1
|
|
invalid_vehicle = 2
|
|
OTHERS = 3.
|
|
ev_subrc = sy-subrc.
|
|
ENDMETHOD.
|
|
|
|
METHOD basic_small_price.
|
|
call( EXPORTING iv_program = `BASIC` iv_vehicle = `S`
|
|
IMPORTING ev_price = DATA(lv_price) ).
|
|
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '8.50' ) act = lv_price ).
|
|
ENDMETHOD.
|
|
|
|
METHOD plus_medium_price.
|
|
call( EXPORTING iv_program = `PLUS` iv_vehicle = `M`
|
|
IMPORTING ev_price = DATA(lv_price) ).
|
|
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '15.00' ) act = lv_price ).
|
|
ENDMETHOD.
|
|
|
|
METHOD premium_wax_free.
|
|
call( EXPORTING iv_program = `PREMIUM` iv_vehicle = `S` iv_wax = abap_true
|
|
IMPORTING ev_price = DATA(lv_price) ).
|
|
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '18.50' ) act = lv_price ).
|
|
ENDMETHOD.
|
|
|
|
METHOD fleet_discount_rounds.
|
|
call( EXPORTING iv_program = `BASIC` iv_vehicle = `S` iv_fleet = abap_true
|
|
IMPORTING ev_price = DATA(lv_price) ).
|
|
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '7.23' ) act = lv_price ).
|
|
ENDMETHOD.
|
|
|
|
METHOD fleet_rounds_up.
|
|
call( EXPORTING iv_program = `PREMIUM` iv_vehicle = `S` iv_wax = abap_true
|
|
iv_fleet = abap_true
|
|
IMPORTING ev_price = DATA(lv_price) ).
|
|
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '15.73' ) act = lv_price ).
|
|
ENDMETHOD.
|
|
|
|
METHOD large_basic_rejected.
|
|
call( EXPORTING iv_program = `BASIC` iv_vehicle = `L`
|
|
IMPORTING ev_price = DATA(lv_price) ev_reject = DATA(lv_reject) ).
|
|
cl_abap_unit_assert=>assert_equals( exp = abap_true act = lv_reject ).
|
|
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( 0 ) act = lv_price ).
|
|
ENDMETHOD.
|
|
|
|
METHOD invalid_program_raises.
|
|
call( EXPORTING iv_program = `GOLD` iv_vehicle = `S`
|
|
IMPORTING ev_subrc = DATA(lv_subrc) ).
|
|
cl_abap_unit_assert=>assert_equals( exp = 1 act = lv_subrc ).
|
|
ENDMETHOD.
|
|
|
|
METHOD invalid_vehicle_raises.
|
|
call( EXPORTING iv_program = `BASIC` iv_vehicle = `XL`
|
|
IMPORTING ev_subrc = DATA(lv_subrc) ).
|
|
cl_abap_unit_assert=>assert_equals( exp = 2 act = lv_subrc ).
|
|
ENDMETHOD.
|
|
|
|
METHOD reject_flag_false.
|
|
call( EXPORTING iv_program = `PLUS` iv_vehicle = `M`
|
|
IMPORTING ev_reject = DATA(lv_reject) ).
|
|
cl_abap_unit_assert=>assert_equals( exp = abap_false act = lv_reject ).
|
|
ENDMETHOD.
|
|
ENDCLASS.
|