Example #1
0
 /**
  * Test user accounts relations
  *
  * @depends testValidationAndSave
  *
  * @return User
  */
 public function testUserAccounts()
 {
     /* @var $user User */
     $user = $this->getModule('Yii2')->grabFixture('users', 'activeUser1');
     $model = new UserAccount();
     $attributes = ['user_id' => [['value' => null, 'isValid' => false], ['value' => [], 'isValid' => false], ['value' => 0, 'isValid' => false], ['value' => -100, 'isValid' => false], ['value' => $user->id, 'isValid' => true]], 'username' => [['value' => null, 'isValid' => false], ['value' => [], 'isValid' => false], ['value' => 0, 'isValid' => false], ['value' => str_repeat('A', 101), 'isValid' => false], ['value' => str_repeat('A', 100), 'isValid' => true]], 'type' => [['value' => null, 'isValid' => false], ['value' => [], 'isValid' => false], ['value' => 'wrong type', 'isValid' => false], ['value' => UserAccount::TYPE_HG, 'isValid' => true], ['value' => UserAccount::TYPE_SVN, 'isValid' => true], ['value' => UserAccount::TYPE_GIT, 'isValid' => true]]];
     $this->getModule('\\Helper\\Unit')->validateModelAttributes($model, $attributes, $this);
     $this->assertTrue($model->save());
     // check unique record with type and username columns
     $newModel = new UserAccount();
     $newModel->setAttributes($model->getAttributes());
     $this->assertFalse($newModel->validate());
     $this->assertArrayHasKey('type', $newModel->getErrors());
     $this->assertArrayHasKey('username', $newModel->getErrors());
     $newModel->type = UserAccount::TYPE_HG;
     $this->assertTrue($newModel->validate());
     $this->assertTrue($newModel->save());
     $this->assertContainsOnly(UserAccount::className(), $user->accounts);
     $this->assertCount(2, $user->accounts);
     $this->assertInstanceOf(User::className(), $model->user);
     $this->assertEquals($user->id, $model->user->id);
     $this->assertInstanceOf(User::className(), $newModel->user);
     $this->assertEquals($user->id, $newModel->user->id);
     return $user;
 }