PhpOrient\RecordCommandsTest::testReLoadUpdate PHP Method

testReLoadUpdate() public method

public testReLoadUpdate ( )
    public function testReLoadUpdate()
    {
        if ($this->client->getTransport()->getProtocolVersion() < 26) {
            //            $this->markTestSkipped( 'Record Create/Update Unpredictable Behaviour' );
        }
        $recOrig = ['alloggio' => 'case', 'lavoro' => 'mercato', 'vacanza' => 'mare'];
        $rec = new Record();
        $rec->setOData($recOrig);
        $result = $this->client->execute('recordCreate', ['cluster_id' => 9, 'record' => $rec]);
        $this->assertInstanceOf('\\PhpOrient\\Protocols\\Binary\\Data\\Record', $result);
        $this->assertEquals('#9:0', (string) $result->getRid());
        $this->assertEquals('9', $result->getRid()->cluster);
        $this->assertEquals('0', $result->getRid()->position);
        $recUp = ['alloggio' => 'home', 'lavoro' => 'bazar', 'vacanza' => 'sea'];
        //push the old record with a new value
        $rec->setOData($recUp);
        $rec->setOClass('V');
        $updated = $this->client->execute('recordUpdate', ['rid' => $rec->getRid(), 'record' => $rec]);
        $this->assertInstanceOf('\\PhpOrient\\Protocols\\Binary\\Data\\Record', $result);
        $this->assertEquals('#9:0', (string) $updated->getRid());
        $this->assertEquals('9', $updated->getRid()->cluster);
        $this->assertEquals('0', $updated->getRid()->position);
        $this->assertTrue($updated->getVersion() > 0);
        //assert that the created record is the same as the updated
        // ( why not should be?? is the same object this time )
        $this->assertEquals((string) $rec, (string) $updated);
        $load = $this->client->execute('recordLoad', ['rid' => $updated->getRid()]);
        $this->assertInstanceOf('\\PhpOrient\\Protocols\\Binary\\Data\\Record', $load[0]);
        $this->assertEquals((string) $updated->getRid(), (string) $load[0]->getRid());
        $this->assertEquals((string) $updated, (string) $load[0]);
    }