mirror of
https://github.com/torrentpier/torrentpier
synced 2025-08-22 22:33:55 -07:00
Change in code style and fix in phpdoc
This commit is contained in:
parent
ed691c8149
commit
2ce3fbe595
13 changed files with 266 additions and 7 deletions
|
@ -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);
|
||||||
|
|
14
src/Di.php
14
src/Di.php
|
@ -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)) {
|
||||||
|
|
|
@ -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
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -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
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
||||||
*/
|
*/
|
||||||
|
|
209
tests/src/Db/AdapterTest.php
Normal file
209
tests/src/Db/AdapterTest.php
Normal 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);
|
||||||
|
}
|
||||||
|
}
|
|
@ -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'])
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue