Skip to content
This repository has been archived by the owner on Apr 22, 2020. It is now read-only.

Commit

Permalink
more tests
Browse files Browse the repository at this point in the history
  • Loading branch information
wolfy-j committed Feb 8, 2017
1 parent 4fa3c5a commit 540bfdc
Showing 1 changed file with 94 additions and 0 deletions.
94 changes: 94 additions & 0 deletions tests/HybridDB/UpdateTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,101 @@

namespace Spiral\Tests\HybridDB;

use Spiral\Tests\HybridDB\Fixtures\Metadata;
use Spiral\Tests\HybridDB\Fixtures\Photo;

class UpdateTest extends BaseTest
{
public function testUpdateParentWithoutMetadata()
{
/** @var Photo $photo */
$photo = $this->orm->make(Photo::class);
$photo->filesize = 100;
$photo->filename = 'filename';

$photo->metadata = $this->odm->make(Metadata::class, [
'keywords' => ['metadata', 'keyword']
]);
$photo->save();

$photo = $this->orm->source(Photo::class)->findByPK($photo->primaryKey());
$photo->filesize = 200;
$photo->save();

$photo = $this->orm->source(Photo::class)->findByPK($photo->primaryKey());

$this->assertSame(200, $photo->filesize);
$this->assertSame(['metadata', 'keyword'], $photo->metadata->keywords->packValue());
}

public function testUpdateChild()
{
/** @var Photo $photo */
$photo = $this->orm->make(Photo::class);
$photo->filesize = 100;
$photo->filename = 'filename';

$photo->metadata = $this->odm->make(Metadata::class, [
'keywords' => ['metadata', 'keyword']
]);
$photo->save();

$photo = $this->orm->source(Photo::class)->findByPK($photo->primaryKey());
$photo->metadata->keywords->add('new');
$photo->save();

$photo = $this->orm->source(Photo::class)->findByPK($photo->primaryKey());

$this->assertSame(100, $photo->filesize);
$this->assertSame(['metadata', 'keyword', 'new'], $photo->metadata->keywords->packValue());
}

public function testSetNull()
{
/** @var Photo $photo */
$photo = $this->orm->make(Photo::class);
$photo->filesize = 100;
$photo->filename = 'filename';

$photo->metadata = $this->odm->make(Metadata::class, [
'keywords' => ['metadata', 'keyword']
]);
$photo->save();

$photo = $this->orm->source(Photo::class)->findByPK($photo->primaryKey());
$this->assertNotNull($photo->metadata);
$photo->metadata = null;
$photo->save();

$photo = $this->orm->source(Photo::class)->findByPK($photo->primaryKey());
$this->assertNull($photo->metadata);
}

public function testReplace()
{
/** @var Photo $photo */
$photo = $this->orm->make(Photo::class);
$photo->filesize = 100;
$photo->filename = 'filename';

$photo->metadata = $this->odm->make(Metadata::class, [
'keywords' => ['metadata', 'keyword']
]);
$photo->save();

$objectId = $photo->metadata->_id;

$photo = $this->orm->source(Photo::class)->findByPK($photo->primaryKey());
$photo->metadata = $this->odm->make(Metadata::class, [
'keywords' => ['another']
]);

$photo->save();

$photo = $this->orm->source(Photo::class)->findByPK($photo->primaryKey());
$this->assertNotNull($photo->metadata);
$this->assertSame(['another'], $photo->metadata->keywords->packValue());

$this->assertNotSame((string)$objectId, (string)$photo->metadata->_id);
}
}

0 comments on commit 540bfdc

Please sign in to comment.