Implement basic localization db mapper

This commit is contained in:
Dennis Eichhorn 2018-05-30 22:35:42 +02:00
parent a9bb4b9224
commit 31209d2b30
15 changed files with 200 additions and 9 deletions

View File

@ -65,6 +65,7 @@ final class SqliteConnection extends ConnectionAbstract
$this->status = DatabaseStatus::OK;
} catch (\PDOException $e) {
var_dump($e->getMessage());
$this->status = DatabaseStatus::MISSING_DATABASE;
$this->con = null;
}

View File

@ -42,7 +42,7 @@ class CountryMapper extends DataMapperAbstract
'country_code2' => ['name' => 'country_code2', 'type' => 'string', 'internal' => 'code2'],
'country_code3' => ['name' => 'country_code3', 'type' => 'string', 'internal' => 'code3'],
'country_numeric' => ['name' => 'country_numeric', 'type' => 'int', 'internal' => 'numeric'],
'country_subdevision' => ['name' => 'country_subdevision', 'type' => 'float', 'internal' => 'subdevision'],
'country_subdevision' => ['name' => 'country_subdevision', 'type' => 'string', 'internal' => 'subdevision'],
];
/**

View File

@ -41,7 +41,7 @@ class CurrencyMapper extends DataMapperAbstract
'currency_name' => ['name' => 'currency_name', 'type' => 'string', 'internal' => 'name'],
'currency_code' => ['name' => 'currency_code', 'type' => 'string', 'internal' => 'code'],
'currency_number' => ['name' => 'currency_number', 'type' => 'int', 'internal' => 'number'],
'currency_decimal' => ['name' => 'currency_decimal', 'type' => 'int', 'internal' => 'decimal'],
'currency_decimal' => ['name' => 'currency_decimal', 'type' => 'int', 'internal' => 'decimals'],
'currency_countries' => ['name' => 'currency_countries', 'type' => 'string', 'internal' => 'countries'],
];

View File

@ -46,7 +46,7 @@ final class Iban
* @var string
* @since 1.0.0
*/
private $chars = '';
private $chars = 2;
/**
* Iban bban.
@ -79,11 +79,11 @@ final class Iban
/**
* Get iban chars
*
* @return string
* @return int
*
* @since 1.0.0
*/
public function getChars() : string
public function getChars() : int
{
return $this->chars;
}

View File

@ -39,7 +39,7 @@ class IbanMapper extends DataMapperAbstract
protected static $columns = [
'iban_id' => ['name' => 'iban_id', 'type' => 'int', 'internal' => 'id'],
'iban_country' => ['name' => 'iban_country', 'type' => 'string', 'internal' => 'country'],
'iban_chars' => ['name' => 'iban_chars', 'type' => 'string', 'internal' => 'chars'],
'iban_chars' => ['name' => 'iban_chars', 'type' => 'int', 'internal' => 'chars'],
'iban_bban' => ['name' => 'iban_bban', 'type' => 'string', 'internal' => 'bban'],
'iban_fields' => ['name' => 'iban_fields', 'type' => 'string', 'internal' => 'fields'],
];

View File

@ -64,6 +64,14 @@ final class Language
*/
private $code3 = '';
/**
* Language code.
*
* @var string
* @since 1.0.0
*/
private $code3Native = '';
/**
* Get language name
*
@ -111,4 +119,16 @@ final class Language
{
return $this->code3;
}
/**
* Get language code
*
* @return string
*
* @since 1.0.0
*/
public function getCode3Native() : string
{
return $this->code3Native;
}
}

View File

