Exemplo n.º 1
0
 /**
  * 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);
 }