Files
abap-llm/tasks_gen/eval/G0118/reference/canteen_planner.testclasses.abap

74 lines
2.8 KiB
ABAP

CLASS ltc_canteen_planner DEFINITION FINAL FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
PRIVATE SECTION.
DATA mo_cut TYPE REF TO {{p}}if_canteen_plan.
METHODS setup.
METHODS merges_two_lists FOR TESTING.
METHODS sorts_by_ingredient FOR TESTING.
METHODS rounds_packs_up FOR TESTING.
METHODS lists_unknown FOR TESTING.
ENDCLASS.
CLASS ltc_canteen_planner IMPLEMENTATION.
METHOD setup.
mo_cut = NEW {{p}}canteen_planner( ).
ENDMETHOD.
METHOD merges_two_lists.
DATA(lt_a) = VALUE {{p}}if_canteen_plan=>tt_order(
( ingredient = 'FLOUR' quantity = 2 ) ).
DATA(lt_b) = VALUE {{p}}if_canteen_plan=>tt_order(
( ingredient = 'FLOUR' quantity = 3 ) ).
DATA(lt_demand) = mo_cut->merge_orders( it_orders_a = lt_a
it_orders_b = lt_b ).
cl_abap_unit_assert=>assert_equals( exp = 1 act = lines( lt_demand ) ).
DATA lv_expected TYPE {{p}}if_canteen_plan=>ty_quantity.
lv_expected = 5.
cl_abap_unit_assert=>assert_equals( exp = lv_expected
act = lt_demand[ 1 ]-quantity ).
ENDMETHOD.
METHOD sorts_by_ingredient.
DATA(lt_a) = VALUE {{p}}if_canteen_plan=>tt_order(
( ingredient = 'SUGAR' quantity = 1 )
( ingredient = 'FLOUR' quantity = 1 ) ).
DATA(lt_demand) = mo_cut->merge_orders(
it_orders_a = lt_a
it_orders_b = VALUE {{p}}if_canteen_plan=>tt_order( ) ).
cl_abap_unit_assert=>assert_equals( exp = 'FLOUR'
act = lt_demand[ 1 ]-ingredient ).
cl_abap_unit_assert=>assert_equals( exp = 'SUGAR'
act = lt_demand[ 2 ]-ingredient ).
ENDMETHOD.
METHOD rounds_packs_up.
DATA(lt_demand) = VALUE {{p}}if_canteen_plan=>tt_order(
( ingredient = 'FLOUR' quantity = 25 ) ).
DATA(lt_catalogue) = VALUE {{p}}if_canteen_plan=>tt_master(
( ingredient = 'FLOUR' pack_size = 10 ) ).
DATA(lt_packs) = mo_cut->pack_requirement( it_demand = lt_demand
it_catalogue = lt_catalogue ).
cl_abap_unit_assert=>assert_equals( exp = 1 act = lines( lt_packs ) ).
cl_abap_unit_assert=>assert_equals( exp = 3 act = lt_packs[ 1 ]-packs ).
ENDMETHOD.
METHOD lists_unknown.
DATA(lt_demand) = VALUE {{p}}if_canteen_plan=>tt_order(
( ingredient = 'COCOA' quantity = 1 ) ).
DATA(lt_catalogue) = VALUE {{p}}if_canteen_plan=>tt_master(
( ingredient = 'FLOUR' pack_size = 10 ) ).
DATA(lt_missing) = mo_cut->missing_ingredients( it_demand = lt_demand
it_catalogue = lt_catalogue ).
cl_abap_unit_assert=>assert_equals( exp = 1 act = lines( lt_missing ) ).
cl_abap_unit_assert=>assert_equals( exp = 'COCOA' act = lt_missing[ 1 ] ).
ENDMETHOD.
ENDCLASS.