/**
  * @covers       Veles\Auth\Strategies\CookieStrategy::identify
  * @covers       Veles\Auth\Strategies\AbstractAuthStrategy::findUser
  * @dataProvider identifyProvider
  *
  * @param $id
  * @param $hash
  * @param $expected
  * @param $user_result
  */
 public function testIdentify($id, $hash, $expected, $user_result)
 {
     $adapter = $this->getMockBuilder('\\Veles\\DataBase\\Adapters\\PdoAdapter')->setMethods(['row'])->getMock();
     $adapter->expects($this->once())->method('row')->willReturn($user_result);
     Db::setAdapter($adapter);
     $object = new CookieStrategy($id, $hash, new User());
     $actual = $object->identify();
     $msg = 'CookieStrategy::identify() returns wrong result!';
     $this->assertSame($expected, $actual, $msg);
 }
 /**
  * @covers       Veles\Auth\Strategies\LoginFormStrategy::identify
  * @covers       Veles\Auth\Strategies\AbstractAuthStrategy::setCookie
  * @covers       Veles\Auth\Strategies\AbstractAuthStrategy::delCookie
  * @dataProvider identifyProvider
  *
  * @param $mail
  * @param $pass
  * @param $expected
  */
 public function testIdentify($mail, $pass, $expected)
 {
     $user_result = ['id' => 1, 'email' => '*****@*****.**', 'hash' => '$2a$07$usesomesillystringforeGlOaUExBSD9HxuEYk2ZFaeDhggU716O', 'group' => 'uzzy', 'last_login' => '1980-12-12'];
     $adapter = $this->getMockBuilder('\\Veles\\DataBase\\Adapters\\PdoAdapter')->setMethods(['row'])->getMock();
     $adapter->expects($this->once())->method('row')->willReturn($user_result);
     Db::setAdapter($adapter);
     $object = new LoginFormStrategy($mail, $pass, new User());
     $result = $object->identify();
     $msg = 'LoginFormStrategy::identify() returns wrong result!';
     $this->assertSame($expected, $result, $msg);
 }
 /**
  * @covers Veles\Model\QueryBuilder::update
  * @covers Veles\Model\QueryBuilder::sanitize
  */
 public function testUpdate()
 {
     $group = UsrGroup::GUEST;
     $hash = md5('lalala');
     $user = new User();
     $user->id = 1;
     $user->email = '*****@*****.**';
     $user->hash = $hash;
     $user->group = $group;
     $user->last_login = '******';
     $adapter = $this->getMockBuilder('\\Veles\\DataBase\\Adapters\\PdoAdapter')->setMethods(['escape'])->getMock();
     $adapter->expects($this->exactly(3))->method('escape')->willReturn('\'escaped-string\'');
     Db::setAdapter($adapter);
     $expected = "\n\t\t\tUPDATE\n\t\t\t\t\"users\"\n\t\t\tSET\n\t\t\t\t\"email\" = 'escaped-string', \"hash\" = 'escaped-string', \"group\" = 16, \"last_login\" = 'escaped-string'\n\t\t\tWHERE\n\t\t\t\tid = 1\n\t\t";
     $actual = $this->object->update($user);
     $msg = 'QueryBuilder::update() returns wrong result!';
     $this->assertSame($expected, $actual, $msg);
 }
 /**
  * @covers Veles\Model\User::getGroup
  */
 public function testGetGroup()
 {
     $expected = 16;
     $actual = $this->object->getGroup();
     $msg = 'User::getGroup() returns wrong result!';
     $this->assertSame($expected, $actual, $msg);
     $expected = UsrGroup::ADMIN;
     $db_result = ['id' => 1, 'email' => '*****@*****.**', 'hash' => '$2a$07$usesomesillystringforeGlOaUExBSD9HxuEYk2ZFaeDhggU716O', 'group' => $expected, 'last_login' => 'string'];
     $adapter = $this->getMockBuilder('\\Veles\\DataBase\\Adapters\\PdoAdapter')->setMethods(['row'])->getMock();
     $adapter->expects($this->once())->method('row')->willReturn($db_result);
     Db::setAdapter($adapter);
     $this->object->getById(1);
     $actual = $this->object->getGroup();
     $this->assertSame($expected, $actual, $msg);
 }
 /**
  * @covers Veles\DataBase\DbPaginator::calcMaxPages
  */
 public function testCalcMaxPages()
 {
     $expected = 3;
     $adapter = $this->getMockBuilder('\\Veles\\DataBase\\Adapters\\PdoAdapter')->setMethods(['getFoundRows'])->getMock();
     $adapter->expects($this->once())->method('getFoundRows')->willReturn(15);
     Db::setAdapter($adapter);
     $this->object->calcMaxPages();
     $msg = 'Wrong DbPaginator::calcMaxPages() behavior!';
     $this->assertAttributeSame($expected, 'page_nums', $this->object, $msg);
 }
 /**
  * @covers Veles\DataBase\Db::escape
  */
 public function testEscape()
 {
     $expected = 'string';
     $adapter = $this->getMockBuilder('\\Veles\\DataBase\\Adapters\\PdoAdapter')->setMethods(['escape'])->getMock();
     $adapter->expects($this->once())->method('escape')->with($expected)->willReturn($adapter);
     Db::setAdapter($adapter);
     Db::escape($expected);
 }
 /**
  * @covers       Veles\Model\ActiveRecord::query
  * @dataProvider queryProvider
  *
  * @param $pager
  * @param $expected
  * @param $found_rows
  */
 public function testQuery($pager, $expected, $found_rows)
 {
     $adapter = $this->getMockBuilder('\\Veles\\DataBase\\Adapters\\PdoAdapter')->setMethods(['rows', 'getFoundRows'])->getMock();
     $adapter->expects($this->once())->method('rows')->willReturn($expected);
     if ($found_rows) {
         $adapter->expects($this->once())->method('getFoundRows')->willReturn($found_rows);
     }
     Db::setAdapter($adapter);
     $sql = "SELECT * FROM user";
     $news = new News();
     $result = $news->query($sql, $pager);
     $msg = 'ActiveRecord::query() returns wrong result!';
     $this->assertSame($expected, $result, $msg);
 }