/**
  * tests if criteria modification in beforeFind() applies on normal find*() method call
  * @dataProvider userCriteriaProvider
  */
 public function testBeforeFindCriteriaModification($criteria, $count, $assertations)
 {
     UserWithWrappers::setBeforeFindCriteria($criteria);
     $user = UserWithWrappers::model()->find();
     $this->assertCriteriaApplied(array($user), $criteria, 1, $assertations);
     $user = UserWithWrappers::model()->findByAttributes(array('username' => 'user1'));
     $this->assertCriteriaApplied(array($user), $criteria, 1, $assertations);
     $user = UserWithWrappers::model()->findByPk(1);
     $this->assertCriteriaApplied(array($user), $criteria, 1, $assertations);
     $user = UserWithWrappers::model()->findBySql('SELECT * FROM users');
     $this->assertCriteriaApplied(array($user), $criteria, 1, array());
     $users = UserWithWrappers::model()->findAll();
     $this->assertCriteriaApplied($users, $criteria, $count, $assertations);
     $users = UserWithWrappers::model()->findAllByAttributes(array('username' => array('user1', 'user2', 'user3', 'user4')));
     $this->assertCriteriaApplied($users, $criteria, $count, $assertations);
     $users = UserWithWrappers::model()->findAllByPk(array(1, 2, 3, 4));
     $this->assertCriteriaApplied($users, $criteria, $count, $assertations);
     $users = UserWithWrappers::model()->findAllBySql('SELECT * FROM users');
     $this->assertCriteriaApplied($users, $criteria, 4, array());
 }