/** * @dataProvider data_validate_instance_of * @covers Array_Util::validate_instance_of */ public function test_validate_instance_of($array, $class, $expected_exception_message) { if ($expected_exception_message) { $this->setExpectedException('Kohana_Exception', $expected_exception_message); } Array_Util::validate_instance_of($array, $class); }
/** * Sort Model_Shipping_Item by price, biggest price first * @param array $items * @return array */ public static function sort_by_price(array $items) { Array_Util::validate_instance_of($items, 'Model_Shipping_Group'); usort($items, function ($item1, $item2) { return $item1->price->is(Jam_Price::GREATER_THAN, $item2->price) ? -1 : 1; }); return $items; }
function __construct(Model_Brand_Purchase_Shipping $brand_purchase_shipping, array $shipping_methods, array $purchase_items) { Array_Util::validate_instance_of($shipping_methods, 'Model_Shipping_Method'); Array_Util::validate_instance_of($purchase_items, 'Model_Purchase_Item'); $this->shipping_methods = $shipping_methods; $this->brand_purchase_shipping = $brand_purchase_shipping; $this->purchase_items = $purchase_items; }
/** * 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; }
public function new_items_from(array $purchase_items, Model_Location $location, $method = NULL) { Array_Util::validate_instance_of($purchase_items, 'Model_Purchase_Item'); $self = $this; return array_map(function ($purchase_item) use($location, $method, $self) { return $self->new_item_from($purchase_item, $location, $method); }, $purchase_items); }