12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- <?php
- namespace EasySwoole\ORM\Tests;
- use EasySwoole\ORM\Db\Config;
- use EasySwoole\ORM\Db\Connection;
- use EasySwoole\ORM\DbManager;
- use EasySwoole\ORM\Exception\Exception;
- use EasySwoole\ORM\Tests\models\TestUserModel;
- use PHPUnit\Framework\TestCase;
- class ReplaceIntoTest extends TestCase
- {
- /**
- * @var $connection Connection
- */
- protected $connection;
- protected $ids = [];
- protected function setUp(): void
- {
- parent::setUp(); // TODO: Change the autogenerated stub
- $config = new Config(MYSQL_CONFIG);
- $config->setReturnCollection(true);
- $this->connection = new Connection($config);
- DbManager::getInstance()->addConnection($this->connection);
- $connection = DbManager::getInstance()->getConnection();
- $this->assertTrue($connection === $this->connection);
- }
- public function testException()
- {
- $model = TestUserModel::create();
- $addTime = date('Y-m-d');
- $data = [
- 'name' => '史迪仔',
- 'age' => 21,
- 'addTime' => $addTime,
- 'state' => 1
- ];
- $id = $model->data($data)->save();
- $this->assertIsInt($id);
- $this->expectException(Exception::class);
- $this->expectExceptionMessage("SQLSTATE[23000] [1062] Duplicate entry '{$id}' for key 'PRIMARY' [INSERT INTO `test_user_model` (`name`, `age`, `addTime`, `state`, `id`) VALUES ('史迪仔', 21, '{$addTime}', 1, {$id})]");
- $model->data($data)->save();
- $this->fail('replace test exception error');
- }
- public function testReplaceInto()
- {
- TestUserModel::create()->destroy(null, true);
- $model = TestUserModel::create();
- $addTime = date('Y-m-d');
- $data = [
- 'name' => '史迪仔',
- 'age' => 21,
- 'addTime' => $addTime,
- 'state' => 1
- ];
- $id = $model->data($data)->save();
- $this->assertIsInt($id);
- $data['name'] = 'replace into';
- $model->data($data)->replace()->save();
- $sql = DbManager::getInstance()->getLastQuery()->getLastQuery();
- $this->assertEquals("REPLACE INTO `test_user_model` (`name`, `age`, `addTime`, `state`, `id`) VALUES ('replace into', 21, '{$addTime}', 1, {$id})", $sql);
- $ret = TestUserModel::create()->get($id);
- $this->assertEquals('replace into', $ret->name);
- }
- public function tearDown(): void
- {
- TestUserModel::create()->destroy(null, true);
- }
- }
|