Unit test fixes

This commit is contained in:
Dennis Eichhorn 2016-04-24 20:48:51 +02:00
parent f673579340
commit 2e3c475a8f
6 changed files with 24 additions and 30 deletions

View File

@ -303,7 +303,6 @@ abstract class DataMapperAbstract implements DataMapperInterface
*/ */
public function create($obj, bool $relations = true) public function create($obj, bool $relations = true)
{ {
// todo: create should also have an option to create relations (default = true)
$query = new Builder($this->db); $query = new Builder($this->db);
$query->prefix($this->db->getPrefix()) $query->prefix($this->db->getPrefix())
->into(static::$table); ->into(static::$table);
@ -344,7 +343,7 @@ abstract class DataMapperAbstract implements DataMapperInterface
$primaryKey = $mapper->create($property->getValue($obj)); $primaryKey = $mapper->create($property->getValue($obj));
} }
$property->setValue($obj, $primaryKey); //$property->setValue($obj, $primaryKey);
} }
if ($column['internal'] === $pname) { if ($column['internal'] === $pname) {
@ -362,6 +361,8 @@ abstract class DataMapperAbstract implements DataMapperInterface
$value = isset($value) ? json_encode($value) : ''; $value = isset($value) ? json_encode($value) : '';
} elseif ($column['type'] === 'Serializable') { } elseif ($column['type'] === 'Serializable') {
$value = $value->serialize(); $value = $value->serialize();
} elseif(is_object($value)) {
$value = $value->getId();
} }
$query->insert($column['name']) $query->insert($column['name'])
@ -453,7 +454,7 @@ abstract class DataMapperAbstract implements DataMapperInterface
} }
} }
$reflectionProperty = $reflectionClass->getProperty(static::$primaryField['internal']); $reflectionProperty = $reflectionClass->getProperty(static::$columns[static::$primaryField]['internal']);
// todo: can't i just set it accessible anyways and not set it to private afterwards? // todo: can't i just set it accessible anyways and not set it to private afterwards?
if (!($accessible = $reflectionProperty->isPublic())) { if (!($accessible = $reflectionProperty->isPublic())) {
@ -824,17 +825,13 @@ abstract class DataMapperAbstract implements DataMapperInterface
*/ */
public function getNewest(int $limit = 1, Builder $query = null, int $relations = RelationType::ALL) public function getNewest(int $limit = 1, Builder $query = null, int $relations = RelationType::ALL)
{ {
if (!isset(static::$createdAt) || !isset(static::$columns[static::$createdAt])) {
throw new \BadMethodCallException('Method "' . __METHOD__ . '" is not supported.');
}
$query = $query ?? new Builder($this->db); $query = $query ?? new Builder($this->db);
$query->prefix($this->db->getPrefix()) $query->prefix($this->db->getPrefix())
->select('*') ->select('*')
->from(static::$table) ->from(static::$table)
->limit($limit); /* todo: limit is not working, setting this to 2 doesn't have any effect!!! */ ->limit($limit); /* todo: limit is not working, setting this to 2 doesn't have any effect!!! */
if (isset(static::$createdAt)) { if (!empty(static::$createdAt)) {
$query->orderBy(static::$table . '.' . static::$columns[static::$createdAt]['name'], 'DESC'); $query->orderBy(static::$table . '.' . static::$columns[static::$createdAt]['name'], 'DESC');
} else { } else {
$query->orderBy(static::$table . '.' . static::$columns[static::$primaryField]['name'], 'DESC'); $query->orderBy(static::$table . '.' . static::$columns[static::$primaryField]['name'], 'DESC');
@ -844,9 +841,6 @@ abstract class DataMapperAbstract implements DataMapperInterface
$sth->execute(); $sth->execute();
$results = $sth->fetchAll(\PDO::FETCH_ASSOC); $results = $sth->fetchAll(\PDO::FETCH_ASSOC);
/* todo: if limit get's used this has to call populateIterable */
$obj = $this->populateIterable(is_bool($results) ? [] : $results); $obj = $this->populateIterable(is_bool($results) ? [] : $results);
$this->fillRelations($obj, $relations); $this->fillRelations($obj, $relations);

View File

@ -1,4 +1,3 @@
<?php <?php
/** /**
* Orange Management * Orange Management

View File

@ -1,4 +1,3 @@
<?php <?php
/** /**
* Orange Management * Orange Management
@ -29,7 +28,7 @@ use phpOMS\Datatypes\Enum;
* @link http://orange-management.com * @link http://orange-management.com
* @since 1.0.0 * @since 1.0.0
*/ */
class ISO4217DecimalEnum extends Enum class ISO4217NumEnum extends Enum
{ {
const C_AED = '784'; const C_AED = '784';
const C_AFN = '971'; const C_AFN = '971';

View File

@ -126,7 +126,7 @@ class Money implements \Serializable
*/ */
public function setString(string $value) public function setString(string $value)
{ {
$this->value = self::toInt($value, $this->decimal); $this->value = self::toInt($value, $this->decimal, $this->thousands);
} }
/** /**
@ -134,27 +134,27 @@ class Money implements \Serializable
* *
* @param string $value Money value * @param string $value Money value
* @param string $decimal Decimal character * @param string $decimal Decimal character
* @param string $thousands Thousands character
* *
* @return int * @return int
* *
* @since 1.0.0 * @since 1.0.0
* @author Dennis Eichhorn <d.eichhorn@oms.com> * @author Dennis Eichhorn <d.eichhorn@oms.com>
*/ */
public static function toInt(string $value, string $decimal = ',') : int public static function toInt(string $value, string $decimal = ',', string $thousands = '.') : int
{ {
$split = explode($value, $decimal); $split = explode($value, $decimal);
$left = '';
$left = $split[0]; $left = $split[0];
$left = str_replace($this->thousands, '', $left); $left = str_replace($thousands, '', $left);
$rigth = ''; $right = '';
if(count($split) > 1) { if(count($split) > 1) {
$right = $split[1]; $right = $split[1];
} }
$right = substr($right, 0, -self::MAX_DECIMALS); $right = substr($right, 0, -self::MAX_DECIMALS);
$this->value = (int) $left * 100000 + (int) $right; return (int) $left * 100000 + (int) $right;
} }
/** /**
@ -169,16 +169,16 @@ class Money implements \Serializable
*/ */
public function getAmount(int $decimals = 2) : string public function getAmount(int $decimals = 2) : string
{ {
if($decimals > ($dec = ISO4217DecimalEnum::${'C_' . strtoupper($this->currency)})) { if($decimals > ($dec = constant('\phpOMS\Localization\ISO4217DecimalEnum::C_' . strtoupper($this->currency)))) {
$decimals = $dec ; $decimals = $dec ;
} }
$value = (string) round($value, - self::MAX_DECIMALS + $this->decimals); $value = (string) round($this->value, - self::MAX_DECIMALS + $decimals);
$left = substr($value, 0, -self::MAX_DECIMALS); $left = substr($value, 0, -self::MAX_DECIMALS);
$right = substr($value, -self::MAX_DECIMALS); $right = substr($value, -self::MAX_DECIMALS);
return ($decimals > 0) : number_format($left, 0, $this->thousands, $this->decimal); . $this->decimal . $right : (string) $left; return ($decimals > 0) ? number_format($left, 0, $this->thousands, $this->decimal) . $this->decimal . $right : (string) $left;
} }
/** /**
@ -194,7 +194,7 @@ class Money implements \Serializable
public function add($value) public function add($value)
{ {
if(is_string($value) || is_float($value)) { if(is_string($value) || is_float($value)) {
$this->value += self::toInt((string) $value); $this->value += self::toInt((string) $value, $this->decimal, $this->thousands);
} elseif(is_int($value)) { } elseif(is_int($value)) {
$this->value += $value; $this->value += $value;
} elseif($value instanceof Money) { } elseif($value instanceof Money) {
@ -215,7 +215,7 @@ class Money implements \Serializable
public function sub($value) public function sub($value)
{ {
if(is_string($value) || is_float($value)) { if(is_string($value) || is_float($value)) {
$this->value -= self::toInt((string) $value); $this->value -= self::toInt((string) $value, $this->decimal, $this->thousands);
} elseif(is_int($value)) { } elseif(is_int($value)) {
$this->value -= $value; $this->value -= $value;
} elseif($value instanceof Money) { } elseif($value instanceof Money) {
@ -253,7 +253,7 @@ class Money implements \Serializable
public function div($value) public function div($value)
{ {
if(is_float($value) || is_int($value)) { if(is_float($value) || is_int($value)) {
$this->value = self::toInt((string) ($this->value / $value)); $this->value = self::toInt((string) ($this->value / $value), $this->decimal, $this->thousands);
} }
} }

View File

@ -146,7 +146,7 @@ class FileLogger implements LoggerInterface
*/ */
public function __destruct() public function __destruct()
{ {
if ($this->fp !== false) { if (is_resource($this->fp)) {
fclose($this->fp); fclose($this->fp);
} }
} }

View File

@ -94,7 +94,7 @@ class MultiMap implements \Countable
$id = count($this->values); $id = count($this->values);
$inserted = false; $inserted = false;
if ($this->keyType !== KeyType::MULTIPLE) { if ($this->keyType !== KeyType::SINGLE) {
$keys = [implode($keys, ':')]; $keys = [implode($keys, ':')];
} }
@ -494,6 +494,8 @@ class MultiMap implements \Countable
} }
} }
} }
return $siblings;
} }
/** /**
@ -510,9 +512,9 @@ class MultiMap implements \Countable
{ {
if ($this->orderType === OrderType::LOOSE) { if ($this->orderType === OrderType::LOOSE) {
return Permutation::permut($key); return Permutation::permut($key);
} else {
return [];
} }
return [];
} }
/** /**