@ -38,9 +38,10 @@ class LanguageMapper extends DataMapperAbstract
*/
protected static $columns = [
'language_id' => ['name' => 'language_id', 'type' => 'int', 'internal' => 'id'],
'language_name' => ['name' => 'language_name', 'type' => 'string', 'internal' => 'name'],
'language_native' => ['name' => 'language_native', 'type' => 'string', 'internal' => 'native'],
'language_native' => ['name' => 'language_native', 'type' => 'string', 'internal' => 'name'],
'language_639_1' => ['name' => 'language_639_1', 'type' => 'string', 'internal' => 'native'],
'language_639_2T' => ['name' => 'language_639_2T', 'type' => 'string', 'internal' => 'code2'],
'language_639_2B' => ['name' => 'language_639_2B', 'type' => 'string', 'internal' => 'code3Native'],
'language_639_3' => ['name' => 'language_639_3', 'type' => 'string', 'internal' => 'code3'],
];

View File

@ -0,0 +1,32 @@
<?php
/**
* Orange Management
*
* PHP Version 7.2
*
* @package phpOMS\Message
* @copyright Dennis Eichhorn
* @license OMS License 1.0
* @version 1.0.0
* @link http://website.orange-management.de
*/
declare(strict_types=1);
namespace phpOMS\Message;
use phpOMS\Stdlib\Base\Enum;
/**
* Notification level enum.
*
* @package phpOMS\Message
* @license OMS License 1.0
* @link http://website.orange-management.de
* @since 1.0.0
*/
abstract class NotificationLevel extends Enum
{
public const OK = 'ok';
public const WARNING = 'warning';
public const ERROR = 'error';
}

View File

@ -17,7 +17,36 @@ require_once __DIR__ . '/../../Autoloader.php';
use phpOMS\Localization\Defaults\City;
use phpOMS\Localization\Defaults\CityMapper;
use phpOMS\DataStorage\Database\DataMapperAbstract;
use phpOMS\DataStorage\Database\Connection\SQLiteConnection;
class CityMapperTest extends \PHPUnit\Framework\TestCase
{
static function setUpBeforeClass()
{
$con = new SqliteConnection([
'prefix' => '',
'db' => 'sqlite',
'path' => realpath(__DIR__ . '/../../../Localization/Defaults/localization.sqlite'),
]);
DataMapperAbstract::setConnection($con);
}
public function testR()
{
$obj = CityMapper::get(101079);
self::assertEquals('DE', $obj->getCountryCode());
self::assertEquals('Frankfurt', $obj->getName());
self::assertEquals(60322, $obj->getPostal());
self::assertGreaterThan(50, $obj->getLat());
self::assertGreaterThan(8, $obj->getLong());
self::assertLessThan(51, $obj->getLat());
self::assertLessThan(9, $obj->getLong());
}
static function tearDownAfterClass()
{
DataMapperAbstract::setConnection($GLOBALS['dbpool']->get());
}
}

View File

@ -17,7 +17,34 @@ require_once __DIR__ . '/../../Autoloader.php';
use phpOMS\Localization\Defaults\Country;
use phpOMS\Localization\Defaults\CountryMapper;
use phpOMS\DataStorage\Database\DataMapperAbstract;
use phpOMS\DataStorage\Database\Connection\SQLiteConnection;
class CountryMapperTest extends \PHPUnit\Framework\TestCase
{
static function setUpBeforeClass()
{
$con = new SqliteConnection([
'prefix' => '',
'db' => 'sqlite',
'path' => realpath(__DIR__ . '/../../../Localization/Defaults/localization.sqlite'),
]);
DataMapperAbstract::setConnection($con);
}
public function testR()
{
$obj = CountryMapper::get(83);
self::assertEquals('Germany', $obj->getName());
self::assertEquals('DE', $obj->getCode2());
self::assertEquals('DEU', $obj->getCode3());
self::assertEquals(276, $obj->getNumeric());
self::assertEquals('ISO 3166-2:DE', $obj->getSubdevision());
}
static function tearDownAfterClass()
{
DataMapperAbstract::setConnection($GLOBALS['dbpool']->get());
}
}

View File

