113 lines
4.1 KiB
ABAP
113 lines
4.1 KiB
ABAP
CLASS {{p}}t14_hidden DEFINITION PUBLIC FINAL CREATE PUBLIC
|
|
FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
|
|
PRIVATE SECTION.
|
|
METHODS call
|
|
IMPORTING iv_material TYPE string
|
|
iv_seam_cm TYPE decfloat34
|
|
iv_express TYPE abap_bool DEFAULT abap_false
|
|
iv_fee TYPE decfloat34 DEFAULT 7
|
|
EXPORTING ev_skip TYPE abap_bool
|
|
ev_fee TYPE decfloat34
|
|
ev_subrc TYPE sysubrc.
|
|
METHODS rejects_negative_len FOR TESTING.
|
|
METHODS steel_rate FOR TESTING.
|
|
METHODS stainless_rate FOR TESTING.
|
|
METHODS alu_short_charged FOR TESTING.
|
|
METHODS alu_long_skipped FOR TESTING.
|
|
METHODS unknown_mat_skipped FOR TESTING.
|
|
METHODS discount_over_200cm FOR TESTING.
|
|
METHODS express_surcharge FOR TESTING.
|
|
METHODS minimum_charge FOR TESTING.
|
|
METHODS rounding_two_decimals FOR TESTING.
|
|
METHODS skip_false_for_steel FOR TESTING.
|
|
ENDCLASS.
|
|
|
|
|
|
CLASS {{p}}t14_hidden IMPLEMENTATION.
|
|
METHOD call.
|
|
ev_fee = iv_fee.
|
|
CALL FUNCTION '{{P}}WELD_FEE'
|
|
EXPORTING
|
|
iv_material = iv_material
|
|
iv_seam_cm = iv_seam_cm
|
|
iv_express = iv_express
|
|
IMPORTING
|
|
ev_skip = ev_skip
|
|
CHANGING
|
|
cv_fee = ev_fee
|
|
EXCEPTIONS
|
|
invalid_length = 1
|
|
OTHERS = 2.
|
|
ev_subrc = sy-subrc.
|
|
ENDMETHOD.
|
|
|
|
METHOD rejects_negative_len.
|
|
call( EXPORTING iv_material = `ST` iv_seam_cm = -1
|
|
IMPORTING ev_subrc = DATA(lv_rc) ).
|
|
cl_abap_unit_assert=>assert_equals( exp = 1 act = lv_rc ).
|
|
ENDMETHOD.
|
|
|
|
METHOD steel_rate.
|
|
call( EXPORTING iv_material = `ST` iv_seam_cm = 10
|
|
IMPORTING ev_fee = DATA(lv_fee) ).
|
|
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( 120 ) act = lv_fee ).
|
|
ENDMETHOD.
|
|
|
|
METHOD stainless_rate.
|
|
call( EXPORTING iv_material = `SS` iv_seam_cm = 10
|
|
IMPORTING ev_fee = DATA(lv_fee) ).
|
|
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( 200 ) act = lv_fee ).
|
|
ENDMETHOD.
|
|
|
|
METHOD alu_short_charged.
|
|
call( EXPORTING iv_material = `AL` iv_seam_cm = 30
|
|
IMPORTING ev_fee = DATA(lv_fee) ev_skip = DATA(lv_skip) ).
|
|
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( 840 ) act = lv_fee ).
|
|
cl_abap_unit_assert=>assert_equals( exp = abap_false act = lv_skip ).
|
|
ENDMETHOD.
|
|
|
|
METHOD alu_long_skipped.
|
|
call( EXPORTING iv_material = `AL` iv_seam_cm = 60 iv_fee = 7
|
|
IMPORTING ev_fee = DATA(lv_fee) ev_skip = DATA(lv_skip) ).
|
|
cl_abap_unit_assert=>assert_equals( exp = abap_true act = lv_skip ).
|
|
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( 7 ) act = lv_fee ).
|
|
ENDMETHOD.
|
|
|
|
METHOD unknown_mat_skipped.
|
|
call( EXPORTING iv_material = `TI` iv_seam_cm = 10 iv_fee = 5
|
|
IMPORTING ev_fee = DATA(lv_fee) ev_skip = DATA(lv_skip) ).
|
|
cl_abap_unit_assert=>assert_equals( exp = abap_true act = lv_skip ).
|
|
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( 5 ) act = lv_fee ).
|
|
ENDMETHOD.
|
|
|
|
METHOD discount_over_200cm.
|
|
call( EXPORTING iv_material = `ST` iv_seam_cm = 250
|
|
IMPORTING ev_fee = DATA(lv_fee) ).
|
|
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( 2700 ) act = lv_fee ).
|
|
ENDMETHOD.
|
|
|
|
METHOD express_surcharge.
|
|
call( EXPORTING iv_material = `ST` iv_seam_cm = 10 iv_express = abap_true
|
|
IMPORTING ev_fee = DATA(lv_fee) ).
|
|
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( 150 ) act = lv_fee ).
|
|
ENDMETHOD.
|
|
|
|
METHOD minimum_charge.
|
|
call( EXPORTING iv_material = `ST` iv_seam_cm = 2
|
|
IMPORTING ev_fee = DATA(lv_fee) ).
|
|
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( 40 ) act = lv_fee ).
|
|
ENDMETHOD.
|
|
|
|
METHOD rounding_two_decimals.
|
|
call( EXPORTING iv_material = `ST` iv_seam_cm = '10.00125'
|
|
IMPORTING ev_fee = DATA(lv_fee) ).
|
|
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '120.02' ) act = lv_fee ).
|
|
ENDMETHOD.
|
|
|
|
METHOD skip_false_for_steel.
|
|
call( EXPORTING iv_material = `ST` iv_seam_cm = 10
|
|
IMPORTING ev_skip = DATA(lv_skip) ).
|
|
cl_abap_unit_assert=>assert_equals( exp = abap_false act = lv_skip ).
|
|
ENDMETHOD.
|
|
ENDCLASS.
|