Doctrine\Tests\ODM\CouchDB\Functional\EmbedManyTest::testSave PHP Method

testSave() public method

public testSave ( )
    public function testSave()
    {
        $embedder = $this->dm->find($this->type, 1);
        // change the first element
        $embedder->embeds[0]->name = 'changed 1';
        // add another one
        $newOne = new Embedded();
        $newOne->name = 'new one';
        $embedder->embeds[] = $newOne;
        $this->dm->flush();
        $this->dm->clear();
        $embedder = $this->dm->find($this->type, 1);
        $this->assertEquals(3, count($embedder->embeds));
        $this->assertEquals('new one', $embedder->embeds[2]->name);
        $embedder->embeds[0]->name = 'changed';
        $embedder->name = 'foo';
        $embedder->embeds[0]->arrayField[] = 'bar';
        $this->dm->flush();
        $this->dm->clear();
        $embedder = $this->dm->find($this->type, 1);
        $this->assertEquals(3, count($embedder->embeds));
        $this->assertEquals('foo', $embedder->name);
        $this->assertEquals('changed', $embedder->embeds[0]->name);
        $this->assertEquals(1, count($embedder->embeds[0]->arrayField));
        $this->assertEquals('bar', $embedder->embeds[0]->arrayField[0]);
    }