@ -17,7 +17,34 @@ require_once __DIR__ . '/../../Autoloader.php';
use phpOMS\Localization\Defaults\Currency;
use phpOMS\Localization\Defaults\CurrencyMapper;
use phpOMS\DataStorage\Database\DataMapperAbstract;
use phpOMS\DataStorage\Database\Connection\SQLiteConnection;
class CurrencyMapperTest extends \PHPUnit\Framework\TestCase
{
static function setUpBeforeClass()
{
$con = new SqliteConnection([
'prefix' => '',
'db' => 'sqlite',
'path' => realpath(__DIR__ . '/../../../Localization/Defaults/localization.sqlite'),
]);
DataMapperAbstract::setConnection($con);
}
public function testR()
{
$obj = CurrencyMapper::get(50);
self::assertEquals('Euro', $obj->getName());
self::assertEquals('EUR', $obj->getCode());
self::assertEquals(978, $obj->getNumber());
self::assertEquals(2, $obj->getDecimals());
self::assertContains('Germany', $obj->getCountries());
}
static function tearDownAfterClass()
{
DataMapperAbstract::setConnection($GLOBALS['dbpool']->get());
}
}

View File

@ -17,7 +17,33 @@ require_once __DIR__ . '/../../Autoloader.php';
use phpOMS\Localization\Defaults\Iban;
use phpOMS\Localization\Defaults\IbanMapper;
use phpOMS\DataStorage\Database\DataMapperAbstract;
use phpOMS\DataStorage\Database\Connection\SQLiteConnection;
class IbanMapperTest extends \PHPUnit\Framework\TestCase
{
static function setUpBeforeClass()
{
$con = new SqliteConnection([
'prefix' => '',
'db' => 'sqlite',
'path' => realpath(__DIR__ . '/../../../Localization/Defaults/localization.sqlite'),
]);
DataMapperAbstract::setConnection($con);
}
public function testR()
{
$obj = IbanMapper::get(22);
self::assertEquals('DE', $obj->getCountry());
self::assertEquals(22, $obj->getChars());
self::assertEquals('18n', $obj->getBban());
self::assertEquals('DEkk bbbb bbbb cccc cccc cc', $obj->getFields());
}
static function tearDownAfterClass()
{
DataMapperAbstract::setConnection($GLOBALS['dbpool']->get());
}
}

View File

@ -23,7 +23,7 @@ class IbanTest extends \PHPUnit\Framework\TestCase
{
$obj = new Iban();
self::assertEquals('', $obj->getCountry());
self::assertEquals('', $obj->getChars());
self::assertEquals(2, $obj->getChars());
self::assertEquals('', $obj->getBban());
self::assertEquals('', $obj->getFields());
}

View File

@ -17,7 +17,34 @@ require_once __DIR__ . '/../../Autoloader.php';
use phpOMS\Localization\Defaults\Language;
use phpOMS\Localization\Defaults\LanguageMapper;
use phpOMS\DataStorage\Database\DataMapperAbstract;
use phpOMS\DataStorage\Database\Connection\SQLiteConnection;
class LanguageMapperTest extends \PHPUnit\Framework\TestCase
{
static function setUpBeforeClass()
{
$con = new SqliteConnection([
'prefix' => '',
'db' => 'sqlite',
'path' => realpath(__DIR__ . '/../../../Localization/Defaults/localization.sqlite'),
]);
DataMapperAbstract::setConnection($con);
}
public function testR()
{
$obj = LanguageMapper::get(53);
self::assertEquals('German', $obj->getName());
self::assertEquals('Deutsch', $obj->getNative());
self::assertEquals('de', $obj->getCode2());
self::assertEquals('deu', $obj->getCode3Native());
self::assertEquals('ger', $obj->getCode3());
}
static function tearDownAfterClass()
{
DataMapperAbstract::setConnection($GLOBALS['dbpool']->get());
}
}

View File

@ -26,5 +26,6 @@ class LanguageTest extends \PHPUnit\Framework\TestCase
self::assertEquals('', $obj->getNative());
self::assertEquals('', $obj->getCode2());
self::assertEquals('', $obj->getCode3());
self::assertEquals('', $obj->getCode3Native());
}
}