/** * Returns the object with the given identifier * * @param string $identifier * @return VirtualObject */ public function getObjectByIdentifier($identifier) { $configuration = $this->getConfiguration(); $identifierProperty = $configuration->getIdentifier(); $identifierKey = $configuration->getSourceKeyForProperty($identifierProperty); $objectConverter = $this->getObjectConverter(); $query = array($identifierKey => $identifier); $rawObjectCollection = $this->backend->getObjectDataByQuery($this->getSourceIdentifier(), $query); foreach ($rawObjectCollection as $rawObjectData) { return $objectConverter->convertToVirtualObject($rawObjectData); } return NULL; }
/** * @test */ public function getObjectDataByQueryWithEmptyResult() { $query = array('uid' => time()); $result = $this->fixture->getObjectDataByQuery(self::$testDatabaseTable, $query); $this->assertEmpty($result); $query = array('content_time' => time()); $result = $this->fixture->getObjectDataByQuery(self::$testDatabaseTable, $query); $this->assertEmpty($result); $query = array('content_time' => time(), 'title' => 'Test entry'); $result = $this->fixture->getObjectDataByQuery(self::$testDatabaseTable, $query); $this->assertEmpty($result); $query = array('content_time' => array('value' => 1395678400, 'operator' => QueryInterface::OPERATOR_LESS_THAN), 'title' => 'Test entry'); $result = $this->fixture->getObjectDataByQuery(self::$testDatabaseTable, $query); $this->assertEmpty($result); $query = array('content_time' => array('value' => time(), 'operator' => QueryInterface::OPERATOR_GREATER_THAN_OR_EQUAL_TO), 'title' => 'Test entry'); $result = $this->fixture->getObjectDataByQuery(self::$testDatabaseTable, $query); $this->assertEmpty($result); $query = array('title' => array('doNotEscapeValue' => 'title', 'value' => "'Test entry' and content_time = '" . time() . "'")); $result = $this->fixture->getObjectDataByQuery(self::$testDatabaseTable, $query); $this->assertEmpty($result); }