74 lines
2.8 KiB
ABAP
74 lines
2.8 KiB
ABAP
CLASS {{p}}mix_test DEFINITION PUBLIC FINAL CREATE PUBLIC
|
|
FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
|
|
PRIVATE SECTION.
|
|
METHODS price_of
|
|
IMPORTING it_tints TYPE {{P}}PAINT_MIX=>TY_TINTS
|
|
EXPORTING ev_volume TYPE decfloat34
|
|
ev_price TYPE decfloat34
|
|
ev_subrc TYPE sysubrc.
|
|
METHODS two_tints FOR TESTING.
|
|
METHODS repeated_tint FOR TESTING.
|
|
METHODS empty_order FOR TESTING.
|
|
METHODS bad_quantity FOR TESTING.
|
|
METHODS unknown_tint FOR TESTING.
|
|
ENDCLASS.
|
|
|
|
|
|
CLASS {{p}}mix_test IMPLEMENTATION.
|
|
METHOD price_of.
|
|
CALL FUNCTION '{{P}}MIX_PRICE'
|
|
EXPORTING
|
|
it_tints = it_tints
|
|
IMPORTING
|
|
ev_volume = ev_volume
|
|
ev_price = ev_price
|
|
EXCEPTIONS
|
|
no_components = 1
|
|
invalid_quantity = 2
|
|
unknown_tint = 3
|
|
OTHERS = 4.
|
|
ev_subrc = sy-subrc.
|
|
ENDMETHOD.
|
|
|
|
METHOD two_tints.
|
|
price_of( EXPORTING it_tints = VALUE #( ( tint_id = 'WHIT' quantity_ml = 1000 )
|
|
( tint_id = 'BLUE' quantity_ml = 200 ) )
|
|
IMPORTING ev_volume = DATA(lv_volume)
|
|
ev_price = DATA(lv_price)
|
|
ev_subrc = DATA(lv_subrc) ).
|
|
cl_abap_unit_assert=>assert_equals( exp = 0 act = lv_subrc ).
|
|
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( 1200 ) act = lv_volume ).
|
|
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( 32 ) act = lv_price ).
|
|
ENDMETHOD.
|
|
|
|
METHOD repeated_tint.
|
|
price_of( EXPORTING it_tints = VALUE #( ( tint_id = 'GREY' quantity_ml = 200 )
|
|
( tint_id = 'GREY' quantity_ml = 300 ) )
|
|
IMPORTING ev_volume = DATA(lv_volume)
|
|
ev_price = DATA(lv_price)
|
|
ev_subrc = DATA(lv_subrc) ).
|
|
cl_abap_unit_assert=>assert_equals( exp = 0 act = lv_subrc ).
|
|
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( 500 ) act = lv_volume ).
|
|
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '16.5' ) act = lv_price ).
|
|
ENDMETHOD.
|
|
|
|
METHOD empty_order.
|
|
DATA lt_tints TYPE {{P}}PAINT_MIX=>TY_TINTS.
|
|
price_of( EXPORTING it_tints = lt_tints
|
|
IMPORTING ev_subrc = DATA(lv_subrc) ).
|
|
cl_abap_unit_assert=>assert_equals( exp = 1 act = lv_subrc ).
|
|
ENDMETHOD.
|
|
|
|
METHOD bad_quantity.
|
|
price_of( EXPORTING it_tints = VALUE #( ( tint_id = 'GOLD' quantity_ml = -1 ) )
|
|
IMPORTING ev_subrc = DATA(lv_subrc) ).
|
|
cl_abap_unit_assert=>assert_equals( exp = 2 act = lv_subrc ).
|
|
ENDMETHOD.
|
|
|
|
METHOD unknown_tint.
|
|
price_of( EXPORTING it_tints = VALUE #( ( tint_id = 'ZZZZ' quantity_ml = 10 ) )
|
|
IMPORTING ev_subrc = DATA(lv_subrc) ).
|
|
cl_abap_unit_assert=>assert_equals( exp = 3 act = lv_subrc ).
|
|
ENDMETHOD.
|
|
ENDCLASS.
|