public function testSubscriptionLoadFromArray() { $obj = new Subscription(); $obj->loadFromArray($this->testArray); $this->assertEquals($this->testArray['object'], $obj->getObject()); $this->assertEquals($this->testArray['callback_url'], $obj->getCallbackUrl()); $this->assertEquals($this->testArray['fields'], $obj->getFields()); $this->assertEquals($this->testArray['active'], $obj->getActive()); }
/** * Add a realtime callback subscription to the Application * * @param mixed $data Subscription object or JSON or associative array * * @return $this * @throws DuplicateObjectException thrown if this subscription is already stored * @throws InvalidArgumentException thrown if the data is not valid */ public function addSubscription($data) { if (is_array($data)) { $subscription = new Subscription(); $subscription->loadFromArray($data); } elseif ($arr = json_decode($data, true)) { $subscription = new Subscription(); $subscription->loadFromJson($data); } elseif ($data instanceof Subscription) { $subscription = $data; } if (isset($subscription) && $subscription instanceof Subscription) { if ($subscription->valid() && $this->duplicateSubscription($subscription)) { throw new DuplicateObjectException(sprintf('Duplicate Object for %s', $subscription)); } elseif (!$subscription->valid()) { throw new InvalidArgumentException('Empty or invalid subscription object passed to ' . __METHOD__); } $this->subscriptions[] = $subscription; } else { throw new InvalidArgumentException(sprintf('%s expects valid Subscription object or valid JSON or valid array', __METHOD__)); } return $this; }