public function testCommitBatch_AddToIndex_RelationshipExists_Success_ReturnsTrue() { $rel = new Relationship($this->client); $rel->setId(123); $index = new Index($this->client, Index::TypeRelationship, 'indexname'); $request = array(array('id' => 0, 'method' => 'POST', 'to' => '/index/relationship/indexname', 'body' => array('key' => 'somekey', 'value' => 'somevalue', 'uri' => $this->endpoint . '/relationship/123'))); $return = array('code' => 200, 'data' => array(array('id' => 0))); $this->batch->addToIndex($index, $rel, 'somekey', 'somevalue'); $this->setupTransportExpectation($request, $this->returnValue($return)); $result = $this->client->commitBatch($this->batch); $this->assertTrue($result); }
public function testDelete_PropertyContainerEntities_ReturnsIntegerOperationIndex() { $nodeA = new Node($this->client); $nodeA->setId(123); $nodeB = new Node($this->client); $nodeB->setId(456); $nodeC = new Node($this->client); $rel = new Relationship($this->client); $rel->setId(987)->setStartNode($nodeA)->setEndNode($nodeB); $this->assertEquals(0, $this->batch->delete($nodeA)); $this->assertEquals(1, $this->batch->delete($nodeB)); $this->assertEquals(2, $this->batch->delete($nodeC)); $this->assertEquals(3, $this->batch->delete($rel)); }
public function testRemoveFromIndex_NodeTypeMismatch_ThrowsException() { $index = new Index($this->client, Index::TypeNode, 'indexname'); $rel = new Relationship($this->client); $rel->setId(123); $this->setExpectedException('\\Sgpatil\\Orientphp\\Exception'); $this->client->removeFromIndex($index, $rel); }
public function testDeleteRelationship_TransportError_ThrowsException() { $rel = new Relationship($this->client); $rel->setId(123); $this->transport->expects($this->once())->method('delete')->with('/relationship/123')->will($this->returnValue(array('code' => 400))); $this->setExpectedException('Everyman\\Neo4j\\Exception'); $this->client->deleteRelationship($rel); }
public function testDeleteRelationship_Failure_RelationshipRemainsInCache() { $relId = 123; $rel = new Relationship($this->client); $rel->setId($relId); $this->transport->expects($this->once())->method('delete')->with('/relationship/' . $relId)->will($this->returnValue(array('code' => 400))); $this->cache->set("relationship-{$relId}", $rel); try { $this->client->deleteRelationship($rel); $this->fail(); } catch (Exception $e) { $this->assertSame($rel, $this->cache->get("relationship-{$relId}")); } }
public function testImplicitBatch_StartBatch_CloseBatch_ExpectedBatchRequest() { $startNode = new Node($this->client); $endNode = new Node($this->client); $endNode->setId(456)->useLazyLoad(false); $rel = new Relationship($this->client); $rel->setType('TEST')->setStartNode($startNode)->setEndNode($endNode); $deleteNode = new Node($this->client); $deleteNode->setId(987); $deleteRel = new Relationship($this->client); $deleteRel->setId(321); $addIndexNode = new Node($this->client); $addIndexNode->setId(654); $removeIndexNode = new Node($this->client); $removeIndexNode->setId(209); $index = new Index($this->client, Index::TypeNode, 'indexname'); $request = array(array('id' => 0, 'method' => 'POST', 'to' => '/node', 'body' => null), array('id' => 1, 'method' => 'PUT', 'to' => '/node/456/properties', 'body' => array()), array('id' => 2, 'method' => 'POST', 'to' => '{0}/relationships', 'body' => array('to' => $this->endpoint . '/node/456', 'type' => 'TEST')), array('id' => 3, 'method' => 'DELETE', 'to' => '/node/987'), array('id' => 4, 'method' => 'DELETE', 'to' => '/relationship/321'), array('id' => 5, 'method' => 'POST', 'to' => '/index/node/indexname', 'body' => array('key' => 'addkey', 'value' => 'addvalue', 'uri' => $this->endpoint . '/node/654')), array('id' => 6, 'method' => 'DELETE', 'to' => '/index/node/indexname/removekey/removevalue/209')); $return = array('code' => 200, 'data' => array(array('id' => 0, 'location' => 'http://foo:1234/db/data/node/123'), array('id' => 1), array('id' => 2, 'location' => 'http://foo:1234/db/data/relationship/789'), array('id' => 3), array('id' => 4), array('id' => 5), array('id' => 6))); $this->setupTransportExpectation($request, $this->returnValue($return)); $batch = $this->client->startBatch(); $this->assertInstanceOf('Sgpatil\\Orientphp\\Batch', $batch); $startNode->save(); $endNode->save(); $rel->save(); $deleteNode->delete(); $deleteRel->delete(); $index->add($addIndexNode, 'addkey', 'addvalue'); $index->remove($removeIndexNode, 'removekey', 'removevalue'); $this->assertTrue($this->client->commitBatch()); $this->assertEquals(789, $rel->getId()); $this->assertEquals(123, $startNode->getId()); }
public function testDump_PathsGiven_FileDescriptor_ReturnsDescriptor() { $nodeA = new Node($this->client); $nodeA->setId(123)->setProperties(array('foo' => 'bar', 'baz' => 'qux')); $nodeB = new Node($this->client); $nodeB->setId(456)->setProperties(array('somekey' => 'somevalue')); $relA = new Relationship($this->client); $relA->setId(987)->setType('TEST')->setStartNode($nodeA)->setEndNode($nodeB)->setProperties(array('anotherkey' => 'anothervalue')); $path = new Path(); $path->appendNode($nodeA); $path->appendNode($nodeB); $path->appendRelationship($relA); $expected = <<<GEOFF (123)\t{"foo":"bar","baz":"qux"} (456)\t{"somekey":"somevalue"} (123)-[987:TEST]->(456)\t{"anotherkey":"anothervalue"} GEOFF; $handle = fopen('data:text/plain,', 'w+'); $resultHandle = $this->geoff->dump($path, $handle); self::assertSame($handle, $resultHandle); self::assertEquals($expected, stream_get_contents($resultHandle, -1, 0)); }