/** * Insert data in database * * @return bool */ protected function insert() { $sql = $this->builder->insert($this); $result = Db::query($sql); $this->id = Db::getLastInsertId(); return $result; }
/** * @covers Veles\Model\QueryBuilder::insert * @covers Veles\Model\QueryBuilder::sanitize */ public function testInsert() { $group = UsrGroup::GUEST; $hash = md5('lalala'); $adapter = $this->getMockBuilder('\\Veles\\DataBase\\Adapters\\PdoAdapter')->setMethods(['escape'])->getMock(); $adapter->expects($this->exactly(2))->method('escape')->willReturn('\'escaped-string\''); Db::setAdapter($adapter); $user = new UserCopy(); $user->id = 1; $user->email = '*****@*****.**'; $user->hash = $hash; $user->group = $group; $user->money = 2.22; $user->date = '1080-12-12'; $expected = "\n\t\t\tINSERT\n\t\t\t\t\"users\"\n\t\t\t\t(\"id\", \"email\", \"hash\", \"group\", \"money\")\n\t\t\tVALUES\n\t\t\t\t(1, 'escaped-string', 'escaped-string', {$group}, 2.22)\n\t\t"; $actual = $this->object->insert($user); $msg = 'QueryBuilder::insert() returns wrong result!'; $this->assertSame($expected, $actual, $msg); }