/** * Try to create and delete a document with several keys */ public function testCreateAndDeleteDocumentWithSeveralKeys() { $connection = $this->connection; $collection = $this->collection; $documentHandler = new DocumentHandler($connection); $keys = array("foo", "bar", "bar:bar", "baz", "1", "0", "a-b-c", "a:b", "this-is-a-test", "FOO", "BAR", "Bar", "bAr"); foreach ($keys as $key) { $document = new Document(); $document->someAttribute = 'someValue'; $document->set('_key', $key); $documentId = $documentHandler->add($collection->getName(), $document); $resultingDocument = $documentHandler->get($collection->getName(), $documentId); $resultingAttribute = $resultingDocument->someAttribute; $resultingKey = $resultingDocument->getKey(); $this->assertTrue($resultingAttribute === 'someValue', 'Resulting Attribute should be "someValue". It\'s :' . $resultingAttribute); $this->assertTrue($resultingKey === $key, 'Resulting Attribute should be "someValue". It\'s :' . $resultingKey); $documentHandler->delete($document); } }
/** * Try to create and delete a document with several keys */ public function testCreateAndDeleteDocumentWithSeveralKeys() { $connection = $this->connection; $collection = $this->collection; $documentHandler = new DocumentHandler($connection); $keys = array("_", "foo", "bar", "bar:bar", "baz", "1", "0", "a-b-c", "a:b", "this-is-a-test", "FOO", "BAR", "Bar", "bAr"); $adminHandler = new AdminHandler($this->connection); $version = preg_replace("/-[a-z0-9]+\$/", "", $adminHandler->getServerVersion()); if (version_compare($version, '2.6.0') >= 0) { // 2.6 will also allow the following document keys, while 2.5 will not $keys[] = "."; $keys[] = ":"; $keys[] = "@"; $keys[] = "-.:@"; $keys[] = "*****@*****.**"; $keys[] = ":.foo@bar-bar_bar.baz.com.:"; } foreach ($keys as $key) { $document = new Document(); $document->someAttribute = 'someValue'; $document->set('_key', $key); $documentId = $documentHandler->add($collection->getName(), $document); $resultingDocument = $documentHandler->get($collection->getName(), $documentId); $resultingAttribute = $resultingDocument->someAttribute; $resultingKey = $resultingDocument->getKey(); $this->assertTrue($resultingAttribute === 'someValue', 'Resulting Attribute should be "someValue". It\'s :' . $resultingAttribute); $this->assertTrue($resultingKey === $key, 'Resulting Attribute should be "someValue". It\'s :' . $resultingKey); $documentHandler->delete($document); } }
/** * Try to create, head and delete a edge */ public function testCreateHeadAndDeleteEdgeWithRevision() { $connection = $this->connection; $edgeHandler = new EdgeHandler($connection); $edgeCollection = $this->edgeCollection; $document1 = new Document(); $document2 = new Document(); $documentHandler = new DocumentHandler($connection); $edgeDocument = new Edge(); $document1->someAttribute = 'someValue1'; $document2->someAttribute = 'someValue2'; $documentHandler->add('ArangoDBPHPTestSuiteTestCollection01', $document1); $documentHandler->add('ArangoDBPHPTestSuiteTestCollection01', $document2); $documentHandle1 = $document1->getHandle(); $documentHandle2 = $document2->getHandle(); $edgeDocument->set('label', 'knows'); $edgeId = $edgeHandler->saveEdge($edgeCollection->getName(), $documentHandle1, $documentHandle2, $edgeDocument); try { $edgeHandler->getHead($edgeCollection->getId(), $edgeId, "12345", true); } catch (\Exception $e412) { } $this->assertEquals($e412->getCode(), 412); try { $edgeHandler->getHead($edgeCollection->getId(), "notExisting"); } catch (\Exception $e404) { } $this->assertEquals($e404->getCode(), 404); $result304 = $edgeHandler->getHead($edgeCollection->getId(), $edgeId, $edgeDocument->getRevision(), false); $this->assertEquals($result304["etag"], '"' . $edgeDocument->getRevision() . '"'); $this->assertEquals($result304["content-length"], 0); $this->assertEquals($result304["httpCode"], 304); $result200 = $edgeHandler->getHead($edgeCollection->getId(), $edgeId, $edgeDocument->getRevision(), true); $this->assertEquals($result200["etag"], '"' . $edgeDocument->getRevision() . '"'); $this->assertNotEquals($result200["content-length"], 0); $this->assertEquals($result200["httpCode"], 200); $documentHandler->delete($document1); $documentHandler->delete($document2); $edgeHandler->deleteById($edgeCollection->getName(), $edgeId); }