/** * Sort and get all the realtive prices of Model_Shipping_Item object (using relative_price method) * @param array $items * @return array Jam_Price objects */ public static function relative_prices(array $items) { Array_Util::validate_instance_of($items, 'Model_Shipping_Item'); $items = Model_Shipping_Item::sort_by_price($items); $prices = array_map(function ($item, $index) { return $index == 0 ? $item->total_price() : $item->total_additional_item_price(); }, $items, array_keys($items)); return $prices; }
/** * @covers Model_Shipping_Item::sort_by_price * @dataProvider data_sort_by_price */ public function test_sort_by_price($params, $expected_ids) { $items = $this->getMockModelArray('shipping_item', $params); $sorted = Model_Shipping_Item::sort_by_price($items); $this->assertEquals($expected_ids, $this->ids($sorted)); }