83 lines
2.9 KiB
ABAP
83 lines
2.9 KiB
ABAP
CLASS {{p}}mix_recipe_test DEFINITION PUBLIC FINAL CREATE PUBLIC
|
|
FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
|
|
PUBLIC SECTION.
|
|
INTERFACES {{p}}if_mix_recipe.
|
|
PRIVATE SECTION.
|
|
DATA mo_cut TYPE REF TO {{p}}if_mix_recipe.
|
|
METHODS setup.
|
|
METHODS valid_order_is_ok FOR TESTING.
|
|
METHODS unknown_grade_is_rejected FOR TESTING.
|
|
METHODS volume_out_of_range FOR TESTING.
|
|
METHODS mix_of_small_order FOR TESTING.
|
|
METHODS mix_of_large_order FOR TESTING.
|
|
METHODS invalid_order_has_no_mix FOR TESTING.
|
|
ENDCLASS.
|
|
|
|
|
|
CLASS {{p}}mix_recipe_test IMPLEMENTATION.
|
|
METHOD setup.
|
|
mo_cut = me.
|
|
ENDMETHOD.
|
|
|
|
METHOD valid_order_is_ok.
|
|
cl_abap_unit_assert=>assert_equals(
|
|
exp = {{p}}if_mix_recipe=>c_status-ok
|
|
act = mo_cut->check_order( iv_grade = 'C25' iv_volume = '1.30' ) ).
|
|
ENDMETHOD.
|
|
|
|
METHOD unknown_grade_is_rejected.
|
|
cl_abap_unit_assert=>assert_equals(
|
|
exp = {{p}}if_mix_recipe=>c_status-grade
|
|
act = mo_cut->check_order( iv_grade = 'C40' iv_volume = '5.00' ) ).
|
|
ENDMETHOD.
|
|
|
|
METHOD volume_out_of_range.
|
|
cl_abap_unit_assert=>assert_equals(
|
|
exp = {{p}}if_mix_recipe=>c_status-volume
|
|
act = mo_cut->check_order( iv_grade = 'C20' iv_volume = '25.00' ) ).
|
|
ENDMETHOD.
|
|
|
|
METHOD mix_of_small_order.
|
|
DATA(ls_mix) = mo_cut->mix_for( iv_grade = 'C25' iv_volume = '1.30' ).
|
|
cl_abap_unit_assert=>assert_equals(
|
|
exp = CONV {{p}}if_mix_recipe=>ty_qty( '458.00' )
|
|
act = ls_mix-cement_kg ).
|
|
cl_abap_unit_assert=>assert_equals(
|
|
exp = CONV {{p}}if_mix_recipe=>ty_qty( '1001.00' )
|
|
act = ls_mix-sand_kg ).
|
|
cl_abap_unit_assert=>assert_equals(
|
|
exp = CONV {{p}}if_mix_recipe=>ty_qty( '1659.00' )
|
|
act = ls_mix-gravel_kg ).
|
|
cl_abap_unit_assert=>assert_equals(
|
|
exp = CONV {{p}}if_mix_recipe=>ty_qty( '251.00' )
|
|
act = ls_mix-water_l ).
|
|
ENDMETHOD.
|
|
|
|
METHOD mix_of_large_order.
|
|
DATA(ls_mix) = mo_cut->mix_for( iv_grade = 'C35' iv_volume = '5.00' ).
|
|
cl_abap_unit_assert=>assert_equals(
|
|
exp = CONV {{p}}if_mix_recipe=>ty_qty( '2000.00' )
|
|
act = ls_mix-cement_kg ).
|
|
cl_abap_unit_assert=>assert_equals(
|
|
exp = CONV {{p}}if_mix_recipe=>ty_qty( '3300.00' )
|
|
act = ls_mix-sand_kg ).
|
|
cl_abap_unit_assert=>assert_equals(
|
|
exp = CONV {{p}}if_mix_recipe=>ty_qty( '5600.00' )
|
|
act = ls_mix-gravel_kg ).
|
|
cl_abap_unit_assert=>assert_equals(
|
|
exp = CONV {{p}}if_mix_recipe=>ty_qty( '825.00' )
|
|
act = ls_mix-water_l ).
|
|
ENDMETHOD.
|
|
|
|
METHOD invalid_order_has_no_mix.
|
|
DATA(ls_mix) = mo_cut->mix_for( iv_grade = 'C40' iv_volume = '5.00' ).
|
|
cl_abap_unit_assert=>assert_initial( act = ls_mix-grade ).
|
|
cl_abap_unit_assert=>assert_equals(
|
|
exp = CONV {{p}}if_mix_recipe=>ty_qty( '0.00' )
|
|
act = ls_mix-cement_kg ).
|
|
cl_abap_unit_assert=>assert_equals(
|
|
exp = CONV {{p}}if_mix_recipe=>ty_qty( '0.00' )
|
|
act = ls_mix-water_l ).
|
|
ENDMETHOD.
|
|
ENDCLASS.
|