Doctrine\SkeletonMapper\Tests\Functional\BaseImplementationTest::testPropertyChangedListeners PHP Method

testPropertyChangedListeners() public method

    public function testPropertyChangedListeners()
    {
        $user = $this->objectManager->find($this->userClassName, 1);
        $user->setUsername('changed');
        $this->assertEquals(new ChangeSet($user, array('username' => new Change('username', 'jwage', 'changed'))), $this->unitOfWork->getObjectChangeSet($user));
        $this->objectManager->flush();
        $this->objectManager->clear();
        $this->assertEquals(new ChangeSet($user, array()), $this->unitOfWork->getObjectChangeSet($user));
        $user2 = $this->objectManager->find($this->userClassName, 1);
        $this->assertEquals('changed', $user2->getUsername());
        $user3 = $this->createTestObject();
        $user3->setId(3);
        $user3->setUsername('another');
        $this->assertEquals(new ChangeSet($user3, array()), $this->unitOfWork->getObjectChangeSet($user3));
        $this->objectManager->flush();
        $this->objectManager->clear();
        $this->assertNull($this->objectManager->find($this->userClassName, 3));
        $this->objectManager->persist($user3);
        $this->objectManager->flush();
        $this->assertNotNull($this->objectManager->find($this->userClassName, 3));
        $user3->setUsername('changed');
        $this->assertEquals(new ChangeSet($user3, array('username' => new Change('username', 'another', 'changed'))), $this->unitOfWork->getObjectChangeSet($user3));
        $this->objectManager->flush();
        $this->objectManager->clear();
        $user3 = $this->objectManager->find($this->userClassName, 3);
        $this->assertEquals('changed', $user3->getUsername());
        $user3->setUsername('testing');
        $this->assertEquals(new ChangeSet($user3, array('username' => new Change('username', 'changed', 'testing'))), $this->unitOfWork->getObjectChangeSet($user3));
        $this->objectManager->clear();
        $this->objectManager->flush();
        $this->assertEquals(new ChangeSet($user, array()), $this->unitOfWork->getObjectChangeSet($user));
        $user3 = $this->objectManager->find($this->userClassName, 3);
        $this->assertEquals('changed', $user3->getUsername());
    }