/** * {@inheritdoc} */ public function join(string $channel, array $data = []) { Assertion::notEmptyKey($data, 'socketId', "Invalid socket id"); Assertion::notEmptyKey($data, 'userId', "Invalid user id"); Assertion::notEmptyKey($data, 'fullName', "Invalid full name"); return $this->pusher->presence_auth($channel, $data['socketId'], $data['userId'], ['id' => $data['userId'], 'name' => utf8_encode($data['fullName'])]); }
/** * Returns dynamic properties passed to the object * * Notice: property names should be camelCased * * @param string $method * @param array $arguments * * @return mixed * * @throws BadMethodCallException If $method is not a property */ public function __call($method, array $arguments) { if (substr($method, 0, 3) === 'get' and $property = substr($method, 3)) { $property = lcfirst($property); Assertion::notEmptyKey($this->data, $property, 'User does not have a(n) "%s" property'); return $this->data[$property]; } throw new \BadMethodCallException(sprintf('Method "%s" does not exists', $method)); }
/** * {@inheritdoc} */ public function identify(array $subject) { Assertion::notEmptyKey($subject, 'username'); if (!in_array($subject['username'], $this->userKeys)) { throw new IdentificationFailed('User not found'); } $id = array_search($subject['username'], $this->userKeys); return new SimpleUser($id, $this->users[$id]); }
/** * @param array $configuration Array with configuration settings * @throws InvalidArgumentException */ public function __construct(array $configuration) { // Validate and set base url Assertion::notEmptyKey($configuration, 'apiBaseUrl', 'apiBaseUrl is required'); Assertion::url($configuration['apiBaseUrl'], 'apiBaseUrl has to be a valid url'); $this->apiBaseUrl = rtrim($configuration['apiBaseUrl'], '/'); // Validate username Assertion::notEmptyKey($configuration, 'username', 'username is required'); Assertion::string($configuration['username'], 'username has to be a string'); $this->username = trim($configuration['username']); // Validate api interface id Assertion::notEmptyKey($configuration, 'apiId', 'apiId is required'); Assertion::integer($configuration['apiId'], 'apiId has to be an integer'); $this->apiId = trim($configuration['apiId']); // Validate api key Assertion::notEmptyKey($configuration, 'apiKey', 'apiKey is required'); Assertion::string($configuration['apiKey'], 'apiKey has to be a string'); $this->apiKey = trim($configuration['apiKey']); // Check if clientConfiguration is set and valid if (isset($configuration['clientConfiguration'])) { Assertion::isArray($configuration['clientConfiguration'], 'clientConfiguration has to be an array'); $this->clientConfiguration = $configuration['clientConfiguration']; } }
/** * @dataProvider invalidNotEmptyKeyDataprovider */ public function testInvalidNotEmptyKey($invalidArray, $key) { $this->setExpectedException('Assert\\InvalidArgumentException'); Assertion::notEmptyKey($invalidArray, $key); }
private function createResult(array $result_data) { Assertion::notEmptyKey($result_data, self::OBJECT_TYPE); return $this->projection_type_map->getItem($result_data[self::OBJECT_TYPE])->createEntity($result_data); }
/** * Unregisters a subject from a specific event. * * @param string $event * @param string $key */ public function detachSubject($event, $key) { Assertion::notEmptyKey($this->subjects, $event, 'Provided event does not exist.'); Assertion::notEmptyKey($this->subjects[$event], $key, 'Subject to be detached does not exist.'); unset($this->subjects[$event][$key]); }