CLASS {{p}}pallet_hidden DEFINITION PUBLIC FINAL CREATE PUBLIC FOR TESTING DURATION SHORT RISK LEVEL HARMLESS. PRIVATE SECTION. DATA mo_cut TYPE REF TO {{p}}pallet_allocator. METHODS setup. METHODS frozen_pallet_ok FOR TESTING. METHODS chilled_pallet_ok FOR TESTING. METHODS dry_pallet_ok FOR TESTING. METHODS lower_case_and_blanks FOR TESTING. METHODS rack_boundaries FOR TESTING. METHODS height_too_high_invalid FOR TESTING. METHODS height_too_low_invalid FOR TESTING. METHODS weight_limits FOR TESTING. METHODS unknown_category_invalid FOR TESTING. METHODS blank_category_invalid FOR TESTING. ENDCLASS. CLASS {{p}}pallet_hidden IMPLEMENTATION. METHOD setup. mo_cut = NEW {{p}}pallet_allocator( ). ENDMETHOD. METHOD frozen_pallet_ok. 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 = 'FZ' act = ls_slot-temp_zone ). cl_abap_unit_assert=>assert_equals( exp = 1 act = ls_slot-rack ). ENDMETHOD. METHOD chilled_pallet_ok. DATA(ls_slot) = mo_cut->allocate( iv_category = 'C' iv_weight_kg = 500 iv_height_cm = 200 ). cl_abap_unit_assert=>assert_equals( exp = abap_true act = ls_slot-is_valid ). 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_ok. DATA(ls_slot) = mo_cut->allocate( iv_category = 'D' iv_weight_kg = 20 iv_height_cm = 40 ). cl_abap_unit_assert=>assert_equals( exp = abap_true act = ls_slot-is_valid ). cl_abap_unit_assert=>assert_equals( exp = 'D4' act = ls_slot-aisle ). cl_abap_unit_assert=>assert_equals( exp = 'DZ' act = ls_slot-temp_zone ). cl_abap_unit_assert=>assert_equals( exp = 1 act = ls_slot-rack ). ENDMETHOD. METHOD lower_case_and_blanks. DATA(ls_lower) = mo_cut->allocate( iv_category = 'f' iv_weight_kg = 50 iv_height_cm = 121 ). cl_abap_unit_assert=>assert_equals( exp = abap_true act = ls_lower-is_valid ). cl_abap_unit_assert=>assert_equals( exp = 'A1' act = ls_lower-aisle ). cl_abap_unit_assert=>assert_equals( exp = 2 act = ls_lower-rack ). DATA(ls_blank) = mo_cut->allocate( iv_category = ' c' iv_weight_kg = 50 iv_height_cm = 100 ). cl_abap_unit_assert=>assert_equals( exp = abap_true act = ls_blank-is_valid ). cl_abap_unit_assert=>assert_equals( exp = 'B2' act = ls_blank-aisle ). ENDMETHOD. METHOD rack_boundaries. DATA(ls_base) = mo_cut->allocate( iv_category = 'F' iv_weight_kg = 100 iv_height_cm = 120 ). cl_abap_unit_assert=>assert_equals( exp = 1 act = ls_base-rack msg = `120` ). DATA(ls_step) = mo_cut->allocate( iv_category = 'F' iv_weight_kg = 100 iv_height_cm = 121 ). cl_abap_unit_assert=>assert_equals( exp = 2 act = ls_step-rack msg = `121` ). DATA(ls_max) = mo_cut->allocate( iv_category = 'F' iv_weight_kg = 100 iv_height_cm = 240 ). cl_abap_unit_assert=>assert_equals( exp = abap_true act = ls_max-is_valid msg = `240 valid` ). cl_abap_unit_assert=>assert_equals( exp = 4 act = ls_max-rack msg = `240` ). ENDMETHOD. METHOD height_too_high_invalid. DATA(ls_slot) = 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_slot-is_valid ). cl_abap_unit_assert=>assert_initial( act = ls_slot-aisle ). cl_abap_unit_assert=>assert_initial( act = ls_slot-temp_zone ). cl_abap_unit_assert=>assert_equals( exp = 0 act = ls_slot-rack ). ENDMETHOD. METHOD height_too_low_invalid. DATA(ls_slot) = 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_slot-is_valid ). cl_abap_unit_assert=>assert_equals( exp = 0 act = ls_slot-rack ). ENDMETHOD. METHOD weight_limits. 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 msg = `19` ). DATA(ls_min) = mo_cut->allocate( iv_category = 'F' iv_weight_kg = 20 iv_height_cm = 100 ). cl_abap_unit_assert=>assert_equals( exp = abap_true act = ls_min-is_valid msg = `20` ). DATA(ls_max) = mo_cut->allocate( iv_category = 'F' iv_weight_kg = 800 iv_height_cm = 100 ). cl_abap_unit_assert=>assert_equals( exp = abap_true act = ls_max-is_valid msg = `800` ). 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 msg = `801` ). ENDMETHOD. METHOD unknown_category_invalid. 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 ). cl_abap_unit_assert=>assert_initial( act = ls_slot-aisle ). cl_abap_unit_assert=>assert_initial( act = ls_slot-temp_zone ). ENDMETHOD. METHOD blank_category_invalid. DATA(ls_slot) = mo_cut->allocate( iv_category = ' ' iv_weight_kg = 100 iv_height_cm = 100 ). cl_abap_unit_assert=>assert_equals( exp = abap_false act = ls_slot-is_valid ). cl_abap_unit_assert=>assert_equals( exp = 0 act = ls_slot-rack ). ENDMETHOD. ENDCLASS.