Change in code style and fix in phpdoc

This commit is contained in:
Vasily Komrakov 2016-05-22 01:12:51 +03:00
commit 2ce3fbe595
13 changed files with 266 additions and 7 deletions

View file

@ -31,8 +31,12 @@ class Adapter extends \Zend\Db\Adapter\Adapter
/** /**
* {@inheritdoc} * {@inheritdoc}
*/ */
public function __construct($driver, PlatformInterface $platform = null, ResultSetInterface $queryResultPrototype = null, ProfilerInterface $profiler = null) public function __construct(
{ $driver,
PlatformInterface $platform = null,
ResultSetInterface $queryResultPrototype = null,
ProfilerInterface $profiler = null
) {
if ($driver instanceof Config) { if ($driver instanceof Config) {
$driver = $driver->toArray(); $driver = $driver->toArray();
} }
@ -85,7 +89,6 @@ class Adapter extends \Zend\Db\Adapter\Adapter
$table = $this->prepareTable($table); $table = $this->prepareTable($table);
$sql = $this->getSql(); $sql = $this->getSql();
/** @var Insert $sqlInsert */ /** @var Insert $sqlInsert */
$sqlInsert = $sql->insert($table); $sqlInsert = $sql->insert($table);
$sqlInsert->values($values); $sqlInsert->values($values);

View file

@ -12,12 +12,21 @@ class Di extends Container
{ {
private static $instance; private static $instance;
/**
* Di constructor.
*
* @param array $values
*/
public function __construct(array $values = []) public function __construct(array $values = [])
{ {
parent::__construct($values); parent::__construct($values);
static::$instance = $this; static::$instance = $this;
} }
/**
* @return Di
* @throws \RuntimeException
*/
public static function getInstance() public static function getInstance()
{ {
if (static::$instance instanceof Container) { if (static::$instance instanceof Container) {
@ -27,6 +36,11 @@ class Di extends Container
throw new \RuntimeException('The container has not been initialized'); throw new \RuntimeException('The container has not been initialized');
} }
/**
* @param $id
* @return mixed
* @throws \RuntimeException
*/
public function __get($id) public function __get($id)
{ {
if ($this->offsetExists($id)) { if ($this->offsetExists($id)) {

View file

@ -7,6 +7,10 @@ use Pimple\ServiceProviderInterface;
use TorrentPier\Config; use TorrentPier\Config;
use Zend\Config\Factory; use Zend\Config\Factory;
/**
* Class ConfigServiceProvider
* @package TorrentPier\ServiceProviders
*/
class ConfigServiceProvider implements ServiceProviderInterface class ConfigServiceProvider implements ServiceProviderInterface
{ {
/** /**

View file

@ -7,6 +7,10 @@ use Pimple\ServiceProviderInterface;
use TorrentPier\Db\Adapter; use TorrentPier\Db\Adapter;
use TorrentPier\Db\Connection; use TorrentPier\Db\Connection;
/**
* Class DbServiceProvider
* @package TorrentPier\ServiceProviders
*/
class DbServiceProvider implements ServiceProviderInterface class DbServiceProvider implements ServiceProviderInterface
{ {
/** /**

View file

@ -6,6 +6,10 @@ use Pimple\Container;
use Pimple\ServiceProviderInterface; use Pimple\ServiceProviderInterface;
use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Request;
/**
* Class RequestServiceProvider
* @package TorrentPier\ServiceProviders
*/
class RequestServiceProvider implements ServiceProviderInterface class RequestServiceProvider implements ServiceProviderInterface
{ {
public function register(Container $container) public function register(Container $container)

View file

@ -11,6 +11,10 @@ use Zend\Db\Adapter\Adapter;
use Zend\Db\Adapter\Driver\Mysqli\Mysqli; use Zend\Db\Adapter\Driver\Mysqli\Mysqli;
use Zend\Db\Adapter\Driver\Pdo\Pdo; use Zend\Db\Adapter\Driver\Pdo\Pdo;
/**
* Class SphinxServiceProvider
* @package TorrentPier\ServiceProviders
*/
class SphinxServiceProvider implements ServiceProviderInterface class SphinxServiceProvider implements ServiceProviderInterface
{ {
/** /**

View file

@ -7,6 +7,10 @@ use Pimple\ServiceProviderInterface;
use Symfony\Component\Translation\Loader\PhpFileLoader; use Symfony\Component\Translation\Loader\PhpFileLoader;
use Symfony\Component\Translation\Translator; use Symfony\Component\Translation\Translator;
/**
* Class TranslationServiceProvider
* @package TorrentPier\ServiceProviders
*/
class TranslationServiceProvider implements ServiceProviderInterface class TranslationServiceProvider implements ServiceProviderInterface
{ {
public function register(Container $container) public function register(Container $container)

View file

@ -6,6 +6,10 @@ use Pimple\Container;
use Pimple\ServiceProviderInterface; use Pimple\ServiceProviderInterface;
use Symfony\Bridge\Twig\Extension\TranslationExtension; use Symfony\Bridge\Twig\Extension\TranslationExtension;
/**
* Class TwigServiceProvider
* @package TorrentPier\ServiceProviders
*/
class TwigServiceProvider implements ServiceProviderInterface class TwigServiceProvider implements ServiceProviderInterface
{ {
public function register(Container $container) public function register(Container $container)

View file

@ -6,6 +6,10 @@ use Pimple\Container;
use Pimple\ServiceProviderInterface; use Pimple\ServiceProviderInterface;
use TorrentPier\View; use TorrentPier\View;
/**
* Class ViewServiceProvider
* @package TorrentPier\ServiceProviders
*/
class ViewServiceProvider implements ServiceProviderInterface class ViewServiceProvider implements ServiceProviderInterface
{ {
public function register(Container $container) public function register(Container $container)

View file

@ -9,6 +9,11 @@ class View
*/ */
protected $twig; protected $twig;
/**
* View constructor.
*
* @param \Twig_Environment $twig
*/
public function __construct(\Twig_Environment $twig) public function __construct(\Twig_Environment $twig)
{ {
$this->twig = $twig; $this->twig = $twig;
@ -17,11 +22,10 @@ class View
/** /**
* @param $template * @param $template
* @param array $params * @param array $params
*
* @return string * @return string
*/ */
public function make($template, $params = []) public function make($template, $params = [])
{ {
return $this->twig->render($template.'.twig', $params); return $this->twig->render($template . '.twig', $params);
} }
} }

View file

@ -31,7 +31,7 @@ class ConfigTest extends \PHPUnit_Framework_TestCase
} }
/** /**
* Get value from array by key * Get value from array by key.
* *
* @see \TorrentPier\Config::get * @see \TorrentPier\Config::get
*/ */

View file

@ -0,0 +1,209 @@
<?php
namespace TorrentPier\Db;
use Zend\Db\Adapter\Driver\Pdo\Result;
use Zend\Db\Adapter\Driver\Pdo\Statement;
use Zend\Db\Adapter\Driver\Pdo\Connection;
use Zend\Db\Adapter\Driver\Pdo\Pdo;
use Zend\Db\Adapter\Platform\AbstractPlatform;
use Zend\Db\Sql\Delete;
use Zend\Db\Sql\Insert;
use Zend\Db\Sql\Sql;
use Zend\Db\Sql\Update;
class AdapterTest extends \PHPUnit_Framework_TestCase
{
const AFFECTED_ROWS = 2;
/**
* @var \PHPUnit_Framework_MockObject_MockObject|Adapter
*/
protected $adapterMock;
/**
* @var \PHPUnit_Framework_MockObject_MockObject|Sql
*/
protected $sqlMock;
/**
* @var \PHPUnit_Framework_MockObject_MockObject|Statement
*/
protected $statementMock;
/**
* {@inheritdoc}
*/
public function setUp()
{
$resultMock = $this->getMock(Result::class, ['getGeneratedValue', 'getAffectedRows']);
$resultMock->method('getGeneratedValue')->willReturn(self::AFFECTED_ROWS);
$resultMock->method('getAffectedRows')->willReturn(self::AFFECTED_ROWS);
$this->statementMock = $this->getMock(Statement::class, ['execute']);
$this->statementMock->method('execute')->willReturn($resultMock);
$this->adapterMock = $this->getMockBuilder(Adapter::class)
->setMethods(['getSql', 'getPlatform', 'getDriver'])
->disableOriginalConstructor()
->getMock();
$platformMock = $this->getMock(AbstractPlatform::class, ['getName', 'quoteIdentifier', 'quoteValue']);
$platformMock->method('quoteIdentifier')->willReturnCallback(function($v) { return '`' . $v . '`'; });
$platformMock->method('quoteValue')->willReturnCallback(function($v) {
if (is_int($v)) {
return $v;
} elseif ($v instanceof \DateTime) {
$v = $v->format('Y-m-d H:i:s');
}
return '\'' . $v . '\'';
});
$platformMock->method('getName')->willReturn('platform name');
$this->adapterMock->method('getPlatform')->willReturn($platformMock);
$connectionMock = $this->getMock(Connection::class);
$driverMock = $this->getMock(Pdo::class, [], [
$connectionMock,
$this->statementMock,
$resultMock,
]);
$this->adapterMock->method('getDriver')->willReturn($driverMock);
$this->sqlMock = $this->getMockBuilder(Sql::class)
->setMethods(['prepareStatementForSqlObject'])
->setConstructorArgs([$this->adapterMock])
->getMock();
$this->adapterMock->method('getSql')->willReturn($this->sqlMock);
}
/**
* Create sql insert query.
* @covers \TorrentPier\Db\Adapter::insert
*/
public function testInsert()
{
$date = new \DateTime('now', new \DateTimeZone('UTC'));
$this->sqlMock->expects(static::once())
->method('prepareStatementForSqlObject')
->willReturnCallback(function (Insert $sqlObject) use ($date) {
static::assertEquals(
join(' ', [
"INSERT INTO",
"`tableName` (`field_int`, `field_str`, `field_date`)",
"VALUES (123, 'string', '{$date->format('Y-m-d H:i:s')}')",
]),
$this->sqlMock->buildSqlString($sqlObject)
);
return $this->statementMock;
});
$actual = $this->adapterMock->insert('tableName', [
'field_int' => 123,
'field_str' => 'string',
'field_date' => $date,
]);
static::assertEquals(self::AFFECTED_ROWS, $actual);
}
/**
* Create sql update query.
* @covers \TorrentPier\Db\Adapter::update
*/
public function testUpdate()
{
$date = new \DateTime('now', new \DateTimeZone('UTC'));
$this->sqlMock->expects(static::once())
->method('prepareStatementForSqlObject')
->willReturnCallback(function (Update $sqlObject) use ($date) {
static::assertEquals(
join(' ', [
"UPDATE `tableName` SET",
"`field_int` = 123, `field_str` = 'string', `field_date` = '{$date->format('Y-m-d H:i:s')}'",
"WHERE \"field_id\" = 1"
]),
$this->sqlMock->buildSqlString($sqlObject)
);
return $this->statementMock;
});
$actual = $this->adapterMock->update('tableName', [
'field_int' => 123,
'field_str' => 'string',
'field_date' => $date,
], [
'field_id' => 1
]);
static::assertEquals(self::AFFECTED_ROWS, $actual);
}
/**
* Create sql delete query.
* @covers \TorrentPier\Db\Adapter::delete
*/
public function testDelete()
{
$this->sqlMock->expects(static::once())
->method('prepareStatementForSqlObject')
->willReturnCallback(function (Delete $sqlObject) {
static::assertEquals(
"DELETE FROM `tableName` WHERE \"field_id\" = 1",
$this->sqlMock->buildSqlString($sqlObject)
);
return $this->statementMock;
});
$actual = $this->adapterMock->delete('tableName', [
'field_id' => 1
]);
static::assertEquals(self::AFFECTED_ROWS, $actual);
}
/**
* Create sql increment query.
* @covers \TorrentPier\Db\Adapter::increment
*/
public function testIncrement()
{
$this->sqlMock->expects(static::once())
->method('prepareStatementForSqlObject')
->willReturnCallback(function (Update $sqlObject) {
static::assertEquals(
"UPDATE `tableName` SET `inc` = \"inc\" + 1 WHERE \"field_id\" = 1",
$this->sqlMock->buildSqlString($sqlObject)
);
return $this->statementMock;
});
$actual = $this->adapterMock->increment('tableName', 'inc', ['field_id' => 1]);
static::assertEquals(self::AFFECTED_ROWS, $actual);
}
/**
* Create sql decrement query.
* @covers \TorrentPier\Db\Adapter::decrement
*/
public function testDecrement()
{
$this->sqlMock->expects(static::once())
->method('prepareStatementForSqlObject')
->willReturnCallback(function (Update $sqlObject) {
static::assertEquals(
"UPDATE `tableName` SET `inc` = \"inc\" - 1 WHERE \"field_id\" = 1",
$this->sqlMock->buildSqlString($sqlObject)
);
return $this->statementMock;
});
$actual = $this->adapterMock->decrement('tableName', 'inc', ['field_id' => 1]);
static::assertEquals(self::AFFECTED_ROWS, $actual);
}
}

View file

@ -9,13 +9,14 @@ namespace TorrentPier;
class ViewTest extends \PHPUnit_Framework_TestCase class ViewTest extends \PHPUnit_Framework_TestCase
{ {
/** /**
* @see \TorrentPier\View::make * @covers \TorrentPier\View::make
*/ */
public function testMake() public function testMake()
{ {
$templateFileName = 'template'; $templateFileName = 'template';
$templateParam = ['key' => 'value']; $templateParam = ['key' => 'value'];
/** @var \Twig_Environment|\PHPUnit_Framework_MockObject_MockObject $mockTwig */
$mockTwig = $this $mockTwig = $this
->getMockBuilder(\Twig_Environment::class) ->getMockBuilder(\Twig_Environment::class)
->setMethods(['render']) ->setMethods(['render'])