86 lines
3.4 KiB
ABAP
86 lines
3.4 KiB
ABAP
CLASS ltc_feed_stock DEFINITION FINAL FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
|
|
PRIVATE SECTION.
|
|
DATA mo_cut TYPE REF TO {{p}}feed_stock.
|
|
|
|
METHODS setup.
|
|
METHODS assert_stock
|
|
IMPORTING it_exp TYPE {{p}}if_feed_stock=>tt_stock
|
|
it_act TYPE {{p}}if_feed_stock=>tt_stock.
|
|
|
|
METHODS merges_two_suppliers FOR TESTING.
|
|
METHODS ignores_uncounted FOR TESTING.
|
|
METHODS removes_zero_total FOR TESTING.
|
|
METHODS quantity_of_missing FOR TESTING.
|
|
METHODS top_feed_tie FOR TESTING.
|
|
ENDCLASS.
|
|
|
|
|
|
CLASS ltc_feed_stock IMPLEMENTATION.
|
|
METHOD setup.
|
|
mo_cut = NEW {{p}}feed_stock( ).
|
|
ENDMETHOD.
|
|
|
|
METHOD assert_stock.
|
|
cl_abap_unit_assert=>assert_equals( exp = lines( it_exp ) act = lines( it_act ) ).
|
|
DATA(lv_index) = 0.
|
|
LOOP AT it_exp ASSIGNING FIELD-SYMBOL(<ls_exp>).
|
|
lv_index = lv_index + 1.
|
|
READ TABLE it_act ASSIGNING FIELD-SYMBOL(<ls_act>) INDEX lv_index.
|
|
cl_abap_unit_assert=>assert_subrc( exp = 0 act = sy-subrc ).
|
|
cl_abap_unit_assert=>assert_equals( exp = <ls_exp>-feed_type act = <ls_act>-feed_type ).
|
|
cl_abap_unit_assert=>assert_equals( exp = <ls_exp>-unit act = <ls_act>-unit ).
|
|
cl_abap_unit_assert=>assert_equals( exp = <ls_exp>-quantity act = <ls_act>-quantity ).
|
|
cl_abap_unit_assert=>assert_equals( exp = <ls_exp>-deliveries act = <ls_act>-deliveries ).
|
|
ENDLOOP.
|
|
ENDMETHOD.
|
|
|
|
METHOD merges_two_suppliers.
|
|
DATA(lt_stock) = mo_cut->consolidate(
|
|
it_supplier_a = VALUE {{p}}if_feed_stock=>tt_delivery(
|
|
( feed_type = 'HAY' unit = 'KG' quantity = '10.000' ) )
|
|
it_supplier_b = VALUE {{p}}if_feed_stock=>tt_delivery(
|
|
( feed_type = 'HAY' unit = 'KG' quantity = '5.000' ) ) ).
|
|
assert_stock(
|
|
it_exp = VALUE {{p}}if_feed_stock=>tt_stock(
|
|
( feed_type = 'HAY' unit = 'KG' quantity = '15.000' deliveries = 2 ) )
|
|
it_act = lt_stock ).
|
|
ENDMETHOD.
|
|
|
|
METHOD ignores_uncounted.
|
|
DATA(lt_stock) = mo_cut->consolidate(
|
|
it_supplier_a = VALUE {{p}}if_feed_stock=>tt_delivery(
|
|
( feed_type = '' unit = 'KG' quantity = '9.000' )
|
|
( feed_type = 'FISH' unit = 'KG' quantity = '0.000' ) )
|
|
it_supplier_b = VALUE {{p}}if_feed_stock=>tt_delivery( ) ).
|
|
cl_abap_unit_assert=>assert_initial( lt_stock ).
|
|
ENDMETHOD.
|
|
|
|
METHOD removes_zero_total.
|
|
DATA(lt_stock) = mo_cut->consolidate(
|
|
it_supplier_a = VALUE {{p}}if_feed_stock=>tt_delivery(
|
|
( feed_type = 'HAY' unit = 'KG' quantity = '4.000' )
|
|
( feed_type = 'HAY' unit = 'KG' quantity = '-4.000' ) )
|
|
it_supplier_b = VALUE {{p}}if_feed_stock=>tt_delivery( ) ).
|
|
cl_abap_unit_assert=>assert_initial( lt_stock ).
|
|
ENDMETHOD.
|
|
|
|
METHOD quantity_of_missing.
|
|
DATA lv_expected TYPE {{p}}if_feed_stock=>ty_quantity.
|
|
cl_abap_unit_assert=>assert_equals(
|
|
exp = lv_expected
|
|
act = mo_cut->quantity_of(
|
|
it_stock = VALUE {{p}}if_feed_stock=>tt_stock( )
|
|
iv_feed_type = 'HAY' ) ).
|
|
ENDMETHOD.
|
|
|
|
METHOD top_feed_tie.
|
|
DATA(lt_stock) = VALUE {{p}}if_feed_stock=>tt_stock(
|
|
( feed_type = 'PELLETS' unit = 'KG' quantity = '5.000' deliveries = 1 )
|
|
( feed_type = 'HAY' unit = 'KG' quantity = '5.000' deliveries = 1 ) ).
|
|
DATA lv_expected TYPE {{p}}if_feed_stock=>ty_feed_type.
|
|
lv_expected = 'HAY'.
|
|
cl_abap_unit_assert=>assert_equals( exp = lv_expected
|
|
act = mo_cut->top_feed( it_stock = lt_stock ) ).
|
|
ENDMETHOD.
|
|
ENDCLASS.
|