/** * @test */ public function itShouldCreateFromAndToArray() { $array = ['plugin' => 'Ginger WooCommerce v1.2', 'other_info' => [], 'dummy']; $extra = Extra::fromArray($array); $this->assertInstanceOf('GingerPayments\\Payment\\Order\\Extra', $extra); $this->assertEquals($array, $extra->extra()); $this->assertEquals($array, Extra::fromArray($array)->toArray()); }
/** * @param array $order * @return Order */ public static function fromArray(array $order) { Guard::keyExists($order, 'transactions'); Guard::keyExists($order, 'amount'); Guard::keyExists($order, 'currency'); return new static(Transactions::fromArray($order['transactions']), Amount::fromInteger($order['amount']), Currency::fromString($order['currency']), array_key_exists('description', $order) ? Description::fromString($order['description']) : null, array_key_exists('merchant_order_id', $order) ? MerchantOrderId::fromString($order['merchant_order_id']) : null, array_key_exists('return_url', $order) ? Url::fromString($order['return_url']) : null, array_key_exists('expiration_period', $order) ? new \DateInterval($order['expiration_period']) : null, array_key_exists('id', $order) ? Uuid::fromString($order['id']) : null, array_key_exists('project_id', $order) ? Uuid::fromString($order['project_id']) : null, array_key_exists('created', $order) ? new Carbon($order['created']) : null, array_key_exists('modified', $order) ? new Carbon($order['modified']) : null, array_key_exists('completed', $order) ? new Carbon($order['completed']) : null, array_key_exists('status', $order) ? Status::fromString($order['status']) : null, array_key_exists('customer', $order) && $order['customer'] !== null ? Customer::fromArray($order['customer']) : null, array_key_exists('extra', $order) && $order['extra'] !== null ? Extra::fromArray($order['extra']) : null, array_key_exists('webhook_url', $order) ? Url::fromString($order['webhook_url']) : null); }