Phalcon\Test\Unit\Mvc\CollectionTest::testCollectionsEvents PHP Method

testCollectionsEvents() public method

    public function testCollectionsEvents()
    {
        $this->specify("Collection events don't work as expected", function () {
            $songs = StoreSongs::find();
            expect(is_array($songs))->true();
            foreach ($songs as $song) {
                expect($song->delete())->true();
            }
            $trace = array();
            $song = new StoreSongs();
            $song->trace =& $trace;
            $song->artist = 'Radiohead';
            $song->name = 'Lotus Flower';
            expect($song->save())->true();
            expect($trace)->equals(array(StoreSongs::class . '::beforeValidation' => 1, StoreSongs::class . '::beforeValidationOnCreate' => 1, StoreSongs::class . '::afterValidationOnCreate' => 1, StoreSongs::class . '::afterValidation' => 1, StoreSongs::class . '::beforeSave' => 1, StoreSongs::class . '::beforeCreate' => 1, StoreSongs::class . '::afterCreate' => 1, StoreSongs::class . '::afterSave' => 1));
            $this->assertTrue($song->save());
            expect($trace)->equals(array(StoreSongs::class . '::beforeValidation' => 2, StoreSongs::class . '::beforeValidationOnCreate' => 1, StoreSongs::class . '::afterValidationOnCreate' => 1, StoreSongs::class . '::afterValidation' => 2, StoreSongs::class . '::beforeSave' => 2, StoreSongs::class . '::beforeCreate' => 1, StoreSongs::class . '::afterCreate' => 1, StoreSongs::class . '::afterSave' => 2, StoreSongs::class . '::afterValidationOnUpdate' => 1, StoreSongs::class . '::beforeUpdate' => 1, StoreSongs::class . '::afterUpdate' => 1));
        });
    }