You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
97 lines
2.4 KiB
97 lines
2.4 KiB
11 years ago
|
<?php
|
||
|
/**
|
||
|
* @link http://www.yiiframework.com/
|
||
|
* @copyright Copyright (c) 2008 Yii Software LLC
|
||
|
* @license http://www.yiiframework.com/license/
|
||
|
*/
|
||
|
|
||
|
namespace yiiunit\framework\test;
|
||
|
|
||
|
use yii\test\ActiveFixture;
|
||
11 years ago
|
use yiiunit\data\ar\ActiveRecord;
|
||
11 years ago
|
use yii\test\FixtureTrait;
|
||
11 years ago
|
use yii\test\InitDbFixture;
|
||
11 years ago
|
use yiiunit\data\ar\Customer;
|
||
11 years ago
|
use yiiunit\framework\db\DatabaseTestCase;
|
||
|
|
||
|
class CustomerFixture extends ActiveFixture
|
||
|
{
|
||
11 years ago
|
public $modelClass = 'yiiunit\data\ar\Customer';
|
||
11 years ago
|
}
|
||
|
|
||
|
class MyDbTestCase
|
||
|
{
|
||
11 years ago
|
use FixtureTrait;
|
||
11 years ago
|
|
||
11 years ago
|
public function setUp()
|
||
|
{
|
||
|
$this->unloadFixtures();
|
||
|
$this->loadFixtures();
|
||
|
}
|
||
11 years ago
|
|
||
11 years ago
|
public function tearDown()
|
||
|
{
|
||
|
}
|
||
11 years ago
|
|
||
11 years ago
|
public function fixtures()
|
||
|
{
|
||
|
return [
|
||
|
'customers' => CustomerFixture::className(),
|
||
|
];
|
||
|
}
|
||
11 years ago
|
|
||
11 years ago
|
public function globalFixtures()
|
||
|
{
|
||
|
return [
|
||
|
InitDbFixture::className(),
|
||
|
];
|
||
|
}
|
||
11 years ago
|
}
|
||
|
|
||
|
/**
|
||
|
*
|
||
|
* @author Qiang Xue <qiang.xue@gmail.com>
|
||
|
* @since 2.0
|
||
|
*/
|
||
|
class ActiveFixtureTest extends DatabaseTestCase
|
||
|
{
|
||
11 years ago
|
public function setUp()
|
||
|
{
|
||
|
parent::setUp();
|
||
11 years ago
|
\Yii::$app->set('db', $this->getConnection());
|
||
11 years ago
|
ActiveRecord::$db = $this->getConnection();
|
||
|
}
|
||
11 years ago
|
|
||
11 years ago
|
public function tearDown()
|
||
|
{
|
||
|
parent::tearDown();
|
||
|
}
|
||
11 years ago
|
|
||
11 years ago
|
public function testGetData()
|
||
|
{
|
||
|
$test = new MyDbTestCase();
|
||
|
$test->setUp();
|
||
|
$fixture = $test->getFixture('customers');
|
||
|
$this->assertEquals(CustomerFixture::className(), get_class($fixture));
|
||
|
$this->assertEquals(2, count($fixture));
|
||
|
$this->assertEquals(1, $fixture['customer1']['id']);
|
||
|
$this->assertEquals('customer1@example.com', $fixture['customer1']['email']);
|
||
|
$this->assertEquals(2, $fixture['customer2']['id']);
|
||
|
$this->assertEquals('customer2@example.com', $fixture['customer2']['email']);
|
||
|
$test->tearDown();
|
||
|
}
|
||
11 years ago
|
|
||
11 years ago
|
public function testGetModel()
|
||
|
{
|
||
|
$test = new MyDbTestCase();
|
||
|
$test->setUp();
|
||
|
$fixture = $test->getFixture('customers');
|
||
|
$this->assertEquals(Customer::className(), get_class($fixture->getModel('customer1')));
|
||
|
$this->assertEquals(1, $fixture->getModel('customer1')->id);
|
||
|
$this->assertEquals('customer1@example.com', $fixture->getModel('customer1')->email);
|
||
|
$this->assertEquals(2, $fixture->getModel('customer2')->id);
|
||
|
$this->assertEquals('customer2@example.com', $fixture->getModel('customer2')->email);
|
||
|
$test->tearDown();
|
||
|
}
|
||
11 years ago
|
}
|