CLASS ltc_pallet_allocator DEFINITION FINAL FOR TESTING DURATION SHORT RISK LEVEL HARMLESS. PRIVATE SECTION. DATA mo_cut TYPE REF TO {{p}}pallet_allocator. METHODS setup. METHODS frozen_pallet FOR TESTING. METHODS chilled_pallet FOR TESTING. METHODS dry_pallet FOR TESTING. METHODS unknown_category FOR TESTING. METHODS weight_out_of_range FOR TESTING. METHODS height_out_of_range FOR TESTING. ENDCLASS. CLASS ltc_pallet_allocator IMPLEMENTATION. METHOD setup. mo_cut = NEW {{p}}pallet_allocator( ). ENDMETHOD. METHOD frozen_pallet. DATA(ls_slot) = mo_cut->allocate( iv_category = 'F' iv_weight_kg = 100 iv_height_cm = 100 ). cl_abap_unit_assert=>assert_equals( exp = abap_true act = ls_slot-is_valid ). cl_abap_unit_assert=>assert_equals( exp = 'A1' act = ls_slot-aisle ). cl_abap_unit_assert=>assert_equals( exp = 1 act = ls_slot-rack ). ENDMETHOD. METHOD chilled_pallet. DATA(ls_slot) = mo_cut->allocate( iv_category = 'C' iv_weight_kg = 500 iv_height_cm = 200 ). cl_abap_unit_assert=>assert_equals( exp = 'B2' act = ls_slot-aisle ). cl_abap_unit_assert=>assert_equals( exp = 'CZ' act = ls_slot-temp_zone ). cl_abap_unit_assert=>assert_equals( exp = 3 act = ls_slot-rack ). ENDMETHOD. METHOD dry_pallet. DATA(ls_slot) = mo_cut->allocate( iv_category = 'D' iv_weight_kg = 20 iv_height_cm = 40 ). cl_abap_unit_assert=>assert_equals( exp = 'D4' act = ls_slot-aisle ). cl_abap_unit_assert=>assert_equals( exp = 1 act = ls_slot-rack ). ENDMETHOD. METHOD unknown_category. DATA(ls_slot) = mo_cut->allocate( iv_category = 'X' iv_weight_kg = 100 iv_height_cm = 100 ). cl_abap_unit_assert=>assert_equals( exp = abap_false act = ls_slot-is_valid ). ENDMETHOD. METHOD weight_out_of_range. DATA(ls_light) = mo_cut->allocate( iv_category = 'F' iv_weight_kg = 19 iv_height_cm = 100 ). cl_abap_unit_assert=>assert_equals( exp = abap_false act = ls_light-is_valid ). DATA(ls_heavy) = mo_cut->allocate( iv_category = 'F' iv_weight_kg = 801 iv_height_cm = 100 ). cl_abap_unit_assert=>assert_equals( exp = abap_false act = ls_heavy-is_valid ). ENDMETHOD. METHOD height_out_of_range. DATA(ls_low) = mo_cut->allocate( iv_category = 'F' iv_weight_kg = 100 iv_height_cm = 39 ). cl_abap_unit_assert=>assert_equals( exp = abap_false act = ls_low-is_valid ). DATA(ls_high) = mo_cut->allocate( iv_category = 'F' iv_weight_kg = 100 iv_height_cm = 241 ). cl_abap_unit_assert=>assert_equals( exp = abap_false act = ls_high-is_valid ). ENDMETHOD. ENDCLASS.