20 Commits

Author SHA1 Message Date
Meritoo
ffa3fbffe7 Exception - DisabledMethodException - an exception used while method cannot be called, because is disabled 2017-09-22 23:27:21 +02:00
Meritoo
48aa27fb86 Tests - test cases of exceptions 2017-09-22 23:26:30 +02:00
Meritoo
86cc5ff79b Refactor & fix coding standard 2017-09-22 23:25:16 +02:00
Meritoo
633696ebc0 Reflection - getProperties() method - allow to include properties of parent classes 2017-09-21 22:38:50 +02:00
Meritoo
a0d28b326e BaseTestCase - make static and rename methods (start names of methods with "assert" instead of "verify") 2017-09-21 16:52:15 +02:00
Meritoo
318a635ffd BaseTestCase - assertHasNoConstructor() method - asserts that class with given namespace has no constructor 2017-09-21 16:47:41 +02:00
Meritoo
6c70fdd673 Revert "Composer - update packages"
This reverts commit 204e879
2017-09-20 22:00:09 +02:00
Meritoo
204e8793ac Composer - update packages 2017-09-20 21:55:05 +02:00
Meritoo
3dd37ae202 BaseTestCase - fix getting path of file used by tests (by implementing the Miscellaneous::getProjectRootPath() method) 2017-09-20 21:54:07 +02:00
Meritoo
ef017c9d6a Miscellaneous - getProjectRootPath() method - returns project's root path 2017-09-20 21:52:34 +02:00
Meritoo
5030dc2062 Refactor & fix coding standard 2017-09-20 21:47:39 +02:00
Meritoo
2c76158093 Readme - fix displaying 1st block of code 2017-09-20 16:19:36 +02:00
Meritoo
0b560fdf18 Exception - 3 exceptions related to file path & content 2017-09-20 13:50:18 +02:00
Meritoo
284d403061 Fix coding standard (minor fix) 2017-09-20 12:55:25 +02:00
Meritoo
7dbb3f9b2e Tests - update namespace of PHPUnit's TestCase
Related to update versions of the "dev" packages
2017-09-20 11:58:21 +02:00
Meritoo
fba821b798 Readme - StyleCI badge - update configuration file (required to fix failed StyleCI analysis) 2017-09-20 10:56:49 +02:00
Meritoo
3985c70076 Readme - minor update 2017-09-20 09:30:06 +02:00
Meritoo
921d4e6106 composer.json - update versions of the "dev" packages 2017-09-20 09:29:19 +02:00
Meritoo
7aa2239dbd Fix coding standard (no_blank_lines_after_phpdoc, single_blank_line_before_namespace, yoda_style) 2017-09-20 09:27:56 +02:00
Meritoo
e1fefcdeae Readme - move badges below description & update description 2017-09-19 20:10:27 +02:00
69 changed files with 2681 additions and 1839 deletions

View File

@@ -1 +1,8 @@
preset: symfony
disabled:
- phpdoc_annotation_without_dot
- cast_spaces
- concat_without_spaces
- blank_line_before_return
- trim_array_spaces

View File

@@ -1,13 +1,15 @@
# Meritoo Common Library [![Travis](https://img.shields.io/travis/rust-lang/rust.svg?style=flat-square)](https://travis-ci.org/meritoo/common-library) [![Packagist](https://img.shields.io/packagist/v/meritoo/common-library.svg?style=flat-square)](https://packagist.org/packages/meritoo/common-library) [![StyleCI](https://styleci.io/repos/101790028/shield?branch=master)](https://styleci.io/repos/101790028) [![license](https://img.shields.io/github/license/meritoo/common-library.svg?style=flat-square)](https://github.com/meritoo/common-library) [![GitHub commits](https://img.shields.io/github/commits-since/meritoo/common-library/0.0.1.svg?style=flat-square)](https://github.com/meritoo/common-library) [![Coverage Status](https://coveralls.io/repos/github/meritoo/common-library/badge.svg?branch=master)](https://coveralls.io/github/meritoo/common-library?branch=master)
Useful classes, methods, extensions etc.
# Meritoo Common Library
Common and useful classes, methods, exceptions etc.
[![Travis](https://img.shields.io/travis/rust-lang/rust.svg?style=flat-square)](https://travis-ci.org/meritoo/common-library) [![Packagist](https://img.shields.io/packagist/v/meritoo/common-library.svg?style=flat-square)](https://packagist.org/packages/meritoo/common-library) [![StyleCI](https://styleci.io/repos/101790028/shield?branch=master)](https://styleci.io/repos/101790028) [![license](https://img.shields.io/github/license/meritoo/common-library.svg?style=flat-square)](https://github.com/meritoo/common-library) [![GitHub commits](https://img.shields.io/github/commits-since/meritoo/common-library/0.0.1.svg?style=flat-square)](https://github.com/meritoo/common-library) [![Coverage Status](https://coveralls.io/repos/github/meritoo/common-library/badge.svg?branch=master)](https://coveralls.io/github/meritoo/common-library?branch=master)
## Installation
Run [Composer](https://getcomposer.org) to install new package:
Run [Composer](https://getcomposer.org) to install this package in your project:
```bash
$ composer require meritoo/common-library
```
```bash
$ composer require meritoo/common-library
```
> How to install Composer: https://getcomposer.org/download

View File

@@ -2,7 +2,7 @@
"name": "meritoo/common-library",
"description": "Useful classes, methods, extensions etc.",
"license": "MIT",
"version": "0.0.7",
"version": "0.0.12",
"authors": [
{
"name": "Meritoo.pl",
@@ -17,13 +17,13 @@
"symfony/http-foundation": "^3.3"
},
"require-dev": {
"phpunit/phpunit": "^4.8 || ^5.0",
"squizlabs/php_codesniffer": "^2.8",
"phpunit/phpunit": "^5.7",
"squizlabs/php_codesniffer": "^2.9",
"phpmd/phpmd": "^2.6",
"sebastian/phpcpd": "^3.0",
"pdepend/pdepend": "^2.5",
"phploc/phploc": "^3.0",
"friendsofphp/php-cs-fixer": "^2.1"
"phploc/phploc": "^4.0",
"friendsofphp/php-cs-fixer": "^2.6"
},
"autoload": {
"psr-4": {

550
composer.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -24,14 +24,14 @@ use Meritoo\Common\Utilities\Arrays;
class Collection implements Countable, ArrayAccess, IteratorAggregate
{
/**
* The elements of collection.
* The elements of collection
*
* @var array
*/
private $elements;
/**
* Class constructor.
* Class constructor
*
* @param array $elements (optional) The elements of collection
*/
@@ -42,7 +42,7 @@ class Collection implements Countable, ArrayAccess, IteratorAggregate
/**
* {@inheritdoc}
* Required by interface Countable.
* Required by interface Countable
*/
public function count()
{
@@ -51,7 +51,7 @@ class Collection implements Countable, ArrayAccess, IteratorAggregate
/**
* {@inheritdoc}
* Required by interface ArrayAccess.
* Required by interface ArrayAccess
*/
public function offsetExists($offset)
{
@@ -60,7 +60,7 @@ class Collection implements Countable, ArrayAccess, IteratorAggregate
/**
* {@inheritdoc}
* Required by interface ArrayAccess.
* Required by interface ArrayAccess
*/
public function offsetGet($offset)
{
@@ -73,7 +73,7 @@ class Collection implements Countable, ArrayAccess, IteratorAggregate
/**
* {@inheritdoc}
* Required by interface ArrayAccess.
* Required by interface ArrayAccess
*/
public function offsetSet($offset, $value)
{
@@ -82,7 +82,7 @@ class Collection implements Countable, ArrayAccess, IteratorAggregate
/**
* {@inheritdoc}
* Required by interface ArrayAccess.
* Required by interface ArrayAccess
*/
public function offsetUnset($offset)
{
@@ -93,7 +93,7 @@ class Collection implements Countable, ArrayAccess, IteratorAggregate
/**
* {@inheritdoc}
* Required by interface IteratorAggregate.
* Required by interface IteratorAggregate
*/
public function getIterator()
{
@@ -101,16 +101,15 @@ class Collection implements Countable, ArrayAccess, IteratorAggregate
}
/**
* Adds given element (at the end of collection).
* Adds given element (at the end of collection)
*
* @param mixed $element The element to add
* @param mixed $index (optional) Index / key of the element
*
* @return $this
*/
public function add($element, $index = null)
{
if ($index === null) {
if (null === $index) {
$this->elements[] = $element;
} else {
$this->elements[$index] = $element;
@@ -120,12 +119,11 @@ class Collection implements Countable, ArrayAccess, IteratorAggregate
}
/**
* Adds given elements (at the end of collection).
* Adds given elements (at the end of collection)
*
* @param array|Collection $elements The elements to add
* @param bool|false $useIndexes (optional) If is set to true, indexes of given elements will be used in
* this collection. Otherwise - not.
*
* @return $this
*/
public function addMultiple($elements, $useIndexes = false)
@@ -144,10 +142,9 @@ class Collection implements Countable, ArrayAccess, IteratorAggregate
}
/**
* Prepends given element (adds given element at the beginning of collection).
* Prepends given element (adds given element at the beginning of collection)
*
* @param mixed $element The element to prepend
*
* @return $this
*/
public function prepend($element)
@@ -158,10 +155,9 @@ class Collection implements Countable, ArrayAccess, IteratorAggregate
}
/**
* Removes given element.
* Removes given element
*
* @param mixed $element The element to remove
*
* @return $this
*/
public function remove($element)
@@ -170,7 +166,6 @@ class Collection implements Countable, ArrayAccess, IteratorAggregate
foreach ($this->elements as $index => $existing) {
if ($element === $existing) {
unset($this->elements[$index]);
break;
}
}
@@ -180,7 +175,7 @@ class Collection implements Countable, ArrayAccess, IteratorAggregate
}
/**
* Returns information if collection is empty.
* Returns information if collection is empty
*
* @return bool
*/
@@ -190,10 +185,9 @@ class Collection implements Countable, ArrayAccess, IteratorAggregate
}
/**
* Returns information if given element is first in the collection.
* Returns information if given element is first in the collection
*
* @param mixed $element The element to verify
*
* @return bool
*/
public function isFirst($element)
@@ -202,10 +196,9 @@ class Collection implements Countable, ArrayAccess, IteratorAggregate
}
/**
* Returns information if given element is last in the collection.
* Returns information if given element is last in the collection
*
* @param mixed $element The element to verify
*
* @return bool
*/
public function isLast($element)
@@ -214,24 +207,22 @@ class Collection implements Countable, ArrayAccess, IteratorAggregate
}
/**
* Returns information if the collection has given element, iow. if given element exists in the collection.
* Returns information if the collection has given element, iow. if given element exists in the collection
*
* @param mixed $element The element to verify
*
* @return bool
*/
public function has($element)
{
$index = Arrays::getIndexOf($this->elements, $element);
return $index !== null && $index !== false;
return null !== $index && false !== $index;
}
/**
* Returns previous element for given element.
* Returns previous element for given element
*
* @param mixed $element The element to verify
*
* @return mixed|null
*/
public function getPrevious($element)
@@ -240,10 +231,9 @@ class Collection implements Countable, ArrayAccess, IteratorAggregate
}
/**
* Returns next element for given element.
* Returns next element for given element
*
* @param mixed $element The element to verify
*
* @return mixed|null
*/
public function getNext($element)
@@ -252,7 +242,7 @@ class Collection implements Countable, ArrayAccess, IteratorAggregate
}
/**
* Returns the first element in the collection.
* Returns the first element in the collection
*
* @return mixed
*/
@@ -262,7 +252,7 @@ class Collection implements Countable, ArrayAccess, IteratorAggregate
}
/**
* Returns the last element in the collection.
* Returns the last element in the collection
*
* @return mixed
*/
@@ -272,7 +262,7 @@ class Collection implements Countable, ArrayAccess, IteratorAggregate
}
/**
* Returns an array representation of the collection.
* Returns an array representation of the collection
*
* @return array
*/
@@ -282,10 +272,9 @@ class Collection implements Countable, ArrayAccess, IteratorAggregate
}
/**
* Returns information if element with given index/key exists.
* Returns information if element with given index/key exists
*
* @param string|int $index The index/key of element
*
* @return bool
*/
private function exists($index)

View File

@@ -13,7 +13,7 @@ use Meritoo\Common\Type\Base\BaseType;
use Meritoo\Common\Utilities\Arrays;
/**
* An exception used while type of something is unknown.
* An exception used while type of something is unknown
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
@@ -21,7 +21,7 @@ use Meritoo\Common\Utilities\Arrays;
abstract class UnknownTypeException extends Exception
{
/**
* Class constructor.
* Class constructor
*
* @param string|int $unknownType The unknown type of something (value of constant)
* @param BaseType $typeInstance An instance of class that contains type of the something
@@ -33,7 +33,7 @@ abstract class UnknownTypeException extends Exception
$types = Arrays::values2string($allTypes, '', ', ');
$template = 'The \'%s\' type of %s is unknown. Probably doesn\'t exist or there is a typo. You should use one'
.' of these types: %s.';
. ' of these types: %s.';
$message = sprintf(sprintf($template, $unknownType, $typeName, $types));
parent::__construct($message);

View File

@@ -12,7 +12,7 @@ use Meritoo\Common\Exception\Base\UnknownTypeException;
use Meritoo\Common\Type\DatePartType;
/**
* An exception used while type of date part, e.g. "year", is unknown.
* An exception used while type of date part, e.g. "year", is unknown
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
@@ -20,7 +20,7 @@ use Meritoo\Common\Type\DatePartType;
class UnknownDatePartTypeException extends UnknownTypeException
{
/**
* Class constructor.
* Class constructor
*
* @param string $unknownDatePart Type of date part, e.g. "year". One of DatePartType class constants.
* @param string $value Incorrect value

View File

@@ -0,0 +1,31 @@
<?php
/**
* (c) Meritoo.pl, http://www.meritoo.pl
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Meritoo\Common\Exception\File;
/**
* An exception used while file with given path is empty (has no content)
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*/
class EmptyFileException extends \Exception
{
/**
* Class constructor
*
* @param string $emptyFilePath Path of the empty file
*/
public function __construct($emptyFilePath)
{
$template = 'File with path \'%s\' is empty (has no content). Did you provide path of proper file?';
$message = sprintf($template, $emptyFilePath);
parent::__construct($message);
}
}

View File

@@ -0,0 +1,26 @@
<?php
/**
* (c) Meritoo.pl, http://www.meritoo.pl
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Meritoo\Common\Exception\File;
/**
* An exception used while path of given file is empty
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*/
class EmptyFilePathException extends \Exception
{
/**
* Class constructor
*/
public function __construct()
{
parent::__construct('Path of the file is empty. Did you provide path of proper file?');
}
}

View File

@@ -0,0 +1,31 @@
<?php
/**
* (c) Meritoo.pl, http://www.meritoo.pl
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Meritoo\Common\Exception\File;
/**
* An exception used while file with given path does not exist
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*/
class NotExistingFileException extends \Exception
{
/**
* Class constructor
*
* @param string $notExistingFilePath Path of not existing (or not readable) file
*/
public function __construct($notExistingFilePath)
{
$template = 'File with path \'%s\' does not exist (or is not readable). Did you provide path of proper file?';
$message = sprintf($template, $notExistingFilePath);
parent::__construct($message);
}
}

View File

@@ -0,0 +1,38 @@
<?php
/**
* (c) Meritoo.pl, http://www.meritoo.pl
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Meritoo\Common\Exception\Method;
use Exception;
/**
* An exception used while method cannot be called, because is disabled
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*/
class DisabledMethodException extends Exception
{
/**
* Class constructor
*
* @param string $disabledMethod Name of the disabled method
* @param string $alternativeMethod (optional) Name of the alternative method
*/
public function __construct($disabledMethod, $alternativeMethod = '')
{
$template = 'Method %s() cannot be called, because is disabled.';
if (!empty($alternativeMethod)) {
$template .= ' Use %s() instead.';
}
$message = sprintf($template, $disabledMethod, $alternativeMethod);
parent::__construct($message);
}
}

View File

@@ -11,7 +11,7 @@ namespace Meritoo\Common\Exception\Reflection;
use Exception;
/**
* An exception used while name of class or trait cannot be resolved.
* An exception used while name of class or trait cannot be resolved
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
@@ -19,9 +19,9 @@ use Exception;
class CannotResolveClassNameException extends Exception
{
/**
* Class constructor.
* Class constructor
*
* @param array|object|string $source Source of the class's / trait's name. It cane be an array of objects,
* @param array|object|string $source Source of the class's / trait's name. It can be an array of objects,
* namespaces, object or namespace.
* @param bool $forClass (optional) If is set to true, message of this exception for class is
* prepared. Otherwise - for trait.
@@ -36,7 +36,7 @@ class CannotResolveClassNameException extends Exception
}
if (is_scalar($source)) {
$value = sprintf(' %s', (string) $source);
$value = sprintf(' %s', (string)$source);
}
$template = 'Name of %s from given \'%s\'%s cannot be resolved. Is there everything ok?';

View File

@@ -12,7 +12,7 @@ use Exception;
use Meritoo\Common\Utilities\Reflection;
/**
* An exception used while given class has no child classes.
* An exception used while given class has no child classes
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
@@ -20,7 +20,7 @@ use Meritoo\Common\Utilities\Reflection;
class MissingChildClassesException extends Exception
{
/**
* Class constructor.
* Class constructor
*
* @param array|object|string $parentClass Class that hasn't child classes, but it should. An array of objects,
* strings, object or string.
@@ -28,7 +28,7 @@ class MissingChildClassesException extends Exception
public function __construct($parentClass)
{
$template = 'The \'%s\' class requires one child class at least who will extend her (maybe is an abstract'
.' class), but the child classes are missing. Did you forget to extend this class?';
. ' class), but the child classes are missing. Did you forget to extend this class?';
$parentClassName = Reflection::getClassName($parentClass);
$message = sprintf($template, $parentClassName);

View File

@@ -12,7 +12,7 @@ use Exception;
use Meritoo\Common\Utilities\Reflection;
/**
* An exception used while given class has more than one child class.
* An exception used while given class has more than one child class
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
@@ -20,7 +20,7 @@ use Meritoo\Common\Utilities\Reflection;
class TooManyChildClassesException extends Exception
{
/**
* Class constructor.
* Class constructor
*
* @param array|object|string $parentClass Class that has more than one child class, but it shouldn't. An array
* of objects, strings, object or string.
@@ -29,7 +29,7 @@ class TooManyChildClassesException extends Exception
public function __construct($parentClass, array $childClasses)
{
$template = "The '%s' class requires one child class at most who will extend her, but more than one child"
." class was found:\n- %s\n\nWhy did you create more than one classes that extend '%s' class?";
. " class was found:\n- %s\n\nWhy did you create more than one classes that extend '%s' class?";
$parentClassName = Reflection::getClassName($parentClass);
$message = sprintf($template, $parentClassName, implode("\n- ", $childClasses), $parentClassName);

View File

@@ -9,7 +9,7 @@
namespace Meritoo\Common\Exception\Regex;
/**
* An exception used while length of given hexadecimal value of color is incorrect.
* An exception used while length of given hexadecimal value of color is incorrect
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
@@ -17,14 +17,14 @@ namespace Meritoo\Common\Exception\Regex;
class IncorrectColorHexLengthException extends \Exception
{
/**
* Class constructor.
* Class constructor
*
* @param string $color Incorrect hexadecimal value of color
*/
public function __construct($color)
{
$template = 'Length of hexadecimal value of color \'%s\' is incorrect. It\'s %d, but it should be 3 or 6.'
.' Is there everything ok?';
. ' Is there everything ok?';
$message = sprintf($template, $color, strlen($color));
parent::__construct($message);

View File

@@ -9,7 +9,7 @@
namespace Meritoo\Common\Exception\Regex;
/**
* An exception used while given hexadecimal value of color is invalid.
* An exception used while given hexadecimal value of color is invalid
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
@@ -17,7 +17,7 @@ namespace Meritoo\Common\Exception\Regex;
class InvalidColorHexValueException extends \Exception
{
/**
* Class constructor.
* Class constructor
*
* @param string $color Invalid hexadecimal value of color
*/

View File

@@ -3,7 +3,7 @@
namespace Meritoo\Common\Exception\Regex;
/**
* An exception used while url is invalid.
* An exception used while url is invalid
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
@@ -11,7 +11,7 @@ namespace Meritoo\Common\Exception\Regex;
class InvalidUrlException extends \Exception
{
/**
* Class constructor.
* Class constructor
*
* @param string $url Invalid url
*/

View File

@@ -6,7 +6,7 @@ use Meritoo\Common\Exception\Base\UnknownTypeException;
use Meritoo\Common\Type\OopVisibilityType;
/**
* An exception used while the visibility of a property, a method or (as of PHP 7.1.0) a constant is unknown.
* An exception used while the visibility of a property, a method or (as of PHP 7.1.0) a constant is unknown
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl

View File

@@ -12,20 +12,21 @@ use DateTime;
use Generator;
use Meritoo\Common\Exception\Type\UnknownOopVisibilityTypeException;
use Meritoo\Common\Type\OopVisibilityType;
use PHPUnit_Framework_TestCase;
use Meritoo\Common\Utilities\Miscellaneous;
use PHPUnit\Framework\TestCase;
use ReflectionClass;
use ReflectionMethod;
/**
* Base test case with common methods and data providers.
* Base test case with common methods and data providers
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*/
abstract class BaseTestCase extends PHPUnit_Framework_TestCase
abstract class BaseTestCase extends TestCase
{
/**
* Provides an empty value.
* Provides an empty value
*
* @return Generator
*/
@@ -40,7 +41,7 @@ abstract class BaseTestCase extends PHPUnit_Framework_TestCase
}
/**
* Provides boolean value.
* Provides boolean value
*
* @return Generator
*/
@@ -51,7 +52,7 @@ abstract class BaseTestCase extends PHPUnit_Framework_TestCase
}
/**
* Provides instance of DateTime class.
* Provides instance of DateTime class
*
* @return Generator
*/
@@ -64,7 +65,7 @@ abstract class BaseTestCase extends PHPUnit_Framework_TestCase
}
/**
* Provides relative / compound format of DateTime.
* Provides relative / compound format of DateTime
*
* @return Generator
*/
@@ -84,7 +85,7 @@ abstract class BaseTestCase extends PHPUnit_Framework_TestCase
}
/**
* Provides path of not existing file, e.g. "lorem/ipsum.jpg".
* Provides path of not existing file, e.g. "lorem/ipsum.jpg"
*
* @return Generator
*/
@@ -101,20 +102,24 @@ abstract class BaseTestCase extends PHPUnit_Framework_TestCase
*
* @param string $fileName Name of file
* @param string $directoryPath (optional) Path of directory containing the file
*
* @return string
*/
public function getFilePathToTests($fileName, $directoryPath = '')
{
if (!empty($directoryPath)) {
$directoryPath = '/'.$directoryPath;
}
$rootPath = Miscellaneous::getProjectRootPath();
return sprintf('%s/../../../../../data/tests/%s%s', __DIR__, $fileName, $directoryPath);
$paths = [
$rootPath,
'data/tests',
$directoryPath,
$fileName,
];
return Miscellaneous::concatenatePaths($paths);
}
/**
* Verifies visibility and arguments of method.
* Verifies visibility and arguments of method
*
* @param string $classNamespace Namespace of class that contains method to verify
* @param string|ReflectionMethod $method Name of method or just the method to verify
@@ -124,14 +129,13 @@ abstract class BaseTestCase extends PHPUnit_Framework_TestCase
* verified method
* @param int $requiredArgumentsCount (optional) Expected count/amount of required arguments
* of the verified method
*
* @throws UnknownOopVisibilityTypeException
*
* Attention. 2nd argument, the $method, may be:
* - string - name of the method
* - instance of ReflectionMethod - just the method (provided by ReflectionClass::getMethod() method)
*/
protected function verifyMethodVisibilityAndArguments(
protected static function assertMethodVisibilityAndArguments(
$classNamespace,
$method,
$visibilityType,
@@ -158,17 +162,14 @@ abstract class BaseTestCase extends PHPUnit_Framework_TestCase
switch ($visibilityType) {
case OopVisibilityType::IS_PUBLIC:
static::assertTrue($method->isPublic());
break;
case OopVisibilityType::IS_PROTECTED:
static::assertTrue($method->isProtected());
break;
case OopVisibilityType::IS_PRIVATE:
static::assertTrue($method->isPrivate());
break;
}
@@ -177,18 +178,17 @@ abstract class BaseTestCase extends PHPUnit_Framework_TestCase
}
/**
* Verifies visibility and arguments of class constructor.
* Verifies visibility and arguments of class constructor
*
* @param string $classNamespace Namespace of class that contains method to verify
* @param string $classNamespace Namespace of class that contains constructor to verify
* @param string $visibilityType Expected visibility of verified method. One of OopVisibilityType class
* constants.
* @param int $argumentsCount (optional) Expected count/amount of arguments of the verified method
* @param int $requiredArgumentsCount (optional) Expected count/amount of required arguments of the verified
* method
*
* @throws UnknownOopVisibilityTypeException
*/
protected function verifyConstructorVisibilityAndArguments(
protected static function assertConstructorVisibilityAndArguments(
$classNamespace,
$visibilityType,
$argumentsCount = 0,
@@ -200,6 +200,22 @@ abstract class BaseTestCase extends PHPUnit_Framework_TestCase
$reflection = new ReflectionClass($classNamespace);
$method = $reflection->getConstructor();
return $this->verifyMethodVisibilityAndArguments($classNamespace, $method, $visibilityType, $argumentsCount, $requiredArgumentsCount);
return static::assertMethodVisibilityAndArguments($classNamespace, $method, $visibilityType, $argumentsCount, $requiredArgumentsCount);
}
/**
* Asserts that class with given namespace has no constructor
*
* @param string $classNamespace Namespace of class that contains constructor to verify
*/
protected static function assertHasNoConstructor($classNamespace)
{
/*
* Let's grab the constructor
*/
$reflection = new ReflectionClass($classNamespace);
$constructor = $reflection->getConstructor();
static::assertNull($constructor);
}
}

View File

@@ -6,7 +6,7 @@ use Generator;
use Meritoo\Common\Type\Base\BaseType;
/**
* Base test case for the type of something.
* Base test case for the type of something
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
@@ -14,7 +14,7 @@ use Meritoo\Common\Type\Base\BaseType;
abstract class BaseTypeTestCase extends BaseTestCase
{
/**
* Verifies availability of all types.
* Verifies availability of all types
*/
public function testAvailabilityOfAllTypes()
{
@@ -25,7 +25,7 @@ abstract class BaseTypeTestCase extends BaseTestCase
}
/**
* Verifies whether given type is correct or not.
* Verifies whether given type is correct or not
*
* @param string $type Type to verify
* @param bool $expected Information if given type is correct or not
@@ -38,21 +38,21 @@ abstract class BaseTypeTestCase extends BaseTestCase
}
/**
* Provides type to verify and information if it's correct.
* Provides type to verify and information if it's correct
*
* @return Generator
*/
abstract public function provideTypeToVerify();
/**
* Returns instance of the tested type.
* Returns instance of the tested type
*
* @return BaseType
*/
abstract protected function getTestedTypeInstance();
/**
* Returns all expected types of the tested type.
* Returns all expected types of the tested type
*
* @return array
*/

View File

@@ -20,20 +20,20 @@ use Meritoo\Common\Utilities\Reflection;
abstract class BaseType
{
/**
* All types.
* All types
*
* @var array
*/
private $all;
/**
* Returns all types.
* Returns all types
*
* @return array
*/
public function getAll()
{
if ($this->all === null) {
if (null === $this->all) {
$this->all = Reflection::getConstants($this);
}
@@ -41,10 +41,9 @@ abstract class BaseType
}
/**
* Returns information if given type is correct.
* Returns information if given type is correct
*
* @param string $type The type to check
*
* @return bool
*/
public function isCorrectType($type)

View File

@@ -11,7 +11,7 @@ namespace Meritoo\Common\Type;
use Meritoo\Common\Type\Base\BaseType;
/**
* Type of date part, e.g. "year".
* Type of date part, e.g. "year"
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
@@ -19,42 +19,42 @@ use Meritoo\Common\Type\Base\BaseType;
class DatePartType extends BaseType
{
/**
* The "day" date part.
* The "day" date part
*
* @var string
*/
const DAY = 'day';
/**
* The "hour" date part.
* The "hour" date part
*
* @var string
*/
const HOUR = 'hour';
/**
* The "minute" date part.
* The "minute" date part
*
* @var string
*/
const MINUTE = 'minute';
/**
* The "month" date part.
* The "month" date part
*
* @var string
*/
const MONTH = 'month';
/**
* The "second" date part.
* The "second" date part
*
* @var string
*/
const SECOND = 'second';
/**
* The "year" date part.
* The "year" date part
*
* @var string
*/

View File

@@ -5,7 +5,7 @@ namespace Meritoo\Common\Type;
use Meritoo\Common\Type\Base\BaseType;
/**
* The visibility of a property, a method or (as of PHP 7.1.0) a constant.
* The visibility of a property, a method or (as of PHP 7.1.0) a constant
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
@@ -15,21 +15,21 @@ use Meritoo\Common\Type\Base\BaseType;
class OopVisibilityType extends BaseType
{
/**
* The "private" visibility of OOP.
* The "private" visibility of OOP
*
* @var int
*/
const IS_PRIVATE = 3;
/**
* The "protected" visibility of OOP.
* The "protected" visibility of OOP
*
* @var int
*/
const IS_PROTECTED = 2;
/**
* The "public" visibility of OOP.
* The "public" visibility of OOP
*
* @var int
*/

View File

@@ -9,7 +9,7 @@
namespace Meritoo\Common\Utilities;
/**
* Useful arrays methods.
* Useful arrays methods
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
@@ -17,7 +17,7 @@ namespace Meritoo\Common\Utilities;
class Arrays
{
/**
* Name of the array's key used to store position of element of the array.
* Name of the array's key used to store position of element of the array
*
* @var string
*/
@@ -30,7 +30,6 @@ class Arrays
* @param array $array Array data to be converted
* @param string|int $arrayColumnKey (optional) Column name
* @param string $separator (optional) Separator used in resultant string
*
* @return string
*/
public static function values2string(array $array, $arrayColumnKey = '', $separator = ',')
@@ -80,13 +79,12 @@ class Arrays
}
/**
* Converts given array to string with keys, e.g. abc=1&def=2 or abc="1" def="2".
* Converts given array to string with keys, e.g. abc=1&def=2 or abc="1" def="2"
*
* @param array $array Array data to be converted
* @param string $separator (optional) Separator used between name-value pairs in resultant string
* @param string $valuesKeysSeparator (optional) Separator used between name and value in resultant string
* @param string $valuesWrapper (optional) Wrapper used to wrap values, e.g. double-quote: key="value"
*
* @return string
*/
public static function valuesKeys2string($array, $separator = ',', $valuesKeysSeparator = '=', $valuesWrapper = '')
@@ -103,7 +101,7 @@ class Arrays
$value = sprintf('%s%s%s', $valuesWrapper, $value, $valuesWrapper);
}
$effect .= $key.$valuesKeysSeparator.$value;
$effect .= $key . $valuesKeysSeparator . $value;
}
}
@@ -111,11 +109,10 @@ class Arrays
}
/**
* Converts given array's rows to csv string.
* Converts given array's rows to csv string
*
* @param array $array Array data to be converted. It have to be an array that represents database table.
* @param string $separator (optional) Separator used in resultant string
*
* @return string
*/
public static function values2csv($array, $separator = ',')
@@ -148,13 +145,12 @@ class Arrays
}
/**
* Returns information if given element is the first one.
* Returns information if given element is the first one
*
* @param array $array The array to get the first element of
* @param mixed $element The element to check / verify
* @param bool $firstLevelOnly (optional) If is set to true, first element is returned. Otherwise - totally
* first element is returned (first of the First array).
*
* @return bool
*/
public static function isFirstElement(array $array, $element, $firstLevelOnly = true)
@@ -165,7 +161,7 @@ class Arrays
}
/**
* Returns the first element of given array.
* Returns the first element of given array
*
* It may be first element of given array or the totally first element from the all elements (first element of the
* first array).
@@ -173,7 +169,6 @@ class Arrays
* @param array $array The array to get the first element of
* @param bool $firstLevelOnly (optional) If is set to true, first element is returned. Otherwise - totally
* first element is returned (first of the first array).
*
* @return mixed
*/
public static function getFirstElement(array $array, $firstLevelOnly = true)
@@ -197,10 +192,9 @@ class Arrays
}
/**
* Returns first key of array.
* Returns first key of array
*
* @param array $array The array to get the first key of
*
* @return mixed
*/
public static function getFirstKey(array $array)
@@ -219,13 +213,12 @@ class Arrays
}
/**
* Returns information if given element is the last one.
* Returns information if given element is the last one
*
* @param array $array The array to get the last element of
* @param mixed $element The element to check / verify
* @param bool $firstLevelOnly (optional) If is set to true, last element is returned. Otherwise - totally
* last element is returned (last of the latest array).
*
* @return bool
*/
public static function isLastElement(array $array, $element, $firstLevelOnly = true)
@@ -236,7 +229,7 @@ class Arrays
}
/**
* Returns the last element of given array.
* Returns the last element of given array
*
* It may be last element of given array or the totally last element from the all elements (last element of the
* latest array).
@@ -244,7 +237,6 @@ class Arrays
* @param array $array The array to get the last element of
* @param bool $firstLevelOnly (optional) If is set to true, last element is returned. Otherwise - totally
* last element is returned (last of the latest array).
*
* @return mixed
*/
public static function getLastElement(array $array, $firstLevelOnly = true)
@@ -267,11 +259,10 @@ class Arrays
}
/**
* Returns breadcrumb (a path) to the last element of array.
* Returns breadcrumb (a path) to the last element of array
*
* @param array $array The array to get the breadcrumb
* @param string $separator (optional) Separator used to stick the elements
*
* @return string
*/
public static function getLastElementBreadCrumb($array, $separator = '/')
@@ -290,14 +281,13 @@ class Arrays
$crumb = $last;
}
return $breadCrumb.$separator.$crumb;
return $breadCrumb . $separator . $crumb;
}
/**
* Returns the last row of array.
* Returns the last row of array
*
* @param array $array The array to get the last row of
*
* @return mixed
*/
public static function getLastRow(array $array)
@@ -332,12 +322,11 @@ class Arrays
}
/**
* Replaces array keys that match given pattern with new key name.
* Replaces array keys that match given pattern with new key name
*
* @param array $dataArray The array
* @param string $oldKeyPattern Old key pattern
* @param string $newKey New key name
*
* @return array
*/
public static function replaceArrayKeys($dataArray, $oldKeyPattern, $newKey)
@@ -362,13 +351,12 @@ class Arrays
}
/**
* Generates JavaScript code for given PHP array.
* Generates JavaScript code for given PHP array
*
* @param array $array The array that should be generated to JavaScript
* @param string $jsVariableName (optional) Name of the variable that will be in generated JavaScript code
* @param bool $preserveIndexes (optional) If is set to true and $jsVariableName isn't empty, indexes also
* will be added to the JavaScript code. Otherwise not.
*
* @return string|null
*/
public static function array2JavaScript(array $array, $jsVariableName = '', $preserveIndexes = false)
@@ -413,8 +401,8 @@ class Arrays
if (is_array($value)) {
$variable = $index;
if (is_int($index)) {
$variable = 'value_'.$variable;
if (is_integer($index)) {
$variable = 'value_' . $variable;
}
$value = self::array2JavaScript($value, $variable, $preserveIndexes);
@@ -427,11 +415,11 @@ class Arrays
* var autoGeneratedVariable = new Array(...);autoGeneratedVariable[0] = new Array(...);
* autoGeneratedVariable[1] = new Array(...);
*/
if ($counter === 1) {
if (1 === $counter) {
$effect .= "\n";
}
$effect .= $value."\n";
$effect .= $value . "\n";
$effect .= sprintf('%s[%s] = %s;', $jsVariableName, Miscellaneous::quoteValue($index), $variable);
if ($counter !== $arrayCount) {
@@ -464,10 +452,9 @@ class Arrays
}
/**
* Quotes (adds quotes) to elements of an array that are strings.
* Quotes (adds quotes) to elements of an array that are strings
*
* @param array $array The array to check for string values
*
* @return array
*/
public static function quoteStrings($array)
@@ -482,7 +469,7 @@ class Arrays
$value = self::quoteStrings($value);
} elseif (is_string($value)) {
if (!Regex::isQuoted($value)) {
$value = '\''.$value.'\'';
$value = '\'' . $value . '\'';
}
}
@@ -494,11 +481,10 @@ class Arrays
}
/**
* Removes marginal element (first or last).
* Removes marginal element (first or last)
*
* @param string|array $item The item which should be shortened
* @param bool $last (optional) If is set to true, last element is removed. Otherwise - first.
*
* @return string|array
*/
public static function removeMarginalElement($item, $last = true)
@@ -523,10 +509,9 @@ class Arrays
}
/**
* Returns last key of array.
* Returns last key of array
*
* @param array $array The array to get the last key of
*
* @return mixed
*/
public static function getLastKey(array $array)
@@ -537,11 +522,10 @@ class Arrays
}
/**
* Removes element / item of given array.
* Removes element / item of given array
*
* @param array $array The array that contains element / item which should be removed
* @param mixed $item The element / item which should be removed
*
* @return bool|array
*/
public static function removeElement(array $array, $item)
@@ -569,7 +553,7 @@ class Arrays
}
/**
* Removes items from given array starting at given element (before or after the element).
* Removes items from given array starting at given element (before or after the element)
*
* @param array $array The array which contains items to remove
* @param mixed $needle The element which is start point of deletion
@@ -621,7 +605,6 @@ class Arrays
* value will be used with it's key, because other will be overridden.
* Otherwise - values are preserved and keys assigned to that values are
* returned as an array.
*
* @return array
*
* Example of $ignoreDuplicatedValues = false:
@@ -656,7 +639,6 @@ class Arrays
*/
if (is_array($value)) {
$replaced[$key] = self::setKeysAsValues($value, $ignoreDuplicatedValues);
continue;
}
@@ -684,11 +666,10 @@ class Arrays
}
/**
* Applies ksort() function recursively in the given array.
* Applies ksort() function recursively in the given array
*
* @param array $array The array to sort
* @param int $sortFlags (optional) Options of ksort() function
*
* @return array|null
*/
public static function ksortRecursive(array &$array, $sortFlags = SORT_REGULAR)
@@ -714,10 +695,9 @@ class Arrays
}
/**
* Returns count / amount of elements that are not array.
* Returns count / amount of elements that are not array
*
* @param array $array The array to count
*
* @return int|null
*/
public static function getNonArrayElementsCount(array $array)
@@ -735,7 +715,6 @@ class Arrays
foreach ($array as &$value) {
if (is_array($value)) {
$count += self::getNonArrayElementsCount($value);
continue;
}
@@ -746,7 +725,7 @@ class Arrays
}
/**
* Converts given string with special separators to array.
* Converts given string with special separators to array
*
* Example:
* ~ string:
@@ -761,7 +740,6 @@ class Arrays
* @param string $string The string to be converted
* @param string $separator (optional) Separator used between name-value pairs in the string
* @param string $valuesKeysSeparator (optional) Separator used between name and value in the string
*
* @return array
*/
public static function string2array($string, $separator = '|', $valuesKeysSeparator = ':')
@@ -780,7 +758,7 @@ class Arrays
foreach ($exploded as $item) {
$exploded2 = explode($valuesKeysSeparator, $item);
if (count($exploded2) == 2) {
if (2 == count($exploded2)) {
$key = trim($exploded2[0]);
$value = trim($exploded2[1]);
@@ -792,12 +770,11 @@ class Arrays
}
/**
* Returns information if given keys exist in given array.
* Returns information if given keys exist in given array
*
* @param array $keys The keys to find
* @param array $array The array which maybe contains keys
* @param bool $explicit (optional) If is set to true, all keys should exist in given array. Otherwise - not all.
*
* @return bool
*/
public static function areKeysInArray($keys, $array, $explicit = true)
@@ -835,7 +812,7 @@ class Arrays
}
/**
* Returns paths of the last elements.
* Returns paths of the last elements
*
* @param array $array The array with elements
* @param string $separator (optional) Separator used in resultant strings. Default: ".".
@@ -843,7 +820,6 @@ class Arrays
* @param string|array $stopIfMatchedBy (optional) Patterns of keys or paths that matched will stop the process
* of path building and including children of those keys or paths (recursive
* will not be used for keys in lower level of given array)
*
* @return array
*
* Examples - $stopIfMatchedBy argument:
@@ -886,7 +862,6 @@ class Arrays
if (preg_match($pattern, $key) || preg_match($pattern, $path)) {
$stopRecursion = true;
break;
}
}
@@ -900,7 +875,6 @@ class Arrays
*/
if (!is_array($value) || (is_array($value) && empty($value)) || $stopRecursion) {
$paths[$path] = $value;
continue;
}
@@ -918,10 +892,9 @@ class Arrays
}
/**
* Makes and returns an array for given variable.
* Makes and returns an array for given variable
*
* @param mixed $variable Variable that should be an array
*
* @return array
*/
public static function makeArray($variable)
@@ -934,13 +907,12 @@ class Arrays
}
/**
* Returns information if keys / indexes of given array are matched by given pattern.
* Returns information if keys / indexes of given array are matched by given pattern
*
* @param array $array The array to check
* @param string $pattern The pattern which keys / indexes should match, e.g. "\d+"
* @param bool $firstLevelOnly (optional) If is set to true, all keys / indexes are checked. Otherwise - from the
* first level only.
*
* @return bool
*/
public static function areAllKeysMatchedByPattern($array, $pattern, $firstLevelOnly = false)
@@ -971,7 +943,6 @@ class Arrays
*/
if (!preg_match($pattern, $key)) {
$areMatched = false;
break;
}
@@ -989,12 +960,11 @@ class Arrays
/**
* Returns information if keys / indexes of given array are integers, in other words if the array contains
* zero-based keys / indexes.
* zero-based keys / indexes
*
* @param array $array The array to check
* @param bool $firstLevelOnly (optional) If is set to true, all keys / indexes are checked. Otherwise - from the
* first level only.
*
* @return bool
*/
public static function areAllKeysIntegers($array, $firstLevelOnly = false)
@@ -1010,7 +980,6 @@ class Arrays
*
* @param array $array The array which should contains a value
* @param array $keys Keys, path of keys, to find in given array
*
* @return mixed
*
* Examples:
@@ -1060,7 +1029,6 @@ class Arrays
*
* @param array $array The array to check
* @param array $keys Keys, path of keys, to find in given array
*
* @return bool
*
* Examples:
@@ -1111,7 +1079,6 @@ class Arrays
*
* @param array $array The array which should contain values of the key
* @param string $key The key
*
* @return array|null
*/
public static function getAllValuesOfKey(array $array, $key)
@@ -1125,7 +1092,6 @@ class Arrays
foreach ($array as $index => $value) {
if ($index === $key) {
$values[] = $value;
continue;
}
@@ -1142,7 +1108,7 @@ class Arrays
}
/**
* Sets positions for each element / child of given array and returns the array.
* Sets positions for each element / child of given array and returns the array
*
* Position for the 1st element / child of a parent is set to 1 and incremented for the next element and
* so on. Each parent is treated as separate array, so its elements are treated as positioned at 1st level.
@@ -1151,7 +1117,6 @@ class Arrays
* @param string $keyName (optional) Name of key which will contain the position value
* @param int $startPosition (optional) Default, start value of the position for main / given array, not the
* children
*
* @return array
*/
public static function setPositions(array $array, $keyName = self::POSITION_KEY_NAME, $startPosition = null)
@@ -1159,7 +1124,7 @@ class Arrays
if (!empty($array)) {
$childPosition = 1;
if ($startPosition !== null) {
if (null !== $startPosition) {
$array[$keyName] = $startPosition;
}
@@ -1175,10 +1140,9 @@ class Arrays
}
/**
* Trims string values of given array and returns the new array.
* Trims string values of given array and returns the new array
*
* @param array $array The array which values should be trimmed
*
* @return array
*/
public static function trimRecursive(array $array)
@@ -1191,7 +1155,6 @@ class Arrays
foreach ($array as $key => $value) {
if (is_array($value)) {
$effect[$key] = self::trimRecursive($value);
continue;
}
@@ -1247,7 +1210,6 @@ class Arrays
*
* @param array $array An array to sort
* @param array $keysOrder An array with keys of the 1st argument in proper / required order
*
* @return array|null
*/
public static function sortByCustomKeysOrder(array $array, array $keysOrder)
@@ -1289,7 +1251,7 @@ class Arrays
}
/**
* Returns smartly imploded string.
* Returns smartly imploded string
*
* Separators located at the beginning or end of elements are removed.
* It's required to avoid problems with duplicated separator, e.g. "first//second/third", where separator is a
@@ -1297,7 +1259,6 @@ class Arrays
*
* @param array $array The array with elements to implode
* @param string $separator Separator used to stick together elements of given array
*
* @return string
*/
public static function implodeSmart(array $array, $separator)
@@ -1328,12 +1289,11 @@ class Arrays
}
/**
* Returns information if given array is empty, iow. information if all elements of given array are empty.
* Returns information if given array is empty, iow. information if all elements of given array are empty
*
* @param array $array The array to verify
* @param bool $strictNull (optional) If is set to true elements are verified if they are null. Otherwise - only
* if they are empty (e.g. null, '', 0, array()).
*
* @return bool
*/
public static function areAllValuesEmpty(array $array, $strictNull = false)
@@ -1356,7 +1316,7 @@ class Arrays
*
* If one of the above is true, not all elements of given array are empty
*/
if ((!is_array($element) && $strictNull && $element !== null) || !empty($element)) {
if ((!is_array($element) && $strictNull && null !== $element) || !empty($element)) {
return false;
}
}
@@ -1383,7 +1343,6 @@ class Arrays
* @param array $array2 The 2nd array to verify
* @param bool $valuesOnly (optional) If is set to true, compares values only. Otherwise - keys and values
* (default behaviour).
*
* @return array
*/
public static function arrayDiffRecursive(array $array1, array $array2, $valuesOnly = false)
@@ -1394,7 +1353,7 @@ class Arrays
* Values should be compared only and both arrays are one-dimensional?
* Let's find difference by using simple function
*/
if ($valuesOnly && self::getDimensionsCount($array1) == 1 && self::getDimensionsCount($array2) == 1) {
if ($valuesOnly && 1 == self::getDimensionsCount($array1) && 1 == self::getDimensionsCount($array2)) {
return array_diff($array1, $array2);
}
@@ -1422,7 +1381,7 @@ class Arrays
}
}
if ($difference !== null) {
if (null !== $difference) {
$effect[] = $difference;
}
} else {
@@ -1470,11 +1429,10 @@ class Arrays
}
/**
* Returns an index / key of given element in given array.
* Returns an index / key of given element in given array
*
* @param array $array The array to verify
* @param mixed $element The element who index / key is needed
*
* @return bool|null|mixed
*/
public static function getIndexOf(array $array, $element)
@@ -1497,13 +1455,12 @@ class Arrays
}
/**
* Returns an array with incremented indexes / keys.
* Returns an array with incremented indexes / keys
*
* @param array $array The array which indexes / keys should be incremented
* @param int|null $startIndex (optional) Index from which incrementation should be started. If not provided,
* the first index / key will be used.
* @param int $incrementStep (optional) Value used for incrementation. The step of incrementation.
*
* @return array
*/
public static function incrementIndexes(array $array, $startIndex = null, $incrementStep = 1)
@@ -1515,7 +1472,7 @@ class Arrays
* Start index not provided?
* Let's look for the first index / key of given array
*/
if ($startIndex === null) {
if (null === $startIndex) {
$startIndex = self::getFirstKey($array);
}
@@ -1554,11 +1511,10 @@ class Arrays
}
/**
* Returns next element of given array related to given element.
* Returns next element of given array related to given element
*
* @param array $array The array with elements
* @param mixed $element Element for who next element should be returned
*
* @return null|mixed
*/
public static function getNextElement(array $array, $element)
@@ -1567,11 +1523,10 @@ class Arrays
}
/**
* Returns previous element of given array related to given element.
* Returns previous element of given array related to given element
*
* @param array $array The array with elements
* @param mixed $element Element for who previous element should be returned
*
* @return null|mixed
*/
public static function getPreviousElement(array $array, $element)
@@ -1580,10 +1535,9 @@ class Arrays
}
/**
* Returns information if given array is a multi dimensional array.
* Returns information if given array is a multi dimensional array
*
* @param array $array The array to verify
*
* @return bool|null
*/
public static function isMultiDimensional(array $array)
@@ -1600,10 +1554,9 @@ class Arrays
}
/**
* Returns count of dimensions, maximum nesting level actually, in given array.
* Returns count of dimensions, maximum nesting level actually, in given array
*
* @param array $array The array to verify
*
* @return int
*/
public static function getDimensionsCount(array $array)
@@ -1628,12 +1581,11 @@ class Arrays
}
/**
* Returns neighbour (next or previous element) for given element.
* Returns neighbour (next or previous element) for given element
*
* @param array $array The array with elements
* @param mixed $element Element for who next element should be returned
* @param bool $next (optional) If is set to true, returns next neighbour. Otherwise - previous.
*
* @return mixed|null
*/
private static function getNeighbour(array $array, $element, $next = true)
@@ -1665,7 +1617,7 @@ class Arrays
* Index of element or of element's key is unknown?
* Probably the element does not exist in given array, so... nothing to do
*/
if ($elementKey === null || $indexOfKey === null) {
if (null === $elementKey || null === $indexOfKey) {
return null;
}

View File

@@ -9,7 +9,7 @@
namespace Meritoo\Common\Utilities;
/**
* Useful methods for bundle.
* Useful methods for bundle
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
@@ -17,12 +17,11 @@ namespace Meritoo\Common\Utilities;
class Bundle
{
/**
* Returns path to view / template of given bundle.
* Returns path to view / template of given bundle
*
* @param string $viewPath Path of the view / template, e.g. "MyDirectory/my-template"
* @param string $bundleName Name of the bundle, e.g. "MyExtraBundle"
* @param string $extension (optional) Extension of the view / template
*
* @return string|null
*/
public static function getBundleViewPath($viewPath, $bundleName, $extension = 'html.twig')

View File

@@ -11,7 +11,7 @@ namespace Meritoo\Common\Utilities;
use stdClass;
/**
* Useful Composer-related methods (only static functions).
* Useful Composer-related methods (only static functions)
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
@@ -19,18 +19,17 @@ use stdClass;
class Composer
{
/**
* Name of the Composer's main file with configuration in Json format.
* Name of the Composer's main file with configuration in Json format
*
* @var string
*/
const FILE_NAME_MAIN = 'composer.json';
/**
* Returns value from composer.json file.
* Returns value from composer.json file
*
* @param string $composerJsonPath Path of composer.json file
* @param string $nodeName Name of node who value should be returned
*
* @return string|null
*/
public static function getValue($composerJsonPath, $nodeName)
@@ -60,7 +59,7 @@ class Composer
* Unknown data from the composer.json file or there is no node with given name?
* Nothing to do
*/
if ($data === null || !isset($data->{$nodeName})) {
if (null === $data || !isset($data->{$nodeName})) {
return null;
}

View File

@@ -14,7 +14,7 @@ use Meritoo\Common\Exception\Date\UnknownDatePartTypeException;
use Meritoo\Common\Type\DatePartType;
/**
* Useful date methods.
* Useful date methods
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
@@ -66,7 +66,6 @@ class Date
* The dates are returned in an array with indexes 'start' and 'end'.
*
* @param int $period The period, type of period. One of DatePeriod class constants, e.g. DatePeriod::LAST_WEEK.
*
* @return DatePeriod
*/
public static function getDatesForPeriod($period)
@@ -130,10 +129,10 @@ class Date
$dateStart = new DateTime();
$dateEnd = new DateTime();
if ($period == DatePeriod::LAST_YEAR || $period == DatePeriod::NEXT_YEAR) {
if (DatePeriod::LAST_YEAR == $period || DatePeriod::NEXT_YEAR == $period) {
$yearDifference = 1;
if ($period == DatePeriod::LAST_YEAR) {
if (DatePeriod::LAST_YEAR == $period) {
$yearDifference *= -1;
}
@@ -149,7 +148,7 @@ class Date
break;
}
if ($dateStart !== null && $dateEnd !== null) {
if (null !== $dateStart && null !== $dateEnd) {
$dateStart->setTime(0, 0, 0);
$dateEnd->setTime(23, 59, 59);
@@ -161,11 +160,10 @@ class Date
}
/**
* Generates and returns random time (the hour, minute and second values).
* Generates and returns random time (the hour, minute and second values)
*
* @param string $format (optional) Format of returned value. A string acceptable by the DateTime::format()
* method.
*
* @return string|null
*/
public static function generateRandomTime($format = 'H:i:s')
@@ -209,7 +207,7 @@ class Date
}
/**
* Returns current day of week.
* Returns current day of week
*
* @return int
*/
@@ -233,14 +231,13 @@ class Date
* @param int $day The day value
*
* @return int
*
* @throws UnknownDatePartTypeException
*/
public static function getDayOfWeek($year, $month, $day)
{
$year = (int) $year;
$month = (int) $month;
$day = (int) $day;
$year = (int)$year;
$month = (int)$month;
$day = (int)$day;
/*
* Oops, incorrect year
@@ -280,7 +277,7 @@ class Date
}
/**
* Returns based on locale name of current weekday.
* Returns based on locale name of current weekday
*
* @return string
*/
@@ -296,12 +293,11 @@ class Date
}
/**
* Returns name of weekday based on locale.
* Returns name of weekday based on locale
*
* @param int $year The year value
* @param int $month The month value
* @param int $day The day value
*
* @return string
*/
public static function getDayOfWeekName($year, $month, $day)
@@ -315,7 +311,7 @@ class Date
$encoding = mb_detect_encoding($name);
if ($encoding === false) {
if (false === $encoding) {
$name = mb_convert_encoding($name, 'UTF-8', 'ISO-8859-2');
}
@@ -342,7 +338,6 @@ class Date
* @param int $differenceUnit (optional) Unit of date difference. One of this class
* DATE_DIFFERENCE_UNIT_* constants. If is set to null all units are
* returned in the array.
*
* @return array|int
*/
public static function getDateDifference($dateStart, $dateEnd, $differenceUnit = null)
@@ -383,46 +378,46 @@ class Date
self::DATE_DIFFERENCE_UNIT_MINUTES,
];
if ($differenceUnit === null || $differenceUnit == self::DATE_DIFFERENCE_UNIT_YEARS) {
if (null === $differenceUnit || self::DATE_DIFFERENCE_UNIT_YEARS == $differenceUnit) {
$diff = $dateEnd->diff($dateStart);
/*
* Difference between dates in years should be returned only?
*/
if ($differenceUnit == self::DATE_DIFFERENCE_UNIT_YEARS) {
if (self::DATE_DIFFERENCE_UNIT_YEARS == $differenceUnit) {
return $diff->y;
}
$difference[self::DATE_DIFFERENCE_UNIT_YEARS] = $diff->y;
}
if ($differenceUnit === null || $differenceUnit == self::DATE_DIFFERENCE_UNIT_MONTHS) {
if (null === $differenceUnit || self::DATE_DIFFERENCE_UNIT_MONTHS == $differenceUnit) {
$diff = $dateEnd->diff($dateStart);
/*
* Difference between dates in months should be returned only?
*/
if ($differenceUnit == self::DATE_DIFFERENCE_UNIT_MONTHS) {
if (self::DATE_DIFFERENCE_UNIT_MONTHS == $differenceUnit) {
return $diff->m;
}
$difference[self::DATE_DIFFERENCE_UNIT_MONTHS] = $diff->m;
}
if ($differenceUnit === null || in_array($differenceUnit, $relatedUnits)) {
$days = (int) floor($dateDiff / $daySeconds);
if (null === $differenceUnit || in_array($differenceUnit, $relatedUnits)) {
$days = (int)floor($dateDiff / $daySeconds);
/*
* Difference between dates in days should be returned only?
*/
if ($differenceUnit == self::DATE_DIFFERENCE_UNIT_DAYS) {
if (self::DATE_DIFFERENCE_UNIT_DAYS == $differenceUnit) {
return $days;
}
/*
* All units should be returned?
*/
if ($differenceUnit === null) {
if (null === $differenceUnit) {
$difference[self::DATE_DIFFERENCE_UNIT_DAYS] = $days;
}
@@ -432,20 +427,20 @@ class Date
$daysInSeconds = $days * $daySeconds;
}
if ($differenceUnit === null || in_array($differenceUnit, $relatedUnits)) {
$hours = (int) floor(($dateDiff - $daysInSeconds) / $hourSeconds);
if (null === $differenceUnit || in_array($differenceUnit, $relatedUnits)) {
$hours = (int)floor(($dateDiff - $daysInSeconds) / $hourSeconds);
/*
* Difference between dates in hours should be returned only?
*/
if ($differenceUnit == self::DATE_DIFFERENCE_UNIT_HOURS) {
if (self::DATE_DIFFERENCE_UNIT_HOURS == $differenceUnit) {
return $hours;
}
/*
* All units should be returned?
*/
if ($differenceUnit === null) {
if (null === $differenceUnit) {
$difference[self::DATE_DIFFERENCE_UNIT_HOURS] = $hours;
}
@@ -455,13 +450,13 @@ class Date
$hoursInSeconds = $hours * $hourSeconds;
}
if ($differenceUnit === null || $differenceUnit == self::DATE_DIFFERENCE_UNIT_MINUTES) {
$minutes = (int) floor(($dateDiff - $daysInSeconds - $hoursInSeconds) / 60);
if (null === $differenceUnit || self::DATE_DIFFERENCE_UNIT_MINUTES == $differenceUnit) {
$minutes = (int)floor(($dateDiff - $daysInSeconds - $hoursInSeconds) / 60);
/*
* Difference between dates in minutes should be returned only?
*/
if ($differenceUnit == self::DATE_DIFFERENCE_UNIT_MINUTES) {
if (self::DATE_DIFFERENCE_UNIT_MINUTES == $differenceUnit) {
return $minutes;
}
@@ -480,7 +475,6 @@ class Date
* @param string $intervalTemplate (optional) Template used to build date interval. It should contain "%d" as the
* placeholder which is replaced with a number that represents each iteration.
* Default: interval for days.
*
* @return array
*/
public static function getDatesCollection(DateTime $startDate, $datesCount, $intervalTemplate = 'P%dD')
@@ -506,7 +500,7 @@ class Date
$matchCount = preg_match($intervalPattern, $intervalTemplate, $matches);
if ($matchCount > 0 && (!empty($matches[1]) || !empty($matches[2]))) {
$datesCount = (int) $datesCount;
$datesCount = (int)$datesCount;
for ($index = 1; $index <= $datesCount; ++$index) {
$date = clone $startDate;
@@ -519,24 +513,23 @@ class Date
}
/**
* Returns random date based on given start date.
* Returns random date based on given start date
*
* @param DateTime $startDate The start date. Start of the random date.
* @param int $start (optional) Start of random partition
* @param int $end (optional) End of random partition
* @param string $intervalTemplate (optional) Template used to build date interval. The placeholder is replaced
* with next, iterated value.
*
* @return DateTime
*/
public static function getRandomDate(DateTime $startDate = null, $start = 1, $end = 100, $intervalTemplate = 'P%sD')
{
if ($startDate === null) {
if (null === $startDate) {
$startDate = new DateTime();
}
$start = (int) $start;
$end = (int) $end;
$start = (int)$start;
$end = (int)$end;
/*
* Incorrect end of random partition?
@@ -563,7 +556,6 @@ class Date
* @param string $dateFormat (optional) Format of date used to verify if given value is actually a date.
* It should be format matched to the given value, e.g. "Y-m-d H:i" for
* "2015-01-01 10:00" value.
*
* @return DateTime|bool
*/
public static function getDateTime($value, $allowCompoundFormats = false, $dateFormat = 'Y-m-d')
@@ -598,7 +590,7 @@ class Date
*/
$dateFromFormat = DateTime::createFromFormat($dateFormat, $value);
if ($dateFromFormat === false) {
if (false === $dateFromFormat) {
/*
* Nothing to do more, because:
* a) instance of the DateTime was created
@@ -666,13 +658,12 @@ class Date
}
/**
* Returns information if given value is valid date.
* Returns information if given value is valid date
*
* @param mixed $value The value which maybe is a date
* @param bool $allowCompoundFormats (optional) If is set to true, the compound formats used to create an
* instance of DateTime class are allowed (e.g. "now", "last day of next
* month", "yyyy"). Otherwise - not and every incorrect value is refused.
*
* @return bool
*/
public static function isValidDate($value, $allowCompoundFormats = false)
@@ -681,10 +672,9 @@ class Date
}
/**
* Returns information if given format of date is valid.
* Returns information if given format of date is valid
*
* @param string $format The validated format of date
*
* @return bool
*/
public static function isValidDateFormat($format)

View File

@@ -20,84 +20,84 @@ use DateTime;
class DatePeriod
{
/**
* The period constant: last month.
* The period constant: last month
*
* @var int
*/
const LAST_MONTH = 4;
/**
* The period constant: last week.
* The period constant: last week
*
* @var int
*/
const LAST_WEEK = 1;
/**
* The period constant: last year.
* The period constant: last year
*
* @var int
*/
const LAST_YEAR = 7;
/**
* The period constant: next month.
* The period constant: next month
*
* @var int
*/
const NEXT_MONTH = 6;
/**
* The period constant: next week.
* The period constant: next week
*
* @var int
*/
const NEXT_WEEK = 3;
/**
* The period constant: next year.
* The period constant: next year
*
* @var int
*/
const NEXT_YEAR = 9;
/**
* The period constant: this month.
* The period constant: this month
*
* @var int
*/
const THIS_MONTH = 5;
/**
* The period constant: this week.
* The period constant: this week
*
* @var int
*/
const THIS_WEEK = 2;
/**
* The period constant: this year.
* The period constant: this year
*
* @var int
*/
const THIS_YEAR = 8;
/**
* The start date of period.
* The start date of period
*
* @var DateTime
*/
private $startDate;
/**
* The end date of period.
* The end date of period
*
* @var DateTime
*/
private $endDate;
/**
* Class constructor.
* Class constructor
*
* @param DateTime $startDate (optional) The start date of period
* @param DateTime $endDate (optional) The end date of period
@@ -109,10 +109,9 @@ class DatePeriod
}
/**
* Returns information if given period is correct.
* Returns information if given period is correct
*
* @param int $period The period to verify
*
* @return bool
*/
public static function isCorrectPeriod($period)
@@ -121,11 +120,10 @@ class DatePeriod
}
/**
* Returns formatted one of the period's date: start date or end date.
* Returns formatted one of the period's date: start date or end date
*
* @param string $format Format used to format the date
* @param bool $startDate (optional) If is set to true, start date is formatted. Otherwise - end date.
*
* @return string
*/
public function getFormattedDate($format, $startDate = true)
@@ -142,7 +140,7 @@ class DatePeriod
/*
* Unknown date or format is invalid?
*/
if ($date === null || !Date::isValidDateFormat($format)) {
if (null === $date || !Date::isValidDateFormat($format)) {
return '';
}
@@ -150,7 +148,7 @@ class DatePeriod
}
/**
* Returns the end date of period.
* Returns the end date of period
*
* @return DateTime
*/
@@ -160,10 +158,9 @@ class DatePeriod
}
/**
* Sets the end date of period.
* Sets the end date of period
*
* @param DateTime $endDate (optional) The end date of period
*
* @return $this
*/
public function setEndDate(DateTime $endDate = null)
@@ -174,7 +171,7 @@ class DatePeriod
}
/**
* Returns the start date of period.
* Returns the start date of period
*
* @return DateTime
*/
@@ -184,10 +181,9 @@ class DatePeriod
}
/**
* Sets the start date of period.
* Sets the start date of period
*
* @param DateTime $startDate (optional) The start date of period
*
* @return $this
*/
public function setStartDate(DateTime $startDate = null)

View File

@@ -11,7 +11,7 @@ namespace Meritoo\Common\Utilities;
use Generator;
/**
* Useful methods for the Generator class (only static functions).
* Useful methods for the Generator class (only static functions)
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
@@ -19,10 +19,9 @@ use Generator;
class GeneratorUtility
{
/**
* Returns elements of generator.
* Returns elements of generator
*
* @param Generator $generator The generator who elements should be returned
*
* @return array
*/
public static function getGeneratorElements(Generator $generator)

View File

@@ -9,7 +9,7 @@
namespace Meritoo\Common\Utilities;
/**
* Useful locale methods.
* Useful locale methods
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
@@ -17,13 +17,12 @@ namespace Meritoo\Common\Utilities;
class Locale
{
/**
* Sets locale for given category using given language and country code.
* Sets locale for given category using given language and country code
*
* @param int $category Named constant specifying the category of the functions affected by the locale
* setting. It's the same constant as required by setlocale() function.
* @param string $languageCode Language code, in ISO 639-1 format. Short form of the locale, e.g. "fr".
* @param string $countryCode (optional) Country code, in ISO 3166-1 alpha-2 format, e.g. "FR"
*
* @return bool
*
* Available categories (values of $category argument):
@@ -37,7 +36,7 @@ class Locale
*/
public static function setLocale($category, $languageCode, $countryCode = '')
{
$category = (int) $category;
$category = (int)$category;
if (is_string($languageCode)) {
$languageCode = trim($languageCode);
@@ -64,12 +63,11 @@ class Locale
}
/**
* Returns long form of the locale.
* Returns long form of the locale
*
* @param string $languageCode Language code, in ISO 639-1 format. Short form of the locale, e.g. "fr".
* @param string $countryCode (optional) Country code, in ISO 3166-1 alpha-2 format, e.g. "FR"
* @param string $encoding (optional) Encoding of the final locale
*
* @return string
*
* Example:

File diff suppressed because it is too large Load Diff

View File

@@ -13,7 +13,7 @@ use Symfony\Component\HttpFoundation\Cookie;
use Transliterator;
/**
* Miscellaneous methods (only static functions).
* Miscellaneous methods (only static functions)
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
@@ -21,14 +21,13 @@ use Transliterator;
class Miscellaneous
{
/**
* Returns directory's content (names of directories and files).
* Returns directory's content (names of directories and files)
*
* @param string $directoryPath Path of directory who content should be returned
* @param bool $recursive (optional) If is set to true, sub-directories are also searched for content.
* Otherwise - only content of given directory is returned.
* @param int $maxFilesCount (optional) Maximum files that will be returned. If it's null, all files are
* returned.
*
* @return array|null
*/
public static function getDirectoryContent($directoryPath, $recursive = false, $maxFilesCount = null)
@@ -66,7 +65,7 @@ class Miscellaneous
if (!empty($directoryContent)) {
foreach ($directoryContent as $fileName) {
if ($fileName != '.' && $fileName != '..') {
if ('.' != $fileName && '..' != $fileName) {
$content = null;
if (!empty($startFileName) && !$startFileFound) {
@@ -77,11 +76,11 @@ class Miscellaneous
continue;
}
if ($recursive && is_dir($directoryPath.$fileName)) {
$content = self::getDirectoryContent($directoryPath.$fileName, true, $maxFilesCount - $count);
if ($recursive && is_dir($directoryPath . $fileName)) {
$content = self::getDirectoryContent($directoryPath . $fileName, true, $maxFilesCount - $count);
}
if ($content !== null) {
if (null !== $content) {
$files[$fileName] = $content;
if (!empty($maxFilesCount)) {
@@ -106,10 +105,9 @@ class Miscellaneous
}
/**
* Returns information if given path it's a file's path, if the path contains file name.
* Returns information if given path it's a file's path, if the path contains file name
*
* @param string $path The path to check
*
* @return bool
*/
public static function isFilePath($path)
@@ -120,16 +118,15 @@ class Miscellaneous
}
/**
* Converts checkbox value to boolean.
* Converts checkbox value to boolean
*
* @param string $checkboxValue Checkbox value
*
* @return bool
*/
public static function checkboxValue2Boolean($checkboxValue)
{
$mapping = [
'on' => true,
'on' => true,
'off' => false,
];
@@ -143,23 +140,21 @@ class Miscellaneous
}
/**
* Converts checkbox value to integer.
* Converts checkbox value to integer
*
* @param string $checkboxValue Checkbox value
*
* @return int
*/
public static function checkboxValue2Integer($checkboxValue)
{
return (int) self::checkboxValue2Boolean($checkboxValue);
return (int)self::checkboxValue2Boolean($checkboxValue);
}
/**
* Returns name of file with given extension after verification if it contains the extension.
* Returns name of file with given extension after verification if it contains the extension
*
* @param string $fileName The file name to verify
* @param string $extension The extension to verify and include
*
* @return string
*/
public static function includeFileExtension($fileName, $extension)
@@ -172,11 +167,10 @@ class Miscellaneous
}
/**
* Returns file extension.
* Returns file extension
*
* @param string $fileName File name
* @param bool $asLowerCase (optional) if true extension is returned as lowercase string
*
* @return string
*/
public static function getFileExtension($fileName, $asLowerCase = false)
@@ -196,10 +190,9 @@ class Miscellaneous
}
/**
* Returns file name from given path.
* Returns file name from given path
*
* @param string $path A path that contains file name
*
* @return string
*/
public static function getFileNameFromPath($path)
@@ -207,7 +200,7 @@ class Miscellaneous
$matches = [];
$pattern = sprintf('|([^\%s.]+\.[A-Za-z0-9.]+)$|', DIRECTORY_SEPARATOR);
if ((bool) preg_match($pattern, $path, $matches)) {
if ((bool)preg_match($pattern, $path, $matches)) {
return $matches[1];
}
@@ -215,12 +208,11 @@ class Miscellaneous
}
/**
* Returns unique name for file based on given original name.
* Returns unique name for file based on given original name
*
* @param string $originalFileName Original name of the file
* @param int $objectId (optional) Object ID, the ID of database's row. May be included into the
* generated / unique name.
*
* @return string
*/
public static function getUniqueFileName($originalFileName, $objectId = 0)
@@ -268,17 +260,16 @@ class Miscellaneous
}
/**
* Returns file name without extension.
* Returns file name without extension
*
* @param string $fileName The file name
*
* @return string
*/
public static function getFileNameWithoutExtension($fileName)
{
$matches = [];
if (is_string($fileName) && (bool) preg_match('|(.+)\.(.+)|', $fileName, $matches)) {
if (is_string($fileName) && (bool)preg_match('|(.+)\.(.+)|', $fileName, $matches)) {
return $matches[1];
}
@@ -286,16 +277,15 @@ class Miscellaneous
}
/**
* Converts value to non-negative integer (element of the set {0, 1, 2, 3, ...}).
* Converts value to non-negative integer (element of the set {0, 1, 2, 3, ...})
*
* @param mixed $value Value to convert
* @param int $negativeReplacement (optional) Replacement for negative value
*
* @return int
*/
public static function value2NonNegativeInteger($value, $negativeReplacement = 0)
{
$effect = (int) $value;
$effect = (int)$value;
if ($effect < 0) {
return $negativeReplacement;
@@ -305,7 +295,7 @@ class Miscellaneous
}
/**
* Displays variable content as preformatted text (fixed-width font and preserves both spaces and line breaks).
* Displays variable content as preformatted text (fixed-width font and preserves both spaces and line breaks)
*
* If xdebug php module is loaded, displays variable using var_dump(), otherwise <pre>var_dump()</pre>.
* You can pass as many variables as you wish.
@@ -333,10 +323,9 @@ class Miscellaneous
}
/**
* Returns information if given PHP module is compiled and loaded.
* Returns information if given PHP module is compiled and loaded
*
* @param string $phpModuleName PHP module name
*
* @return bool
*/
public static function isPhpModuleLoaded($phpModuleName)
@@ -347,14 +336,13 @@ class Miscellaneous
}
/**
* Converts given string characters to latin characters.
* Converts given string characters to latin characters
*
* @param string $string String to convert
* @param bool $lowerCaseHuman (optional) If is set to true, converted string is returned as lowercase and
* human-readable. Otherwise - as original.
* @param string $replacementChar (optional) Replacement character for all non-latin characters and uppercase
* letters, if 2nd argument is set to true
*
* @return string
*/
public static function toLatin($string, $lowerCaseHuman = true, $replacementChar = '-')
@@ -377,7 +365,7 @@ class Miscellaneous
* Oops, cannot instantiate converter
* Nothing to do
*/
if ($converter === null) {
if (null === $converter) {
return '';
}
@@ -406,12 +394,11 @@ class Miscellaneous
}
/**
* Returns unique string.
* Returns unique string
*
* @param string $prefix (optional) Prefix of the unique string. May be used while generating the unique
* string simultaneously on several hosts at the same microsecond.
* @param bool $hashed (optional) If is set to true, the unique string is hashed additionally. Otherwise - not.
*
* @return string
*/
public static function getUniqueString($prefix = '', $hashed = false)
@@ -435,7 +422,6 @@ class Miscellaneous
* @param string|array $replacement The string or an array of strings to replace. It may be: string or an array
* of strings.
* @param bool $quoteStrings (optional) If is set to true, strings are surrounded with single quote sign
*
* @return string
*
* Example:
@@ -474,7 +460,7 @@ class Miscellaneous
* Value to find is neither a string nor an array OR it's an empty string?
* Nothing to do
*/
if ((!$searchIsString && !$searchIsArray) || ($searchIsString && strlen($search) == 0)) {
if ((!$searchIsString && !$searchIsArray) || ($searchIsString && 0 == strlen($search))) {
return $effect;
}
@@ -489,7 +475,7 @@ class Miscellaneous
*/
if ($searchIsString && $replacementIsString) {
if ($quoteStrings) {
$replacement = '\''.$replacement.'\'';
$replacement = '\'' . $replacement . '\'';
}
$effect = str_replace($search, $replacement, $subject);
@@ -501,7 +487,7 @@ class Miscellaneous
*/
if ($effect == $subject && ($bothAreStrings || $bothAreArrays)) {
if ($quoteStrings && $replacementIsString) {
$replacement = '\''.$replacement.'\'';
$replacement = '\'' . $replacement . '\'';
}
/*
@@ -543,7 +529,7 @@ class Miscellaneous
if ($quoteStrings) {
foreach ($replacement as &$item) {
if (is_string($item)) {
$item = '\''.$item.'\'';
$item = '\'' . $item . '\'';
}
}
@@ -563,7 +549,6 @@ class Miscellaneous
if ($subjectIsArray) {
$effect[] = $subEffect;
continue;
}
@@ -575,12 +560,11 @@ class Miscellaneous
}
/**
* Returns new file name after adding prefix or suffix (or both of them) to the name.
* Returns new file name after adding prefix or suffix (or both of them) to the name
*
* @param string $fileName The file name
* @param string $prefix File name prefix
* @param string $suffix File name suffix
*
* @return string
*/
public static function getNewFileName($fileName, $prefix, $suffix)
@@ -598,7 +582,7 @@ class Miscellaneous
}
/**
* Returns operating system name PHP is running on.
* Returns operating system name PHP is running on
*
* @return string
*/
@@ -608,12 +592,11 @@ class Miscellaneous
}
/**
* Returns part of string preserving words.
* Returns part of string preserving words
*
* @param string $text The string / text
* @param int $maxLength Maximum length of given string
* @param string $suffix (optional) The suffix to add at the end of string
*
* @return string
*/
public static function substringToWord($text, $maxLength, $suffix = '...')
@@ -629,7 +612,7 @@ class Miscellaneous
$effect = mb_substr($text, 0, $maxLength, 'utf-8');
$lastSpacePosition = mb_strrpos($effect, ' ', 'utf-8');
if ($lastSpacePosition !== false) {
if (false !== $lastSpacePosition) {
$effect = mb_substr($effect, 0, $lastSpacePosition, 'utf-8');
}
@@ -640,14 +623,13 @@ class Miscellaneous
}
/**
* Breaks long text.
* Breaks long text
*
* @param string $text The text to check and break
* @param int $perLine (optional) Characters count per line
* @param string $separator (optional) Separator that is placed beetwen lines
* @param string $encoding (optional) Character encoding. Used by mb_substr().
* @param int $proportionalAberration (optional) Proportional aberration for chars (percent value)
*
* @return string
*/
public static function breakLongText(
@@ -735,7 +717,6 @@ class Miscellaneous
* @param string $directoryPath Directory path
* @param bool $contentOnly (optional) If is set to true, only content of the directory is removed, not
* directory. Otherwise - directory is removed too.
*
* @return bool
*/
public static function removeDirectory($directoryPath, $contentOnly = false)
@@ -749,11 +730,11 @@ class Miscellaneous
}
foreach (scandir($directoryPath) as $item) {
if ($item == '.' || $item == '..') {
if ('.' == $item || '..' == $item) {
continue;
}
if (!self::removeDirectory($directoryPath.DIRECTORY_SEPARATOR.$item)) {
if (!self::removeDirectory($directoryPath . DIRECTORY_SEPARATOR . $item)) {
return false;
}
}
@@ -766,23 +747,21 @@ class Miscellaneous
}
/**
* Returns information if value is decimal.
* Returns information if value is decimal
*
* @param mixed $value The value to check
*
* @return bool
*/
public static function isDecimal($value)
{
return is_scalar($value) && floor($value) !== (float) $value;
return is_scalar($value) && floor($value) !== (float)$value;
}
/**
* Returns the string in camel case.
* Returns the string in camel case
*
* @param string $string The string to convert e.g. this-is-eXamplE (return: thisIsExample)
* @param string $separator (optional) Separator used to find parts of the string, e.g. '-' or ','
*
* @return string
*/
public static function getCamelCase($string, $separator = ' ')
@@ -797,7 +776,7 @@ class Miscellaneous
foreach ($members as $key => $value) {
$value = mb_strtolower($value);
if ($key == 0) {
if (0 == $key) {
$effect .= self::lowercaseFirst($value);
} else {
$effect .= self::uppercaseFirst($value);
@@ -808,11 +787,10 @@ class Miscellaneous
}
/**
* Make a string's first character lowercase.
* Make a string's first character lowercase
*
* @param string $text The text to get first character lowercase
* @param bool|null $restLowercase (optional) Information that to do with rest of given string
*
* @return string
*
* Values of the $restLowercase argument:
@@ -834,7 +812,7 @@ class Miscellaneous
if ($restLowercase) {
$effect = mb_strtolower($effect);
} elseif ($restLowercase === false) {
} elseif (false === $restLowercase) {
$effect = mb_strtoupper($effect);
}
@@ -844,18 +822,17 @@ class Miscellaneous
$first = mb_strtolower($effect[0]);
$rest = mb_substr($effect, 1);
$effect = $first.$rest;
$effect = $first . $rest;
}
return $effect;
}
/**
* Make a string's first character uppercase.
* Make a string's first character uppercase
*
* @param string $text The text to get uppercase
* @param bool|null $restLowercase (optional) Information that to do with rest of given string
*
* @return string
*
* Values of the $restLowercase argument:
@@ -873,7 +850,7 @@ class Miscellaneous
if ($restLowercase) {
$effect = mb_strtolower($effect);
} elseif ($restLowercase === false) {
} elseif (false === $restLowercase) {
$effect = mb_strtoupper($effect);
}
@@ -883,18 +860,17 @@ class Miscellaneous
$first = mb_strtoupper($effect[0]);
$rest = mb_substr($effect, 1);
$effect = $first.$rest;
$effect = $first . $rest;
}
return $effect;
}
/**
* Quotes given value with apostrophes or quotation marks.
* Quotes given value with apostrophes or quotation marks
*
* @param mixed $value The value to quote
* @param bool $useApostrophe (optional) If is set to true, apostrophes are used. Otherwise - quotation marks.
*
* @return string
*/
public static function quoteValue($value, $useApostrophe = true)
@@ -913,10 +889,9 @@ class Miscellaneous
}
/**
* Returns size (of file or directory) in human readable format.
* Returns size (of file or directory) in human readable format
*
* @param int $sizeInBytes The size in bytes
*
* @return string
*/
public static function getHumanReadableSize($sizeInBytes)
@@ -932,7 +907,7 @@ class Miscellaneous
$index = floor(log($sizeInBytes, 1024));
$size = round($sizeInBytes / pow(1024, $index), 2);
$unit = $units[(int) $index];
$unit = $units[(int)$index];
return sprintf('%s %s', $size, $unit);
}
@@ -943,7 +918,6 @@ class Miscellaneous
*
* @param string $string The string to check
* @param string $separator The separator which divides elements of string
*
* @return string
*/
public static function getStringWithoutLastElement($string, $separator)
@@ -957,11 +931,10 @@ class Miscellaneous
}
/**
* Returns elements of given string divided by given separator.
* Returns elements of given string divided by given separator
*
* @param string $string The string to check
* @param string $separator The separator which divides elements of string
*
* @return array
*/
public static function getStringElements($string, $separator)
@@ -978,11 +951,10 @@ class Miscellaneous
}
/**
* Returns the last element of given string divided by given separator.
* Returns the last element of given string divided by given separator
*
* @param string $string The string to check
* @param string $separator The separator which divides elements of string
*
* @return string|null
*/
public static function getLastElementOfString($string, $separator)
@@ -1007,7 +979,6 @@ class Miscellaneous
* If the string is empty, contains only spaces, e.g. " ", nothing is done and the original string is returned.
*
* @param string $string The string to trim
*
* @return string
*/
public static function trimSmart($string)
@@ -1022,7 +993,7 @@ class Miscellaneous
}
/**
* Returns concatenated given paths.
* Returns concatenated given paths
*
* The paths may be passed as:
* - an array of paths / strings
@@ -1034,7 +1005,6 @@ class Miscellaneous
*
* @param string|array $paths Paths co concatenate. As described above: an array of paths / strings or strings
* passed as following arguments.
*
* @return string
*/
public static function concatenatePaths($paths)
@@ -1062,6 +1032,8 @@ class Miscellaneous
$separator = DIRECTORY_SEPARATOR;
foreach ($paths as $path) {
$path = trim($path);
/*
* Empty paths are useless
*/
@@ -1097,7 +1069,6 @@ class Miscellaneous
*/
if ($firstWindowsBased && empty($concatenated)) {
$concatenated = $path;
continue;
}
@@ -1111,12 +1082,11 @@ class Miscellaneous
}
/**
* Removes the starting / beginning directory's separator.
* Removes the starting / beginning directory's separator
*
* @param string $text Text that may contain a directory's separator at the start / beginning
* @param string $separator (optional) The directory's separator, e.g. "/". If is empty (not provided), separator
* provided by operating system will be used.
*
* @return string
*/
public static function removeStartingDirectorySeparator($text, $separator = '')
@@ -1143,12 +1113,11 @@ class Miscellaneous
}
/**
* Removes the ending directory's separator.
* Removes the ending directory's separator
*
* @param string $text Text that may contain a directory's separator at the end
* @param string $separator (optional) The directory's separator, e.g. "/". If is empty (not provided), system's
* separator is used.
*
* @return string
*/
public static function removeEndingDirectorySeparator($text, $separator = '')
@@ -1175,49 +1144,43 @@ class Miscellaneous
}
/**
* Returns safely value of global variable, found in one of the global arrays / variables, e.g. $_GET.
* Returns safely value of global variable, found in one of the global arrays / variables, e.g. $_GET
*
* @param int $globalSourceType Represents the global array / variable. One of constants: INPUT_GET, INPUT_POST,
* INPUT_COOKIE, INPUT_SERVER, or INPUT_ENV.
* @param string $variableName Name of the variable to return value
*
* @return mixed
*/
public static function getSafelyGlobalVariable($globalSourceType, $variableName)
{
$value = filter_input($globalSourceType, $variableName);
if ($value === null) {
if (null === $value) {
$globalSource = null;
switch ($globalSourceType) {
case INPUT_GET:
$globalSource = $_GET;
break;
case INPUT_POST:
$globalSource = $_POST;
break;
case INPUT_COOKIE:
$globalSource = $_COOKIE;
break;
case INPUT_SERVER:
$globalSource = $_SERVER;
break;
case INPUT_ENV:
$globalSource = $_ENV;
break;
}
if ($globalSource !== null && isset($globalSource[$variableName])) {
if (null !== $globalSource && isset($globalSource[$variableName])) {
$value = $globalSource[$variableName];
if (!ini_get('magic_quotes_gpc')) {
@@ -1230,7 +1193,7 @@ class Miscellaneous
}
/**
* Returns a CURL response with parsed HTTP headers as array with "headers", "cookies" and "content" keys.
* Returns a CURL response with parsed HTTP headers as array with "headers", "cookies" and "content" keys
*
* The headers and cookies are parsed and returned as an array, and an array of Cookie objects. Returned array looks
* like this example:
@@ -1255,7 +1218,6 @@ class Miscellaneous
*
* @param string $response the full content of response, including HTTP headers
* @param int $headerSize The length of HTTP headers in content
*
* @return array
*/
public static function getCurlResponseWithHeaders($response, $headerSize)
@@ -1272,7 +1234,7 @@ class Miscellaneous
/*
* First line is only HTTP status and is unneeded so skip it
*/
if ($i === 0) {
if (0 === $i) {
continue;
}
@@ -1282,7 +1244,7 @@ class Miscellaneous
/*
* If the header is a "set-cookie" let's save it to "cookies" array
*/
if ($key === 'Set-Cookie') {
if ('Set-Cookie' === $key) {
$cookieParameters = explode(';', $value);
$name = '';
@@ -1300,10 +1262,9 @@ class Miscellaneous
* First parameter will be always a cookie name and it's value. It is not needed to run
* further actions for them, so save the values and move to next parameter.
*/
if ($j === 0) {
if (0 === $j) {
$name = trim($param[0]);
$value = trim($param[1]);
continue;
}
@@ -1325,23 +1286,18 @@ class Miscellaneous
switch ($paramName) {
case 'expires':
$expire = $paramValue;
break;
case 'path':
$path = $paramValue;
break;
case 'domain':
$domain = $paramValue;
break;
case 'secure':
$secure = $paramValue;
break;
case 'httponly':
$httpOnly = $paramValue;
break;
}
}
@@ -1351,7 +1307,6 @@ class Miscellaneous
* I must skip to next header as cookies shouldn't be saved in "headers" array.
*/
$cookies[] = new Cookie($name, $value, $expire, $path, $domain, $secure, $httpOnly);
continue;
}
@@ -1370,7 +1325,7 @@ class Miscellaneous
}
/**
* Adds missing the "0" characters to given number until given length is reached.
* Adds missing the "0" characters to given number until given length is reached
*
* Example:
* - number: 201
@@ -1383,7 +1338,6 @@ class Miscellaneous
* @param mixed $number Number for who the "0" characters should be inserted
* @param int $length Wanted length of final number
* @param bool $before (optional) If false, 0 characters will be inserted after given number
*
* @return string
*/
public static function fillMissingZeros($number, $length, $before = true)
@@ -1405,24 +1359,22 @@ class Miscellaneous
for ($i = ($length - $textLength); 0 < $i; --$i) {
if ($before) {
$text = '0'.$text;
$text = '0' . $text;
continue;
}
$text = $text.'0';
$text = $text . '0';
}
return $text;
}
/**
* Returns information if given value is located in interval between given utmost left and right values.
* Returns information if given value is located in interval between given utmost left and right values
*
* @param int|float $value Value to verify
* @param int|float $left Left utmost value of interval
* @param int|float $right Right utmost value of interval
*
* @return bool
*/
public static function isBetween($value, $left, $right)
@@ -1435,7 +1387,6 @@ class Miscellaneous
* If it's an object, full class name is returned.
*
* @param mixed $variable Variable who type should be returned
*
* @return string
*/
public static function getType($variable)
@@ -1454,12 +1405,11 @@ class Miscellaneous
* @param int $colorComponent Color's component to verify. Decimal value, e.g. 255.
* @param bool $asHexadecimal (optional) If is set to true, hexadecimal value is returned (default behaviour).
* Otherwise - decimal.
*
* @return int|string
*/
public static function getValidColorComponent($colorComponent, $asHexadecimal = true)
{
$colorComponent = (int) $colorComponent;
$colorComponent = (int)$colorComponent;
if ($colorComponent < 0 || $colorComponent > 255) {
$colorComponent = 0;
@@ -1468,7 +1418,7 @@ class Miscellaneous
if ($asHexadecimal) {
$hexadecimal = dechex($colorComponent);
if (strlen($hexadecimal) == 1) {
if (1 == strlen($hexadecimal)) {
return sprintf('0%s', $hexadecimal, $hexadecimal);
}
@@ -1479,10 +1429,9 @@ class Miscellaneous
}
/**
* Returns inverted value of color for given color.
* Returns inverted value of color for given color
*
* @param string $color Hexadecimal value of color to invert (with or without hash), e.g. "dd244c" or "#22a5fe"
*
* @return string
*/
public static function getInvertedColor($color)
@@ -1524,4 +1473,37 @@ class Miscellaneous
return $invertedColor;
}
/**
* Returns project's root path.
* Looks for directory that contains composer.json.
*
* @return string
*/
public static function getProjectRootPath()
{
$projectRootPath = '';
$fileName = 'composer.json';
$directoryPath = __DIR__;
/*
* Path of directory it's not the path of last directory?
*/
while (DIRECTORY_SEPARATOR !== $directoryPath) {
$filePath = static::concatenatePaths($directoryPath, $fileName);
/*
* Is here file we are looking for?
* Maybe it's a project's root path
*/
if (file_exists($filePath)) {
$projectRootPath = $directoryPath;
}
$directoryPath = dirname($directoryPath);
}
return $projectRootPath;
}
}

View File

@@ -15,7 +15,7 @@ use Doctrine\ORM\Query\Parameter;
use Doctrine\ORM\QueryBuilder;
/**
* Useful methods for query builder (the Doctrine's QueryBuilder class).
* Useful methods for query builder (the Doctrine's QueryBuilder class)
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
@@ -27,7 +27,6 @@ class QueryBuilderUtility
* If null is returned, alias was not found.
*
* @param QueryBuilder $queryBuilder The query builder to retrieve root alias
*
* @return null|string
*/
public static function getRootAlias(QueryBuilder $queryBuilder)
@@ -48,7 +47,6 @@ class QueryBuilderUtility
*
* @param QueryBuilder $queryBuilder The query builder to verify
* @param string $property Name of property that maybe is joined
*
* @return null|string
*/
public static function getJoinedPropertyAlias(QueryBuilder $queryBuilder, $property)
@@ -77,14 +75,13 @@ class QueryBuilderUtility
}
/**
* Sets the WHERE criteria in given query builder.
* Sets the WHERE criteria in given query builder
*
* @param QueryBuilder $queryBuilder The query builder
* @param array $criteria (optional) The criteria used in WHERE clause. It may simple array with pairs
* key-value or an array of arrays where second element of sub-array is the
* comparison operator. Example below.
* @param string $alias (optional) Alias used in the query
*
* @return QueryBuilder
*
* Example of the $criteria argument:
@@ -111,7 +108,7 @@ class QueryBuilderUtility
$compareOperator = '=';
if (is_array($value) && !empty($value)) {
if (count($value) == 2) {
if (2 == count($value)) {
$compareOperator = $value[1];
}
@@ -120,7 +117,7 @@ class QueryBuilderUtility
$predicate = sprintf('%s.%s %s :%s', $alias, $column, $compareOperator, $column);
if ($value === null) {
if (null === $value) {
$predicate = $queryBuilder->expr()->isNull(sprintf('%s.%s', $alias, $column));
unset($criteria[$column]);
} else {
@@ -135,13 +132,12 @@ class QueryBuilderUtility
}
/**
* Deletes given entities.
* Deletes given entities
*
* @param EntityManager $entityManager The entity manager
* @param array|ArrayCollection $entities The entities to delete
* @param bool $flushDeleted (optional) If is set to true, flushes the deleted objects.
* Otherwise - not.
*
* @return bool
*/
public static function deleteEntities(EntityManager $entityManager, $entities, $flushDeleted = true)
@@ -175,7 +171,6 @@ class QueryBuilderUtility
* @param QueryBuilder $queryBuilder The query builder
* @param array|ArrayCollection $parameters Parameters to add. Collection of instances of
* Doctrine\ORM\Query\Parameter class or an array with key-value pairs.
*
* @return QueryBuilder
*/
public static function addParameters(QueryBuilder $queryBuilder, $parameters)

View File

@@ -21,7 +21,7 @@ use ReflectionObject;
use ReflectionProperty;
/**
* Useful reflection methods.
* Useful reflection methods
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
@@ -29,12 +29,11 @@ use ReflectionProperty;
class Reflection
{
/**
* Returns names of methods for given class / object.
* Returns names of methods for given class / object
*
* @param object|string $class The object or name of object's class
* @param bool $withoutInheritance (optional) If is set to true, only methods for given class are returned.
* Otherwise - all methods, with inherited methods too.
*
* @return array
*/
public static function getMethods($class, $withoutInheritance = false)
@@ -62,10 +61,9 @@ class Reflection
}
/**
* Returns constants of given class / object.
* Returns constants of given class / object
*
* @param object|string $class The object or name of object's class
*
* @return array
*/
public static function getConstants($class)
@@ -80,7 +78,6 @@ class Reflection
* Values of constants should be integers.
*
* @param object|string $class The object or name of object's class
*
* @return int|null
*/
public static function getMaxNumberConstant($class)
@@ -103,11 +100,10 @@ class Reflection
}
/**
* Returns information if given class / object has given method.
* Returns information if given class / object has given method
*
* @param object|string $class The object or name of object's class
* @param string $method Name of the method to find
*
* @return bool
*/
public static function hasMethod($class, $method)
@@ -118,11 +114,10 @@ class Reflection
}
/**
* Returns information if given class / object has given property.
* Returns information if given class / object has given property
*
* @param object|string $class The object or name of object's class
* @param string $property Name of the property to find
*
* @return bool
*/
public static function hasProperty($class, $property)
@@ -133,11 +128,10 @@ class Reflection
}
/**
* Returns information if given class / object has given constant.
* Returns information if given class / object has given constant
*
* @param object|string $class The object or name of object's class
* @param string $constant Name of the constant to find
*
* @return bool
*/
public static function hasConstant($class, $constant)
@@ -148,11 +142,10 @@ class Reflection
}
/**
* Returns value of given constant.
* Returns value of given constant
*
* @param object|string $class The object or name of object's class
* @param string $constant Name of the constant that contains a value
*
* @return mixed
*/
public static function getConstantValue($class, $constant)
@@ -175,7 +168,6 @@ class Reflection
* dot-separated, e.g. "invoice.user.email".
* @param bool $force (optional) If is set to true, try to retrieve value even if the object doesn't have
* property. Otherwise - not.
*
* @return mixed
*/
public static function getPropertyValue($object, $property, $force = false)
@@ -209,7 +201,7 @@ class Reflection
* Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* 2016-11-07
*/
if ($object !== null) {
if (null !== $object) {
unset($exploded[0]);
$property = implode('.', $exploded);
@@ -249,13 +241,12 @@ class Reflection
if ($class->hasMethod($method)) {
$value = $object->{$method}();
$valueFound = true;
break;
}
}
}
if (!$valueFound && $reflectionProperty !== null) {
if (!$valueFound && null !== $reflectionProperty) {
/*
* Oops, we have got exception.
*
@@ -280,7 +271,6 @@ class Reflection
* @param string $property Name of the property that contains a value
* @param bool $force (optional) If is set to true, try to retrieve value even if the
* object does not have property. Otherwise - not.
*
* @return array
*/
public static function getPropertyValues($objects, $property, $force = false)
@@ -295,7 +285,7 @@ class Reflection
foreach ($objects as $entity) {
$value = self::getPropertyValue($entity, $property, $force);
if ($value !== null) {
if (null !== $value) {
$values[] = $value;
}
}
@@ -304,12 +294,11 @@ class Reflection
}
/**
* Returns a class name for given source.
* Returns a class name for given source
*
* @param array|object|string $source An array of objects, namespaces, object or namespace
* @param bool $withoutNamespace (optional) If is set to true, namespace is omitted. Otherwise -
* not, full name of class is returned, with namespace.
*
* @return string|null
*/
public static function getClassName($source, $withoutNamespace = false)
@@ -356,7 +345,7 @@ class Reflection
if ($withoutNamespace) {
$classOnly = Miscellaneous::getLastElementOfString($name, '\\');
if ($classOnly !== null) {
if (null !== $classOnly) {
$name = $classOnly;
}
@@ -367,10 +356,9 @@ class Reflection
}
/**
* Returns namespace of class for given source.
* Returns namespace of class for given source
*
* @param array|object|string $source An array of objects, namespaces, object or namespace
*
* @return string
*/
public static function getClassNamespace($source)
@@ -391,11 +379,10 @@ class Reflection
}
/**
* Returns information if given interface is implemented by given class / object.
* Returns information if given interface is implemented by given class / object
*
* @param array|object|string $source An array of objects, namespaces, object or namespace
* @param string $interface The interface that should be implemented
*
* @return bool
*/
public static function isInterfaceImplemented($source, $interface)
@@ -407,11 +394,10 @@ class Reflection
}
/**
* Returns information if given child class is a subclass of given parent class.
* Returns information if given child class is a subclass of given parent class
*
* @param array|object|string $childClass The child class. An array of objects, namespaces, object or namespace.
* @param array|object|string $parentClass The parent class. An array of objects, namespaces, object or namespace.
*
* @return bool
*/
public static function isChildOfClass($childClass, $parentClass)
@@ -429,35 +415,47 @@ class Reflection
}
/**
* Returns given object properties.
*
* @param array|object|string $source An array of objects, namespaces, object or namespace
* @param int $filter (optional) Filter of properties. Uses ReflectionProperty class constants.
* By default all properties are returned.
* Returns given object properties
*
* @param array|object|string $source An array of objects, namespaces, object or namespace
* @param int $filter (optional) Filter of properties. Uses ReflectionProperty class
* constants. By default all properties are returned.
* @param bool $includeParents (optional) If is set to true, properties of parent classes are
* included (recursively). Otherwise - not.
* @return array|ReflectionProperty
*/
public static function getProperties($source, $filter = null)
public static function getProperties($source, $filter = null, $includeParents = false)
{
$className = self::getClassName($source);
$reflection = new ReflectionClass($className);
if ($filter === null) {
if (null === $filter) {
$filter = ReflectionProperty::IS_PRIVATE
+ ReflectionProperty::IS_PROTECTED
+ ReflectionProperty::IS_PUBLIC
+ ReflectionProperty::IS_STATIC;
}
return $reflection->getProperties($filter);
$properties = $reflection->getProperties($filter);
$parentProperties = [];
if ($includeParents) {
$parent = self::getParentClass($source);
if (false !== $parent) {
$parentClass = $parent->getName();
$parentProperties = self::getProperties($parentClass, $filter, $includeParents);
}
}
return array_merge($properties, $parentProperties);
}
/**
* Returns a parent class.
* Returns a parent class or false if there is no parent class
*
* @param array|object|string $source An array of objects, namespaces, object or namespace
*
* @return ReflectionClass
* @return ReflectionClass|bool
*/
public static function getParentClass($source)
{
@@ -473,9 +471,7 @@ class Reflection
*
* @param array|object|string $class Class who child classes should be returned. An array of objects, strings,
* object or string.
*
* @return array|null
*
* @throws CannotResolveClassNameException
*/
public static function getChildClasses($class)
@@ -495,7 +491,7 @@ class Reflection
/*
* Oops, cannot resolve class
*/
if ($className === null) {
if (null === $className) {
throw new CannotResolveClassNameException($class);
}
@@ -530,7 +526,6 @@ class Reflection
*
* @param array|object|string $parentClass Class who child class should be returned. An array of objects,
* namespaces, object or namespace.
*
* @return mixed
*
* @throws MissingChildClassesException
@@ -560,13 +555,12 @@ class Reflection
}
/**
* Returns property, the ReflectionProperty instance, of given object.
* Returns property, the ReflectionProperty instance, of given object
*
* @param array|object|string $class An array of objects, namespaces, object or namespace
* @param string $property Name of the property
* @param int $filter (optional) Filter of properties. Uses ReflectionProperty class constants.
* By default all properties are allowed / processed.
*
* @return null|ReflectionProperty
*/
public static function getProperty($class, $property, $filter = null)
@@ -587,15 +581,13 @@ class Reflection
}
/**
* Returns information if given class / object uses / implements given trait.
* Returns information if given class / object uses / implements given trait
*
* @param array|object|string $class An array of objects, namespaces, object or namespace
* @param array|string $trait An array of strings or string
* @param bool $verifyParents If is set to true, parent classes are verified if they use given
* trait. Otherwise - not.
*
* @return bool|null
*
* @throws CannotResolveClassNameException
*/
public static function usesTrait($class, $trait, $verifyParents = false)
@@ -625,7 +617,7 @@ class Reflection
if (!$uses && $verifyParents) {
$parentClassName = self::getParentClassName($className);
if ($parentClassName !== null) {
if (null !== $parentClassName) {
return self::usesTrait($parentClassName, $trait, true);
}
}
@@ -638,7 +630,6 @@ class Reflection
* If given class does not extend another, returns null.
*
* @param array|object|string $class An array of objects, namespaces, object or namespace
*
* @return string|null
*/
public static function getParentClassName($class)
@@ -647,7 +638,7 @@ class Reflection
$reflection = new ReflectionClass($className);
$parentClass = $reflection->getParentClass();
if ($parentClass === null || $parentClass === false) {
if (null === $parentClass || false === $parentClass) {
return null;
}

View File

@@ -12,7 +12,7 @@ use Meritoo\Common\Exception\Regex\IncorrectColorHexLengthException;
use Meritoo\Common\Exception\Regex\InvalidColorHexValueException;
/**
* Useful regular expressions methods.
* Useful regular expressions methods
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
@@ -20,30 +20,29 @@ use Meritoo\Common\Exception\Regex\InvalidColorHexValueException;
class Regex
{
/**
* Patterns used to validate / verify values.
* Patterns used to validate / verify values
*
* @var array
*/
private static $patterns = [
'email' => '/[\w-]{2,}@[\w-]+\.[\w]{2,}+/',
'phone' => '/^\+?[0-9 ]+$/',
'camelCasePart' => '/([a-z]|[A-Z]){1}[a-z]*/',
'urlProtocol' => '/^([a-z]+:\/\/)',
'urlDomain' => '([\da-z\.-]+)\.([a-z\.]{2,6})(\/)?([\w\.\-]*)?(\?)?([\w \.\-\/=&]*)\/?$/i',
'letterOrDigit' => '/[a-zA-Z0-9]+/',
'htmlEntity' => '/&[a-z0-9]+;/',
'fileName' => '/.+\.\w+$/',
'isQuoted' => '/^[\'"]{1}.+[\'"]{1}$/',
'email' => '/[\w-]{2,}@[\w-]+\.[\w]{2,}+/',
'phone' => '/^\+?[0-9 ]+$/',
'camelCasePart' => '/([a-z]|[A-Z]){1}[a-z]*/',
'urlProtocol' => '/^([a-z]+:\/\/)',
'urlDomain' => '([\da-z\.-]+)\.([a-z\.]{2,6})(\/)?([\w\.\-]*)?(\?)?([\w \.\-\/=&]*)\/?$/i',
'letterOrDigit' => '/[a-zA-Z0-9]+/',
'htmlEntity' => '/&[a-z0-9]+;/',
'fileName' => '/.+\.\w+$/',
'isQuoted' => '/^[\'"]{1}.+[\'"]{1}$/',
'windowsBasedPath' => '/^[A-Z]{1}:\\\.*$/',
'money' => '/^[-+]?\d+([\.,]{1}\d*)?$/',
'color' => '/^[a-f0-9]{6}$/i',
'money' => '/^[-+]?\d+([\.,]{1}\d*)?$/',
'color' => '/^[a-f0-9]{6}$/i',
];
/**
* Returns information if given e-mail address is valid.
* Returns information if given e-mail address is valid
*
* @param string $email E-mail address to validate / verify
*
* @return bool
*
* Examples:
@@ -59,14 +58,13 @@ class Regex
{
$pattern = self::getEmailPattern();
return (bool) preg_match($pattern, $email);
return (bool)preg_match($pattern, $email);
}
/**
* Returns information if given tax ID (in polish: NIP) is valid.
* Returns information if given tax ID (in polish: NIP) is valid
*
* @param string $taxidString Tax ID (NIP) string
*
* @return bool
*/
public static function isValidTaxid($taxidString)
@@ -86,7 +84,7 @@ class Regex
$taxid = preg_replace('/[\s-]/', '', $taxidString);
$sum = 0;
if (strlen($taxid) == 10 && is_numeric($taxid)) {
if (10 == strlen($taxid) && is_numeric($taxid)) {
for ($x = 0; $x <= 8; ++$x) {
$sum += $taxid[$x] * $weights[$x];
}
@@ -101,43 +99,40 @@ class Regex
}
/**
* Returns information if given url address is valid.
* Returns information if given url address is valid
*
* @param string $url The url to validate / verify
* @param bool $requireProtocol (optional) If is set to true, the protocol is required to be passed in the url.
* Otherwise - not.
*
* @return bool
*/
public static function isValidUrl($url, $requireProtocol = false)
{
$pattern = self::getUrlPattern($requireProtocol);
return (bool) preg_match($pattern, $url);
return (bool)preg_match($pattern, $url);
}
/**
* Returns information if given phone number is valid.
* Returns information if given phone number is valid
*
* @param string $phoneNumber The phone number to validate / verify
*
* @return bool
*/
public static function isValidPhoneNumber($phoneNumber)
{
$pattern = self::getPhoneNumberPattern();
return (bool) preg_match($pattern, $phoneNumber);
return (bool)preg_match($pattern, $phoneNumber);
}
/**
* Returns array values that matches given pattern (or values that keys matches).
* Returns array values that matches given pattern (or values that keys matches)
*
* @param string $pattern Pattern to match
* @param array $dataArray The array
* @param bool $itsKeyPattern (optional) If is set to true, keys are checks if they match pattern. Otherwise -
* values are checks.
*
* @return array
*/
public static function getArrayValuesByPattern($pattern, $dataArray, $itsKeyPattern = false)
@@ -162,7 +157,7 @@ class Regex
}
/**
* Filters array by given expression and column.
* Filters array by given expression and column
*
* Expression can be simple compare expression, like ' == 2', or regular expression.
* Returns filtered array.
@@ -172,7 +167,6 @@ class Regex
* @param string $filterExpression Filter expression, e.g. '== 2' or '!= \'home\''
* @param bool $itsRegularExpression (optional) If is set to true, means that filter expression is a
* regular expression
*
* @return array
*/
public static function arrayFilter($array, $arrayColumnKey, $filterExpression, $itsRegularExpression = false)
@@ -188,18 +182,18 @@ class Regex
if ($itsRegularExpression) {
$matches = [];
$pattern = '|'.$filterExpression.'|';
$pattern = '|' . $filterExpression . '|';
$matchesCount = preg_match($pattern, $value, $matches);
$remove = $matchesCount == 0;
$remove = 0 == $matchesCount;
} else {
if ($value == '') {
if ('' == $value) {
$value = '\'\'';
} elseif (is_string($value)) {
$value = '\''.$value.'\'';
$value = '\'' . $value . '\'';
}
eval('$isTrue = '.$value.$filterExpression.';');
eval('$isTrue = ' . $value . $filterExpression . ';');
/* @var bool $isTrue */
$remove = !$isTrue;
@@ -223,7 +217,6 @@ class Regex
* @param string $subject The string to check
* @param bool $mustAllMatch (optional) If is set to true, $subject must match all $patterns. Otherwise -
* not.
*
* @return bool
*/
public static function pregMultiMatch($patterns, $subject, $mustAllMatch = false)
@@ -238,14 +231,13 @@ class Regex
foreach ($patterns as $pattern) {
$matches = [];
$matched = (bool) preg_match_all($pattern, $subject, $matches);
$matched = (bool)preg_match_all($pattern, $subject, $matches);
if ($mustAllMatch) {
$effect = $effect && $matched;
} else {
if ($matched) {
$effect = $matched;
break;
}
}
@@ -256,12 +248,11 @@ class Regex
}
/**
* Returns string in human readable style generated from given camel case string / text.
* Returns string in human readable style generated from given camel case string / text
*
* @param string $string The string / text to convert
* @param bool $applyUpperCaseFirst (optional) If is set to true, first word / element from the converted
* string is uppercased. Otherwise - not.
*
* @return string
*/
public static function camelCase2humanReadable($string, $applyUpperCaseFirst = false)
@@ -286,10 +277,9 @@ class Regex
}
/**
* Returns parts of given camel case string / text.
* Returns parts of given camel case string / text
*
* @param string $string The string / text to retrieve parts
*
* @return array
*/
public static function getCamelCaseParts($string)
@@ -302,12 +292,11 @@ class Regex
}
/**
* Returns simple, lowercase string generated from given camel case string / text.
* Returns simple, lowercase string generated from given camel case string / text
*
* @param string $string The string / text to convert
* @param string $separator (optional) Separator used to concatenate parts of the string, e.g. '-' or '_'
* @param bool $applyLowercase (optional) If is set to true, returned string will be lowercased. Otherwise - not.
*
* @return string
*/
public static function camelCase2simpleLowercase($string, $separator = '', $applyLowercase = true)
@@ -326,7 +315,7 @@ class Regex
}
/**
* Returns pattern used to validate / verify or get e-mail address.
* Returns pattern used to validate / verify or get e-mail address
*
* @return string
*/
@@ -336,7 +325,7 @@ class Regex
}
/**
* Returns pattern used to validate / verify or get phone number.
* Returns pattern used to validate / verify or get phone number
*
* @return string
*/
@@ -346,7 +335,7 @@ class Regex
}
/**
* Returns pattern used to validate / verify or get camel case parts of string.
* Returns pattern used to validate / verify or get camel case parts of string
*
* @return string
*/
@@ -356,11 +345,10 @@ class Regex
}
/**
* Returns pattern used to validate / verify or get url address.
* Returns pattern used to validate / verify or get url address
*
* @param bool $requireProtocol (optional) If is set to true, the protocol is required to be passed in the url.
* Otherwise - not.
*
* @return string
*/
public static function getUrlPattern($requireProtocol = false)
@@ -377,11 +365,10 @@ class Regex
}
/**
* Returns information if given path is sub-path of another path, e.g. path file is owned by path of directory.
* Returns information if given path is sub-path of another path, e.g. path file is owned by path of directory
*
* @param string $subPath Path to verify, probably sub-path
* @param string $path Main / parent path
*
* @return bool
*/
public static function isSubPathOf($subPath, $path)
@@ -408,11 +395,11 @@ class Regex
$pattern = sprintf('/^%s.*/', $prepared);
return (bool) preg_match($pattern, $subPath);
return (bool)preg_match($pattern, $subPath);
}
/**
* Returns pattern used to validate / verify letter or digit.
* Returns pattern used to validate / verify letter or digit
*
* @return string
*/
@@ -422,66 +409,62 @@ class Regex
}
/**
* Returns information if given character is a letter or digit.
* Returns information if given character is a letter or digit
*
* @param string $char Character to check
*
* @return bool
*/
public static function isLetterOrDigit($char)
{
$pattern = self::getLetterOrDigitPattern();
return is_scalar($char) && (bool) preg_match($pattern, $char);
return is_scalar($char) && (bool)preg_match($pattern, $char);
}
/**
* Returns information if the string starts with given beginning / characters.
* Returns information if the string starts with given beginning / characters
*
* @param string $string String to check
* @param string $beginning The beginning of string, one or more characters
*
* @return bool
*/
public static function startsWith($string, $beginning)
{
if (!empty($string) && !empty($beginning)) {
if (strlen($beginning) == 1 && !self::isLetterOrDigit($beginning)) {
$beginning = '\\'.$beginning;
if (1 == strlen($beginning) && !self::isLetterOrDigit($beginning)) {
$beginning = '\\' . $beginning;
}
$pattern = sprintf('|^%s|', $beginning);
return (bool) preg_match($pattern, $string);
return (bool)preg_match($pattern, $string);
}
return false;
}
/**
* Returns information if the string ends with given ending / characters.
* Returns information if the string ends with given ending / characters
*
* @param string $string String to check
* @param string $ending The ending of string, one or more characters
*
* @return bool
*/
public static function endsWith($string, $ending)
{
if (strlen($ending) == 1 && !self::isLetterOrDigit($ending)) {
$ending = '\\'.$ending;
if (1 == strlen($ending) && !self::isLetterOrDigit($ending)) {
$ending = '\\' . $ending;
}
return (bool) preg_match('|'.$ending.'$|', $string);
return (bool)preg_match('|' . $ending . '$|', $string);
}
/**
* Returns information if the string starts with directory's separator.
* Returns information if the string starts with directory's separator
*
* @param string $string String that may contain a directory's separator at the start / beginning
* @param string $separator (optional) The directory's separator, e.g. "/". If is empty (not provided), system's
* separator is used.
*
* @return bool
*/
public static function startsWithDirectorySeparator($string, $separator = '')
@@ -494,12 +477,11 @@ class Regex
}
/**
* Returns information if the string ends with directory's separator.
* Returns information if the string ends with directory's separator
*
* @param string $text String that may contain a directory's separator at the end
* @param string $separator (optional) The directory's separator, e.g. "/". If is empty (not provided), system's
* separator is used.
*
* @return string
*/
public static function endsWithDirectorySeparator($text, $separator = '')
@@ -512,20 +494,19 @@ class Regex
}
/**
* Returns information if uri contains parameter.
* Returns information if uri contains parameter
*
* @param string $uri Uri string (e.g. $_SERVER['REQUEST_URI'])
* @param string $parameterName Uri parameter name
*
* @return bool
*/
public static function isSetUriParameter($uri, $parameterName)
{
return (bool) preg_match('|[?&]{1}'.$parameterName.'=|', $uri); // e.g. ?name=phil&type=4 -> '$type='
return (bool)preg_match('|[?&]{1}' . $parameterName . '=|', $uri); // e.g. ?name=phil&type=4 -> '$type='
}
/**
* Returns pattern used to validate / verify html entity.
* Returns pattern used to validate / verify html entity
*
* @return string
*/
@@ -535,38 +516,36 @@ class Regex
}
/**
* Returns information if the string contains html entities.
* Returns information if the string contains html entities
*
* @param string $string String to check
*
* @return bool
*/
public static function containsEntities($string)
{
$pattern = self::getHtmlEntityPattern();
return (bool) preg_match_all($pattern, $string);
return (bool)preg_match_all($pattern, $string);
}
/**
* Returns information if one string contains another string.
* Returns information if one string contains another string
*
* @param string $haystack The string to search in
* @param string $needle The string to be search for
*
* @return bool
*/
public static function contains($haystack, $needle)
{
if (strlen($needle) == 1 && !self::isLetterOrDigit($needle)) {
$needle = '\\'.$needle;
if (1 == strlen($needle) && !self::isLetterOrDigit($needle)) {
$needle = '\\' . $needle;
}
return (bool) preg_match('|.*'.$needle.'.*|', $haystack);
return (bool)preg_match('|.*' . $needle . '.*|', $haystack);
}
/**
* Returns pattern used to validate / verify name of file.
* Returns pattern used to validate / verify name of file
*
* @return string
*/
@@ -580,18 +559,17 @@ class Regex
* Verifies if given name contains a dot and an extension, e.g. "My File 001.jpg".
*
* @param string $fileName Name of file to check. It may be path of file also.
*
* @return bool
*/
public static function isFileName($fileName)
{
$pattern = self::getFileNamePattern();
return (bool) preg_match($pattern, $fileName);
return (bool)preg_match($pattern, $fileName);
}
/**
* Returns pattern used to validate / verify if value is quoted (by apostrophes or quotation marks).
* Returns pattern used to validate / verify if value is quoted (by apostrophes or quotation marks)
*
* @return string
*/
@@ -601,21 +579,20 @@ class Regex
}
/**
* Returns information if given value is quoted (by apostrophes or quotation marks).
* Returns information if given value is quoted (by apostrophes or quotation marks)
*
* @param mixed $value The value to check
*
* @return bool
*/
public static function isQuoted($value)
{
$pattern = self::getIsQuotedPattern();
return is_scalar($value) && (bool) preg_match($pattern, $value);
return is_scalar($value) && (bool)preg_match($pattern, $value);
}
/**
* Returns pattern used to validate / verify if given path is a Windows-based path, e.g. "C:\path\to\file.jpg".
* Returns pattern used to validate / verify if given path is a Windows-based path, e.g. "C:\path\to\file.jpg"
*
* @return string
*/
@@ -625,24 +602,22 @@ class Regex
}
/**
* Returns information if given path is a Windows-based path, e.g. "C:\path\to\file.jpg".
* Returns information if given path is a Windows-based path, e.g. "C:\path\to\file.jpg"
*
* @param string $path The path to verify
*
* @return bool
*/
public static function isWindowsBasedPath($path)
{
$pattern = self::getWindowsBasedPathPattern();
return (bool) preg_match($pattern, $path);
return (bool)preg_match($pattern, $path);
}
/**
* Returns information if given NIP number is valid.
* Returns information if given NIP number is valid
*
* @param string $nip A given NIP number
*
* @return bool
*
* @see https://pl.wikipedia.org/wiki/NIP#Znaczenie_numeru
@@ -678,13 +653,13 @@ class Regex
}
$modulo = $sum % 11;
$numberControl = ($modulo == 10) ? 0 : $modulo;
$numberControl = (10 == $modulo) ? 0 : $modulo;
return $numberControl == $nip[9];
}
/**
* Returns pattern used to validate / verify if given value is money-related value.
* Returns pattern used to validate / verify if given value is money-related value
*
* @return string
*/
@@ -694,17 +669,16 @@ class Regex
}
/**
* Returns information if given value is valid money-related value.
* Returns information if given value is valid money-related value
*
* @param mixed $value Value to verify
*
* @return bool
*/
public static function isValidMoneyValue($value)
{
$pattern = self::getMoneyPattern();
return (bool) preg_match($pattern, $value);
return (bool)preg_match($pattern, $value);
}
/**
@@ -714,7 +688,6 @@ class Regex
* @param string $color Color to verify
* @param bool $throwException (optional) If is set to true, throws an exception if given color is invalid
* (default behaviour). Otherwise - not.
*
* @return string|bool
*
* @throws IncorrectColorHexLengthException
@@ -725,10 +698,10 @@ class Regex
$color = Miscellaneous::replace($color, '/#/', '');
$length = strlen($color);
if ($length === 3) {
if (3 === $length) {
$color = Miscellaneous::replace($color, '/(.)(.)(.)/', '$1$1$2$2$3$3');
} else {
if ($length !== 6) {
if (6 !== $length) {
if ($throwException) {
throw new IncorrectColorHexLengthException($color);
}
@@ -738,7 +711,7 @@ class Regex
}
$pattern = self::$patterns['color'];
$match = (bool) preg_match($pattern, $color);
$match = (bool)preg_match($pattern, $color);
if (!$match) {
if ($throwException) {

View File

@@ -12,7 +12,7 @@ use Doctrine\ORM\EntityRepository;
use Doctrine\ORM\QueryBuilder;
/**
* Useful methods for repository.
* Useful methods for repository
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
@@ -20,7 +20,7 @@ use Doctrine\ORM\QueryBuilder;
class Repository
{
/**
* Replenishes positions of given items.
* Replenishes positions of given items
*
* @param array $items The items
* @param bool $asLast (optional) If is set to true, items are placed at the end. Otherwise - at the top.
@@ -31,14 +31,14 @@ class Repository
{
$position = self::getExtremePosition($items, $asLast);
if ($position === null && $force) {
if (null === $position && $force) {
$position = 0;
}
if ($position !== null && !empty($items)) {
if (null !== $position && !empty($items)) {
foreach ($items as $item) {
if (method_exists($item, 'getPosition')) {
if ($item->getPosition() === null) {
if (null === $item->getPosition()) {
if ($asLast) {
++$position;
} else {
@@ -55,11 +55,10 @@ class Repository
}
/**
* Returns extreme position (max or min) of given items.
* Returns extreme position (max or min) of given items
*
* @param array $items The items
* @param bool $max (optional) If is set to true, maximum value is returned. Otherwise - minimum.
*
* @return int
*/
public static function getExtremePosition($items, $max = true)
@@ -94,7 +93,6 @@ class Repository
* @param EntityRepository $repository Repository of the entity
* @param string $property (optional) Name of property used by the ORDER BY clause
* @param string $direction (optional) Direction used by the ORDER BY clause ("ASC" or "DESC")
*
* @return QueryBuilder
*/
public static function getEntityOrderedQueryBuilder(

View File

@@ -9,7 +9,7 @@
namespace Meritoo\Common\Utilities;
/**
* Useful uri methods (only static functions).
* Useful uri methods (only static functions)
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
@@ -17,10 +17,9 @@ namespace Meritoo\Common\Utilities;
class Uri
{
/**
* Returns full uri string.
* Returns full uri string
*
* @param bool $withoutHost (optional) If is set to true, means that host / server name is omitted
*
* @return string
*/
public static function getFullUri($withoutHost = false)
@@ -31,14 +30,13 @@ class Uri
return $effect;
}
return self::getServerNameOrIp(true).$effect;
return self::getServerNameOrIp(true) . $effect;
}
/**
* Returns server name or IP address.
* Returns server name or IP address
*
* @param bool $withProtocol (optional) If is set to true, protocol name is included. Otherwise isn't.
*
* @return string
*/
public static function getServerNameOrIp($withProtocol = false)
@@ -46,14 +44,14 @@ class Uri
$protocol = '';
if ($withProtocol) {
$protocol .= self::getProtocolName().'://';
$protocol .= self::getProtocolName() . '://';
}
return $protocol.Miscellaneous::getSafelyGlobalVariable(INPUT_SERVER, 'HTTP_HOST');
return $protocol . Miscellaneous::getSafelyGlobalVariable(INPUT_SERVER, 'HTTP_HOST');
}
/**
* Returns protocol name.
* Returns protocol name
*
* @return string
*/
@@ -78,7 +76,7 @@ class Uri
}
/**
* Returns http referer uri.
* Returns http referer uri
*
* @return string
*/
@@ -94,7 +92,7 @@ class Uri
}
/**
* Returns user's IP address.
* Returns user's IP address
*
* @return string
*/
@@ -104,11 +102,10 @@ class Uri
}
/**
* Returns name and version of user's web browser.
* Returns name and version of user's web browser
*
* @param bool $withVersion (optional) If is set to true, version of the browser is returned too. Otherwise -
* name only.
*
* @return string
*/
public static function getUserWebBrowserName($withVersion = false)
@@ -117,9 +114,9 @@ class Uri
$knownBrowsers = [
'Firefox/([\d\.]+)$' => 'Mozilla Firefox',
'OPR/([\d\.]+)$' => 'Opera',
'Chrome/([\d\.]+)$' => 'Google Chrome',
'Safari/([\d\.]+)$' => 'Apple Safari',
'OPR/([\d\.]+)$' => 'Opera',
'Chrome/([\d\.]+)$' => 'Google Chrome',
'Safari/([\d\.]+)$' => 'Apple Safari',
];
foreach ($knownBrowsers as $pattern => $browserName) {
@@ -141,7 +138,7 @@ class Uri
}
/**
* Returns user's web browser information.
* Returns user's web browser information
*
* @return string
*
@@ -167,7 +164,7 @@ class Uri
}
/**
* Returns name of user's operating system.
* Returns name of user's operating system
*
* @return string
*/
@@ -177,8 +174,8 @@ class Uri
$knownSystems = [
'Linux' => 'Linux',
'Win' => 'Windows',
'Mac' => 'Mac OS',
'Win' => 'Windows',
'Mac' => 'Mac OS',
];
foreach ($knownSystems as $pattern => $systemName) {
@@ -194,7 +191,7 @@ class Uri
}
/**
* Returns information if running server is localhost.
* Returns information if running server is localhost
*
* @return bool
*/
@@ -210,10 +207,9 @@ class Uri
}
/**
* Returns information if given url is external, from another server / domain.
* Returns information if given url is external, from another server / domain
*
* @param string $url The url to check
*
* @return bool
*/
public static function isExternalUrl($url)
@@ -225,12 +221,11 @@ class Uri
}
/**
* Replenishes protocol in the given url.
* Replenishes protocol in the given url
*
* @param string $url The url to check and replenish
* @param string $protocol (optional) The protocol which is replenished. If is empty, protocol of current request
* is used.
*
* @return string
*/
public static function replenishProtocol($url, $protocol = '')
@@ -269,12 +264,11 @@ class Uri
}
/**
* Returns url to resource secured by given htpasswd login and password.
* Returns url to resource secured by given htpasswd login and password
*
* @param string $url A path / url to some resource, e.g. page, image, css file
* @param string $user (optional) User name used to log in
* @param string $password (optional) User password used to log in
*
* @return string
*/
public static function getSecuredUrl($url, $user = '', $password = '')
@@ -286,7 +280,7 @@ class Uri
$url = sprintf('/%s', $url);
}
$url = $host.$url;
$url = $host . $url;
if (!empty($user) && !empty($password)) {
$url = sprintf('%s:%s@%s', $user, $password, $url);
@@ -301,14 +295,13 @@ class Uri
*
* @param string $url Url string
* @param string $protocol (optional) Protocol string
*
* @return string
*/
public static function addProtocolToUrl($url, $protocol = 'http')
{
$pattern = sprintf('/^%s.*/', $protocol);
if ((bool) preg_match($pattern, $url)) {
if ((bool)preg_match($pattern, $url)) {
return $url;
}

View File

@@ -13,7 +13,7 @@ use DOMXPath;
use SimpleXMLElement;
/**
* Useful XML-related methods (only static functions).
* Useful XML-related methods (only static functions)
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
@@ -26,7 +26,6 @@ class Xml
*
* @param SimpleXMLElement $element1 First element to merge
* @param SimpleXMLElement $element2 Second element to merge
*
* @return SimpleXMLElement
*/
public static function mergeNodes(SimpleXMLElement $element1, SimpleXMLElement $element2)
@@ -41,7 +40,7 @@ class Xml
$query = $path->query('/*/*');
$nodesCount = $query->length;
if ($nodesCount == 0) {
if (0 == $nodesCount) {
return $element1;
}

View File

@@ -14,7 +14,7 @@ use Meritoo\Common\Test\Base\BaseTestCase;
use Meritoo\Common\Type\OopVisibilityType;
/**
* Tests of the collection of elements.
* Test case of the collection of elements
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
@@ -22,21 +22,21 @@ use Meritoo\Common\Type\OopVisibilityType;
class CollectionTest extends BaseTestCase
{
/**
* An empty collection.
* An empty collection
*
* @var Collection
*/
private $emptyCollection;
/**
* Simple collection.
* Simple collection
*
* @var Collection
*/
private $simpleCollection;
/**
* Elements of simple collection.
* Elements of simple collection
*
* @var array
*/
@@ -306,7 +306,7 @@ class CollectionTest extends BaseTestCase
public function testExistsVisibilityAndArguments()
{
$this->verifyMethodVisibilityAndArguments(Collection::class, 'exists', OopVisibilityType::IS_PRIVATE, 1, 1);
static::assertMethodVisibilityAndArguments(Collection::class, 'exists', OopVisibilityType::IS_PRIVATE, 1, 1);
}
/**

View File

@@ -9,17 +9,23 @@
namespace Meritoo\Common\Test\Exception\Base;
use Meritoo\Common\Exception\Base\UnknownTypeException;
use Meritoo\Common\Test\Base\BaseTestCase;
use Meritoo\Common\Type\Base\BaseType;
use PHPUnit_Framework_TestCase;
use Meritoo\Common\Type\OopVisibilityType;
/**
* Tests of the exception used while type of something is unknown.
* Test case of the exception used while type of something is unknown
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*/
class UnknownTypeExceptionTest extends PHPUnit_Framework_TestCase
class UnknownTypeExceptionTest extends BaseTestCase
{
public function testConstructorVisibilityAndArguments()
{
static::assertConstructorVisibilityAndArguments(UnknownTestTypeException::class, OopVisibilityType::IS_PUBLIC, 1, 1);
}
public function testWithoutException()
{
self::assertEquals('Test 2', (new TestService())->getTranslatedType('test_2'));
@@ -33,7 +39,7 @@ class UnknownTypeExceptionTest extends PHPUnit_Framework_TestCase
}
/**
* Type of something (for testing purposes).
* Type of something (for testing purposes)
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
@@ -46,7 +52,7 @@ class TestType extends BaseType
}
/**
* An exception used while type of something is unknown (for testing purposes).
* An exception used while type of something is unknown (for testing purposes)
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
@@ -54,7 +60,7 @@ class TestType extends BaseType
class UnknownTestTypeException extends UnknownTypeException
{
/**
* Class constructor.
* Class constructor
*
* @param int|string $unknownType The unknown type of something (for testing purposes)
*/
@@ -65,7 +71,7 @@ class UnknownTestTypeException extends UnknownTypeException
}
/**
* Service used together with type of something (for testing purposes).
* Service used together with type of something (for testing purposes)
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
@@ -73,10 +79,9 @@ class UnknownTestTypeException extends UnknownTypeException
class TestService
{
/**
* Returns translated type (for testing purposes).
* Returns translated type (for testing purposes)
*
* @param string $type Type of something (for testing purposes)
*
* @return string
*
* @throws UnknownTestTypeException

View File

@@ -0,0 +1,71 @@
<?php
/**
* (c) Meritoo.pl, http://www.meritoo.pl
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Meritoo\Common\Test\Exception\Date;
use Generator;
use Meritoo\Common\Exception\Date\UnknownDatePartTypeException;
use Meritoo\Common\Test\Base\BaseTestCase;
use Meritoo\Common\Type\DatePartType;
use Meritoo\Common\Type\OopVisibilityType;
/**
* Test case of an exception used while type of date part, e.g. "year", is unknown
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*/
class UnknownDatePartTypeExceptionTest extends BaseTestCase
{
public function testConstructorVisibilityAndArguments()
{
static::assertConstructorVisibilityAndArguments(UnknownDatePartTypeException::class, OopVisibilityType::IS_PUBLIC, 2, 2);
}
/**
* @param string $unknownDatePart Type of date part, e.g. "year". One of DatePartType class constants.
* @param string $value Incorrect value
* @param string $expectedMessage Expected exception's message
*
* @dataProvider provideDatePartAndValue
*/
public function testConstructorMessage($unknownDatePart, $value, $expectedMessage)
{
$exception = new UnknownDatePartTypeException($unknownDatePart, $value);
static::assertEquals($expectedMessage, $exception->getMessage());
}
/**
* Provides type of date part, incorrect value and expected exception's message
*
* @return Generator
*/
public function provideDatePartAndValue()
{
$template = 'The \'%s\' type of date part (with value %s) is unknown. Probably doesn\'t exist or there is a'
. ' typo. You should use one of these types: day, hour, minute, month, second, year.';
yield[
DatePartType::DAY,
'44',
sprintf($template, DatePartType::DAY, '44'),
];
yield[
DatePartType::MONTH,
'22',
sprintf($template, DatePartType::MONTH, '22'),
];
yield[
DatePartType::MINUTE,
'77',
sprintf($template, DatePartType::MINUTE, '77'),
];
}
}

View File

@@ -0,0 +1,60 @@
<?php
/**
* (c) Meritoo.pl, http://www.meritoo.pl
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Meritoo\Common\Test\Exception\File;
use Generator;
use Meritoo\Common\Exception\File\EmptyFileException;
use Meritoo\Common\Test\Base\BaseTestCase;
use Meritoo\Common\Type\OopVisibilityType;
/**
* Test case of an exception used while file with given path is empty (has no content)
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*/
class EmptyFileExceptionTest extends BaseTestCase
{
public function testConstructorVisibilityAndArguments()
{
static::assertConstructorVisibilityAndArguments(EmptyFileException::class, OopVisibilityType::IS_PUBLIC, 1, 1);
}
/**
* @param string $emptyFilePath Path of the empty file
* @param string $expectedMessage Expected exception's message
*
* @dataProvider providePathOfFile
*/
public function testConstructorMessage($emptyFilePath, $expectedMessage)
{
$exception = new EmptyFileException($emptyFilePath);
static::assertEquals($expectedMessage, $exception->getMessage());
}
/**
* Provides path of the empty file and expected exception's message
*
* @return Generator
*/
public function providePathOfFile()
{
$template = 'File with path \'%s\' is empty (has no content). Did you provide path of proper file?';
yield[
'aa/bb/cc',
sprintf($template, 'aa/bb/cc'),
];
yield[
'images/show/car.jpg',
sprintf($template, 'images/show/car.jpg'),
];
}
}

View File

@@ -0,0 +1,33 @@
<?php
/**
* (c) Meritoo.pl, http://www.meritoo.pl
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Meritoo\Common\Test\Exception\File;
use Meritoo\Common\Exception\File\EmptyFilePathException;
use Meritoo\Common\Test\Base\BaseTestCase;
use Meritoo\Common\Type\OopVisibilityType;
/**
* Test case of an exception used while path of given file is empty
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*/
class EmptyFilePathExceptionTest extends BaseTestCase
{
public function testConstructorVisibilityAndArguments()
{
static::assertConstructorVisibilityAndArguments(EmptyFilePathException::class, OopVisibilityType::IS_PUBLIC);
}
public function testConstructorMessage()
{
$exception = new EmptyFilePathException();
static::assertEquals('Path of the file is empty. Did you provide path of proper file?', $exception->getMessage());
}
}

View File

@@ -0,0 +1,60 @@
<?php
/**
* (c) Meritoo.pl, http://www.meritoo.pl
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Meritoo\Common\Test\Exception\File;
use Generator;
use Meritoo\Common\Exception\File\NotExistingFileException;
use Meritoo\Common\Test\Base\BaseTestCase;
use Meritoo\Common\Type\OopVisibilityType;
/**
* Test case of an exception used while file with given path does not exist
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*/
class NotExistingFileExceptionTest extends BaseTestCase
{
public function testConstructorVisibilityAndArguments()
{
static::assertConstructorVisibilityAndArguments(NotExistingFileException::class, OopVisibilityType::IS_PUBLIC, 1, 1);
}
/**
* @param string $notExistingFilePath Path of not existing (or not readable) file
* @param string $expectedMessage Expected exception's message
*
* @dataProvider providePathOfFile
*/
public function testConstructorMessage($notExistingFilePath, $expectedMessage)
{
$exception = new NotExistingFileException($notExistingFilePath);
static::assertEquals($expectedMessage, $exception->getMessage());
}
/**
* Provides path of not existing file and expected exception's message
*
* @return Generator
*/
public function providePathOfFile()
{
$template = 'File with path \'%s\' does not exist (or is not readable). Did you provide path of proper file?';
yield[
'aa/bb/cc',
sprintf($template, 'aa/bb/cc'),
];
yield[
'images/show/car.jpg',
sprintf($template, 'images/show/car.jpg'),
];
}
}

View File

@@ -0,0 +1,65 @@
<?php
/**
* (c) Meritoo.pl, http://www.meritoo.pl
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Meritoo\Common\Test\Exception\Method;
use Generator;
use Meritoo\Common\Exception\Method\DisabledMethodException;
use Meritoo\Common\Test\Base\BaseTestCase;
use Meritoo\Common\Type\OopVisibilityType;
/**
* Test case of an exception used while method cannot be called, because is disabled
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*/
class DisabledMethodExceptionTest extends BaseTestCase
{
public function testConstructorVisibilityAndArguments()
{
static::assertConstructorVisibilityAndArguments(DisabledMethodException::class, OopVisibilityType::IS_PUBLIC, 2, 1);
}
/**
* @param string $disabledMethod Name of the disabled method
* @param string $alternativeMethod Name of the alternative method
* @param string $expectedMessage Expected exception's message
*
* @internal param string $emptyFilePath Path of the empty file
* @dataProvider provideMethodsNames
*/
public function testConstructorMessage($disabledMethod, $alternativeMethod, $expectedMessage)
{
$exception = new DisabledMethodException($disabledMethod, $alternativeMethod);
static::assertEquals($expectedMessage, $exception->getMessage());
}
/**
* Provides name of the disabled method, name of the alternative method and expected exception's message
*
* @return Generator
*/
public function provideMethodsNames()
{
$templateShort = 'Method %s() cannot be called, because is disabled.';
$templateLong = $templateShort . ' Use %s() instead.';
yield[
'FooBar::loremIpsum',
'',
sprintf($templateShort, 'FooBar::loremIpsum'),
];
yield[
'FooBar::loremIpsum',
'AnotherClass::alternativeMethod',
sprintf($templateLong, 'FooBar::loremIpsum', 'AnotherClass::alternativeMethod'),
];
}
}

View File

@@ -0,0 +1,73 @@
<?php
/**
* (c) Meritoo.pl, http://www.meritoo.pl
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Meritoo\Common\Test\Exception\Reflection;
use Generator;
use Meritoo\Common\Exception\Reflection\CannotResolveClassNameException;
use Meritoo\Common\Test\Base\BaseTestCase;
use Meritoo\Common\Type\OopVisibilityType;
/**
* Test case of an exception used while name of class or trait cannot be resolved
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*/
class CannotResolveClassNameExceptionTest extends BaseTestCase
{
public function testConstructorVisibilityAndArguments()
{
static::assertConstructorVisibilityAndArguments(CannotResolveClassNameException::class, OopVisibilityType::IS_PUBLIC, 2, 1);
}
/**
* @param array|object|string $source Source of the class's / trait's name. It can be an array of objects,
* namespaces, object or namespace.
* @param bool $forClass If is set to true, message of this exception for class is prepared.
* Otherwise - for trait.
* @param string $expectedMessage Expected exception's message
*
* @dataProvider provideClassName
*/
public function testConstructorMessage($source, $forClass, $expectedMessage)
{
$exception = new CannotResolveClassNameException($source, $forClass);
static::assertEquals($expectedMessage, $exception->getMessage());
}
/**
* Provides source of the class's / trait's name, information if message of this exception should be prepared for
* class and the expected exception's message
*
* @return Generator
*/
public function provideClassName()
{
yield[
'Not\Existing\Class',
true,
'Name of class from given \'string\' Not\Existing\Class cannot be resolved. Is there everything ok?',
];
yield[
'Not\Existing\Trait',
false,
'Name of trait from given \'string\' Not\Existing\Trait cannot be resolved. Is there everything ok?',
];
yield[
[
new \stdClass(),
new \stdClass(),
],
true,
'Name of class from given \'array\' cannot be resolved. Is there everything ok?',
];
}
}

View File

@@ -0,0 +1,65 @@
<?php
/**
* (c) Meritoo.pl, http://www.meritoo.pl
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Meritoo\Common\Test\Exception\Reflection;
use Generator;
use Meritoo\Common\Exception\Reflection\MissingChildClassesException;
use Meritoo\Common\Test\Base\BaseTestCase;
use Meritoo\Common\Type\OopVisibilityType;
/**
* Test case of an exception used while given class has no child classes
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*/
class MissingChildClassesExceptionTest extends BaseTestCase
{
public function testConstructorVisibilityAndArguments()
{
static::assertConstructorVisibilityAndArguments(MissingChildClassesException::class, OopVisibilityType::IS_PUBLIC, 1, 1);
}
/**
* @param array|object|string $parentClass Class that hasn't child classes, but it should. An array of objects,
* strings, object or string.
* @param string $expectedMessage Expected exception's message
*
* @dataProvider provideParentClass
*/
public function testConstructorMessage($parentClass, $expectedMessage)
{
$exception = new MissingChildClassesException($parentClass);
static::assertEquals($expectedMessage, $exception->getMessage());
}
/**
* Provides name of class that hasn't child classes, but it should, and expected exception's message
*
* @return Generator
*/
public function provideParentClass()
{
$template = 'The \'%s\' class requires one child class at least who will extend her (maybe is an abstract'
. ' class), but the child classes are missing. Did you forget to extend this class?';
yield[
MissingChildClassesException::class,
sprintf($template, MissingChildClassesException::class),
];
yield[
[
new \stdClass(),
new \stdClass(),
],
sprintf($template, \stdClass::class),
];
}
}

View File

@@ -0,0 +1,74 @@
<?php
/**
* (c) Meritoo.pl, http://www.meritoo.pl
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Meritoo\Common\Test\Exception\Reflection;
use Generator;
use Meritoo\Common\Exception\Reflection\TooManyChildClassesException;
use Meritoo\Common\Test\Base\BaseTestCase;
use Meritoo\Common\Type\OopVisibilityType;
/**
* Test case of an exception used while given class has more than one child class
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*/
class TooManyChildClassesExceptionTest extends BaseTestCase
{
public function testConstructorVisibilityAndArguments()
{
static::assertConstructorVisibilityAndArguments(TooManyChildClassesException::class, OopVisibilityType::IS_PUBLIC, 2, 2);
}
/**
* @param array|object|string $parentClass Class that has more than one child class, but it shouldn't. An array
* of objects, strings, object or string.
* @param array $childClasses Child classes
* @param string $expectedMessage Expected exception's message
*
* @dataProvider provideParentAndChildClasses
*/
public function testConstructorMessage($parentClass, array $childClasses, $expectedMessage)
{
$exception = new TooManyChildClassesException($parentClass, $childClasses);
static::assertEquals($expectedMessage, $exception->getMessage());
}
/**
* Provides name of class that has more than one child class, but it shouldn't, child classes, and expected
* exception's message
*
* @return Generator
*/
public function provideParentAndChildClasses()
{
$template = "The '%s' class requires one child class at most who will extend her, but more than one child"
. " class was found:\n- %s\n\nWhy did you create more than one classes that extend '%s' class?";
yield[
BaseTestCase::class,
[
\stdClass::class,
OopVisibilityType::class,
],
sprintf($template, BaseTestCase::class, implode("\n- ", [
\stdClass::class,
OopVisibilityType::class,
]), BaseTestCase::class),
];
yield[
TooManyChildClassesException::class,
[
\stdClass::class,
],
sprintf($template, TooManyChildClassesException::class, implode("\n- ", [\stdClass::class]), TooManyChildClassesException::class),
];
}
}

View File

@@ -0,0 +1,60 @@
<?php
/**
* (c) Meritoo.pl, http://www.meritoo.pl
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Meritoo\Common\Test\Exception\Regex;
use Generator;
use Meritoo\Common\Exception\Regex\IncorrectColorHexLengthException;
use Meritoo\Common\Test\Base\BaseTestCase;
use Meritoo\Common\Type\OopVisibilityType;
/**
* Test case of an exception used while length of given hexadecimal value of color is incorrect
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*/
class IncorrectColorHexLengthExceptionTest extends BaseTestCase
{
public function testConstructorVisibilityAndArguments()
{
static::assertConstructorVisibilityAndArguments(IncorrectColorHexLengthException::class, OopVisibilityType::IS_PUBLIC, 1, 1);
}
/**
* @param string $color Incorrect hexadecimal value of color
* @param string $expectedMessage Expected exception's message
*
* @dataProvider provideColor
*/
public function testConstructorMessage($color, $expectedMessage)
{
$exception = new IncorrectColorHexLengthException($color);
static::assertEquals($expectedMessage, $exception->getMessage());
}
/**
* Provides incorrect hexadecimal value of color and expected exception's message
*
* @return Generator
*/
public function provideColor()
{
$template = 'Length of hexadecimal value of color \'%s\' is incorrect. It\'s %d, but it should be 3 or 6. Is there everything ok?';
yield[
'',
sprintf($template, '', strlen('')),
];
yield[
'aa-bb-cc',
sprintf($template, 'aa-bb-cc', strlen('aa-bb-cc')),
];
}
}

View File

@@ -0,0 +1,60 @@
<?php
/**
* (c) Meritoo.pl, http://www.meritoo.pl
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Meritoo\Common\Test\Exception\Regex;
use Generator;
use Meritoo\Common\Exception\Regex\InvalidColorHexValueException;
use Meritoo\Common\Test\Base\BaseTestCase;
use Meritoo\Common\Type\OopVisibilityType;
/**
* Test case of an exception used while given hexadecimal value of color is invalid
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*/
class InvalidColorHexValueExceptionTest extends BaseTestCase
{
public function testConstructorVisibilityAndArguments()
{
static::assertConstructorVisibilityAndArguments(InvalidColorHexValueException::class, OopVisibilityType::IS_PUBLIC, 1, 1);
}
/**
* @param string $color Invalid hexadecimal value of color
* @param string $expectedMessage Expected exception's message
*
* @dataProvider provideColor
*/
public function testConstructorMessage($color, $expectedMessage)
{
$exception = new InvalidColorHexValueException($color);
static::assertEquals($expectedMessage, $exception->getMessage());
}
/**
* Provides invalid hexadecimal value of color and expected exception's message
*
* @return Generator
*/
public function provideColor()
{
$template = 'Hexadecimal value of color \'%s\' is invalid. Is there everything ok?';
yield[
'',
sprintf($template, ''),
];
yield[
'aa-bb-cc',
sprintf($template, 'aa-bb-cc'),
];
}
}

View File

@@ -0,0 +1,60 @@
<?php
/**
* (c) Meritoo.pl, http://www.meritoo.pl
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Meritoo\Common\Test\Exception\Regex;
use Generator;
use Meritoo\Common\Exception\Regex\InvalidUrlException;
use Meritoo\Common\Test\Base\BaseTestCase;
use Meritoo\Common\Type\OopVisibilityType;
/**
* Test case of an exception used while url is invalid
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*/
class InvalidUrlExceptionTest extends BaseTestCase
{
public function testConstructorVisibilityAndArguments()
{
static::assertConstructorVisibilityAndArguments(InvalidUrlException::class, OopVisibilityType::IS_PUBLIC, 1, 1);
}
/**
* @param string $url Invalid url
* @param string $expectedMessage Expected exception's message
*
* @dataProvider provideUrl
*/
public function testConstructorMessage($url, $expectedMessage)
{
$exception = new InvalidUrlException($url);
static::assertEquals($expectedMessage, $exception->getMessage());
}
/**
* Provides invalid url and expected exception's message
*
* @return Generator
*/
public function provideUrl()
{
$template = 'Url \'%s\' is invalid. Is there everything ok?';
yield[
'aa/bb/cc',
sprintf($template, 'aa/bb/cc'),
];
yield[
'http:/images\show\car.jpg',
sprintf($template, 'http:/images\show\car.jpg'),
];
}
}

View File

@@ -0,0 +1,64 @@
<?php
/**
* (c) Meritoo.pl, http://www.meritoo.pl
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Meritoo\Common\Test\Exception\Type;
use Generator;
use Meritoo\Common\Exception\Type\UnknownOopVisibilityTypeException;
use Meritoo\Common\Test\Base\BaseTestCase;
use Meritoo\Common\Type\OopVisibilityType;
/**
* Test case of an exception used while the visibility of a property, a method or (as of PHP 7.1.0) a constant is
* unknown
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*/
class UnknownOopVisibilityTypeExceptionTest extends BaseTestCase
{
public function testConstructorVisibilityAndArguments()
{
static::assertConstructorVisibilityAndArguments(UnknownOopVisibilityTypeException::class, OopVisibilityType::IS_PUBLIC, 1, 1);
}
/**
* @param string $unknownType Unknown OOP-related visibility
* @param string $expectedMessage Expected exception's message
*
* @dataProvider provideUnknownType
*/
public function testConstructorMessage($unknownType, $expectedMessage)
{
$exception = new UnknownOopVisibilityTypeException($unknownType);
static::assertEquals($expectedMessage, $exception->getMessage());
}
/**
* Provides path of the empty file and expected exception's message
*
* @return Generator
*/
public function provideUnknownType()
{
$allTypes = (new OopVisibilityType())->getAll();
$template = 'The \'%s\' type of OOP-related visibility is unknown. Probably doesn\'t exist or there is a typo.'
. ' You should use one of these types: %s.';
yield[
'',
sprintf($template, '', implode(', ', $allTypes)),
];
yield[
123,
sprintf($template, 123, implode(', ', $allTypes)),
];
}
}

View File

@@ -10,15 +10,15 @@ namespace Meritoo\Common\Test\Type\Base;
use Generator;
use Meritoo\Common\Type\Base\BaseType;
use PHPUnit_Framework_TestCase;
use PHPUnit\Framework\TestCase;
/**
* Tests of the base / abstract type of something.
* Test case of the base / abstract type of something
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*/
class BaseTypeTest extends PHPUnit_Framework_TestCase
class BaseTypeTest extends TestCase
{
/**
* @param BaseType $type Type of something
@@ -45,7 +45,7 @@ class BaseTypeTest extends PHPUnit_Framework_TestCase
}
/**
* Provides type of something for testing the getAll() method.
* Provides type of something for testing the getAll() method
*
* @return Generator
*/
@@ -66,7 +66,7 @@ class BaseTypeTest extends PHPUnit_Framework_TestCase
}
/**
* Provides type of something for testing the isCorrectType() method.
* Provides type of something for testing the isCorrectType() method
*
* @return Generator
*/
@@ -177,7 +177,7 @@ class BaseTypeTest extends PHPUnit_Framework_TestCase
}
/**
* Empty type of something used for testing.
* Empty type of something used for testing
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
@@ -187,7 +187,7 @@ class TestEmptyType extends BaseType
}
/**
* Type of something used for testing.
* Type of something used for testing
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl

View File

@@ -12,7 +12,7 @@ use Meritoo\Common\Test\Base\BaseTypeTestCase;
use Meritoo\Common\Type\DatePartType;
/**
* Tests of the type of date part, e.g. "year".
* Test case of the type of date part, e.g. "year"
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
@@ -25,12 +25,12 @@ class DatePartTypeTest extends BaseTypeTestCase
protected function getAllExpectedTypes()
{
return [
'DAY' => DatePartType::DAY,
'HOUR' => DatePartType::HOUR,
'DAY' => DatePartType::DAY,
'HOUR' => DatePartType::HOUR,
'MINUTE' => DatePartType::MINUTE,
'MONTH' => DatePartType::MONTH,
'MONTH' => DatePartType::MONTH,
'SECOND' => DatePartType::SECOND,
'YEAR' => DatePartType::YEAR,
'YEAR' => DatePartType::YEAR,
];
}

View File

@@ -8,16 +8,16 @@
namespace Meritoo\Common\Test\Utilities;
use Meritoo\Common\Test\Base\BaseTestCase;
use Meritoo\Common\Utilities\Arrays;
use PHPUnit_Framework_TestCase;
/**
* Tests of the useful arrays methods.
* Test case of the useful arrays methods
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*/
class ArraysTest extends PHPUnit_Framework_TestCase
class ArraysTest extends BaseTestCase
{
private $simpleArray;
private $simpleArrayWithKeys;
@@ -25,6 +25,11 @@ class ArraysTest extends PHPUnit_Framework_TestCase
private $complexArray;
private $superComplexArray;
public function verifyConstructor()
{
static::assertHasNoConstructor(Arrays::class);
}
public function testValues2string()
{
/*
@@ -67,8 +72,8 @@ class ArraysTest extends PHPUnit_Framework_TestCase
self::assertEquals('', Arrays::values2csv($this->simpleArray));
self::assertEquals("lorem,ipsum,dolor,sit,amet\n"
."consectetur,adipiscing,elit\n"
.'donec,sagittis,fringilla,eleifend', Arrays::values2csv($this->twoDimensionsArray));
. "consectetur,adipiscing,elit\n"
. 'donec,sagittis,fringilla,eleifend', Arrays::values2csv($this->twoDimensionsArray));
}
public function testGetFirstKey()
@@ -175,7 +180,7 @@ class ArraysTest extends PHPUnit_Framework_TestCase
{
$effect = [
'nullam' => 'donec',
'x' => [
'x' => [
'vitae' => [
'x' => 'quis',
],
@@ -188,7 +193,7 @@ class ArraysTest extends PHPUnit_Framework_TestCase
self::assertEquals([
'x' => 'sit',
4 => 'amet',
4 => 'amet',
], Arrays::replaceArrayKeys($this->simpleArray, '|[0-3]+|', 'x'));
}
@@ -370,19 +375,19 @@ letsTest[2] = value_2;';
'lorem' => 0,
'ipsum' => 1,
'dolor' => 2,
'sit' => 3,
'amet' => 4,
'sit' => 3,
'amet' => 4,
],
[
'consectetur' => 0,
'adipiscing' => 1,
'elit' => 2,
'adipiscing' => 1,
'elit' => 2,
],
[
'donec' => 0,
'sagittis' => 1,
'donec' => 0,
'sagittis' => 1,
'fringilla' => 2,
'eleifend' => 3,
'eleifend' => 3,
],
];
@@ -428,16 +433,16 @@ letsTest[2] = value_2;';
*/
$array = [
'light' => '#fff',
'dark' => '#000',
'dark' => '#000',
];
self::assertEquals($array, Arrays::string2array('light:#fff|dark:#000'));
self::assertEquals($array, Arrays::string2array('light: #fff | dark: #000'));
$array = [
'red' => '#f00',
'red' => '#f00',
'green' => '#0f0',
'blue' => '#00f',
'blue' => '#00f',
];
self::assertEquals($array, Arrays::string2array('red:#f00|green:#0f0|blue:#00f'));
@@ -489,12 +494,12 @@ letsTest[2] = value_2;';
$keys16 = [
'a' => 'lorem',
11 => 'amet',
11 => 'amet',
];
$keys17 = [
'a' => 'lorem',
11 => 'amet',
11 => 'amet',
'c' => 'sit__',
];
@@ -518,16 +523,16 @@ letsTest[2] = value_2;';
* Using default separator and other default arguments
*/
$expected = [
'lorem.ipsum.dolor' => 'sit',
'lorem.ipsum.diam.non' => 'egestas',
'consectetur' => 'adipiscing',
'mollis' => 1234,
2 => [],
'sit.nullam' => 'donec',
'lorem.ipsum.dolor' => 'sit',
'lorem.ipsum.diam.non' => 'egestas',
'consectetur' => 'adipiscing',
'mollis' => 1234,
2 => [],
'sit.nullam' => 'donec',
'sit.aliquet.vitae.ligula' => 'quis',
'sit.0' => 'elit',
'amet.0' => 'iaculis',
'amet.1' => 'primis',
'sit.0' => 'elit',
'amet.0' => 'iaculis',
'amet.1' => 'primis',
];
self::assertEquals($expected, Arrays::getLastElementsPaths($this->complexArray));
@@ -537,16 +542,16 @@ letsTest[2] = value_2;';
*/
$separator = ' -> ';
$expected = [
sprintf('lorem%sipsum%sdolor', $separator, $separator) => 'sit',
sprintf('lorem%sipsum%sdiam%snon', $separator, $separator, $separator) => 'egestas',
'consectetur' => 'adipiscing',
'mollis' => 1234,
2 => [],
sprintf('sit%snullam', $separator) => 'donec',
sprintf('lorem%sipsum%sdolor', $separator, $separator) => 'sit',
sprintf('lorem%sipsum%sdiam%snon', $separator, $separator, $separator) => 'egestas',
'consectetur' => 'adipiscing',
'mollis' => 1234,
2 => [],
sprintf('sit%snullam', $separator) => 'donec',
sprintf('sit%saliquet%svitae%sligula', $separator, $separator, $separator) => 'quis',
sprintf('sit%s0', $separator) => 'elit',
sprintf('amet%s0', $separator) => 'iaculis',
sprintf('amet%s1', $separator) => 'primis',
sprintf('sit%s0', $separator) => 'elit',
sprintf('amet%s0', $separator) => 'iaculis',
sprintf('amet%s1', $separator) => 'primis',
];
self::assertEquals($expected, Arrays::getLastElementsPaths($this->complexArray, $separator));
@@ -555,16 +560,16 @@ letsTest[2] = value_2;';
* Special exception: do not use, stop recursive on the "diam" key
*/
$expected = [
'lorem.ipsum.dolor' => 'sit',
'consectetur' => 'adipiscing',
'mollis' => 1234,
2 => [],
'sit.nullam' => 'donec',
'lorem.ipsum.dolor' => 'sit',
'consectetur' => 'adipiscing',
'mollis' => 1234,
2 => [],
'sit.nullam' => 'donec',
'sit.aliquet.vitae.ligula' => 'quis',
'sit.0' => 'elit',
'amet.0' => 'iaculis',
'amet.1' => 'primis',
'lorem.ipsum.diam' => [
'sit.0' => 'elit',
'amet.0' => 'iaculis',
'amet.1' => 'primis',
'lorem.ipsum.diam' => [
'non' => 'egestas',
],
];
@@ -579,17 +584,17 @@ letsTest[2] = value_2;';
*/
$expected = [
'lorem . ipsum . dolor' => 'sit',
'consectetur' => 'adipiscing',
'mollis' => 1234,
2 => [],
'sit . nullam' => 'donec',
'sit . 0' => 'elit',
'amet . 0' => 'iaculis',
'amet . 1' => 'primis',
'lorem . ipsum . diam' => [
'consectetur' => 'adipiscing',
'mollis' => 1234,
2 => [],
'sit . nullam' => 'donec',
'sit . 0' => 'elit',
'amet . 0' => 'iaculis',
'amet . 1' => 'primis',
'lorem . ipsum . diam' => [
'non' => 'egestas',
],
'sit . aliquet' => [
'sit . aliquet' => [
'vitae' => [
'ligula' => 'quis',
],
@@ -623,12 +628,12 @@ letsTest[2] = value_2;';
2,
3,
],
'primis > 0' => [
'primis > 0' => [
'in',
'faucibus',
'orci',
],
'primis > 1' => [
'primis > 1' => [
'luctus',
'et',
'ultrices',
@@ -653,14 +658,14 @@ letsTest[2] = value_2;';
*/
$expected = [
'lorem > ipsum > dolor' => 'sit',
'consectetur' => 'adipiscing',
'mollis' => 1234,
2 => [],
'sit > nullam' => 'donec',
'sit > 0' => 'elit',
'amet > 0' => 'iaculis',
'amet > 1' => 'primis',
'lorem > ipsum > diam' => [
'consectetur' => 'adipiscing',
'mollis' => 1234,
2 => [],
'sit > nullam' => 'donec',
'sit > 0' => 'elit',
'amet > 0' => 'iaculis',
'amet > 1' => 'primis',
'lorem > ipsum > diam' => [
'non' => 'egestas',
],
'sit > aliquet > vitae' => [
@@ -679,7 +684,7 @@ letsTest[2] = value_2;';
* Stop building of paths on these paths (verify paths only)
*/
$expected = [
'ipsum > quis > vestibulum > porta-1' => [
'ipsum > quis > vestibulum > porta-1' => [
'turpis',
'urna',
],
@@ -691,13 +696,13 @@ letsTest[2] = value_2;';
],
],
],
'ipsum > quis > vestibulum > porta-3 > 0' => 1,
'ipsum > quis > vestibulum > porta-3 > 1' => 2,
'ipsum > quis > vestibulum > porta-3 > 2' => 3,
'primis > 0 > 0' => 'in',
'primis > 0 > 1' => 'faucibus',
'primis > 0 > 2' => 'orci',
'primis > 1' => [
'ipsum > quis > vestibulum > porta-3 > 0' => 1,
'ipsum > quis > vestibulum > porta-3 > 1' => 2,
'ipsum > quis > vestibulum > porta-3 > 2' => 3,
'primis > 0 > 0' => 'in',
'primis > 0 > 1' => 'faucibus',
'primis > 0 > 2' => 'orci',
'primis > 1' => [
'luctus',
'et',
'ultrices',
@@ -716,7 +721,7 @@ letsTest[2] = value_2;';
* Stop building of paths if path contains any of these part (verify part of paths only)
*/
$expected = [
'ipsum > quis > vestibulum > porta-1' => [
'ipsum > quis > vestibulum > porta-1' => [
'turpis',
'urna',
],
@@ -726,15 +731,15 @@ letsTest[2] = value_2;';
'aliquam',
],
],
'ipsum > quis > vestibulum > porta-3 > 0' => 1,
'ipsum > quis > vestibulum > porta-3 > 1' => 2,
'ipsum > quis > vestibulum > porta-3 > 2' => 3,
'primis > 0' => [
'ipsum > quis > vestibulum > porta-3 > 0' => 1,
'ipsum > quis > vestibulum > porta-3 > 1' => 2,
'ipsum > quis > vestibulum > porta-3 > 2' => 3,
'primis > 0' => [
'in',
'faucibus',
'orci',
],
'primis > 1' => [
'primis > 1' => [
'luctus',
'et',
'ultrices',
@@ -830,7 +835,7 @@ letsTest[2] = value_2;';
];
$existingKeys = [
'simpleArray' => [
'simpleArray' => [
1,
3,
4,
@@ -839,11 +844,11 @@ letsTest[2] = value_2;';
'dolor',
'amet',
],
'twoDimensionsArray' => [
'twoDimensionsArray' => [
2,
3,
],
'complexArray' => [
'complexArray' => [
'sit',
'aliquet',
'vitae',
@@ -883,7 +888,7 @@ letsTest[2] = value_2;';
2,
2,
],
'complexArray' => [
'complexArray' => [
[
'lorem',
'ipsum',
@@ -989,22 +994,22 @@ letsTest[2] = value_2;';
* Positive case - multi-dimensions array
*/
$effect = [
'amet' => [
'amet' => [
'iaculis',
'primis',
],
'consectetur' => 'adipiscing',
'lorem' => [
'lorem' => [
'ipsum' => [
'dolor' => 'sit',
'diam' => [
'diam' => [
'non' => 'egestas',
],
],
],
'mollis' => 1234,
'sit' => [
'nullam' => 'donec',
'mollis' => 1234,
'sit' => [
'nullam' => 'donec',
'aliquet' => [
'vitae' => [
'ligula' => 'quis',
@@ -1012,7 +1017,7 @@ letsTest[2] = value_2;';
],
'elit',
],
2 => [],
2 => [],
];
self::assertEquals($effect, Arrays::ksortRecursive($this->complexArray));
@@ -1021,23 +1026,23 @@ letsTest[2] = value_2;';
* Positive case - multi-dimensions array - with options of ksort() function
*/
$effect = [
2 => [],
'amet' => [
2 => [],
'amet' => [
'iaculis',
'primis',
],
'consectetur' => 'adipiscing',
'lorem' => [
'lorem' => [
'ipsum' => [
'dolor' => 'sit',
'diam' => [
'diam' => [
'non' => 'egestas',
],
],
],
'mollis' => 1234,
'sit' => [
'nullam' => 'donec',
'mollis' => 1234,
'sit' => [
'nullam' => 'donec',
'aliquet' => [
'vitae' => [
'ligula' => 'quis',
@@ -1086,7 +1091,7 @@ letsTest[2] = value_2;';
'dolor',
'sit',
],
'amet' => [
'amet' => [
'consectetur',
'adipiscing' => [
'elit' => [
@@ -1105,10 +1110,10 @@ letsTest[2] = value_2;';
'sit',
Arrays::POSITION_KEY_NAME => 1,
],
'amet' => [
'amet' => [
'consectetur',
'adipiscing' => [
'elit' => [
'adipiscing' => [
'elit' => [
'cras',
'quis',
'ligula',
@@ -1233,7 +1238,7 @@ letsTest[2] = value_2;';
$sorted = [
'dolor' => 'sit',
'amet' => 'consectetur',
'amet' => 'consectetur',
'Lorem' => 'ipsum',
];
@@ -1306,9 +1311,9 @@ letsTest[2] = value_2;';
* An array with elements that contain separator
*/
$array = [
'lorem'.$separator,
'lorem' . $separator,
'ipsum',
$separator.'dolor',
$separator . 'dolor',
];
self::assertEquals(implode($separator, [
@@ -1658,7 +1663,7 @@ letsTest[2] = value_2;';
}
/**
* Provides simple array to set/replace values with keys.
* Provides simple array to set/replace values with keys
*
* @return \Generator
*/
@@ -1691,14 +1696,14 @@ letsTest[2] = value_2;';
'Lorem' => 0,
'ipsum' => 1,
'dolor' => 2,
'sit' => 3,
'amet' => 4,
'sit' => 3,
'amet' => 4,
],
];
}
/**
* Provides an array with duplicated values to set/replace values with keys.
* Provides an array with duplicated values to set/replace values with keys
*
* @return \Generator
*/
@@ -1708,18 +1713,18 @@ letsTest[2] = value_2;';
[
'lorem' => 'ipsum',
'dolor' => 'ipsum',
'sit' => 'amet',
'diam' => 'non',
'elit' => 'non',
'in' => 'non',
'sit' => 'amet',
'diam' => 'non',
'elit' => 'non',
'in' => 'non',
],
[
'ipsum' => [
'lorem',
'dolor',
],
'amet' => 'sit',
'non' => [
'amet' => 'sit',
'non' => [
'diam',
'elit',
'in',
@@ -1729,14 +1734,14 @@ letsTest[2] = value_2;';
yield[
[
'lorem' => [
'lorem' => [
'diam' => 'non',
'elit' => 'non',
'in' => 'non',
'in' => 'non',
],
'dolor1' => 'ipsum',
'dolor2' => 'ipsum',
'sit' => 'amet',
'sit' => 'amet',
],
[
'lorem' => [
@@ -1750,7 +1755,7 @@ letsTest[2] = value_2;';
'dolor1',
'dolor2',
],
'amet' => 'sit',
'amet' => 'sit',
],
];
}
@@ -1773,7 +1778,7 @@ letsTest[2] = value_2;';
$this->simpleArrayWithKeys = [
'Lorem' => 'ipsum',
'dolor' => 'sit',
'amet' => 'consectetur',
'amet' => 'consectetur',
];
$this->twoDimensionsArray = [
@@ -1798,19 +1803,19 @@ letsTest[2] = value_2;';
];
$this->complexArray = [
'lorem' => [
'lorem' => [
'ipsum' => [
'dolor' => 'sit',
'diam' => [
'diam' => [
'non' => 'egestas',
],
],
],
'consectetur' => 'adipiscing',
'mollis' => 1234,
2 => [],
'sit' => [
'nullam' => 'donec',
'mollis' => 1234,
2 => [],
'sit' => [
'nullam' => 'donec',
'aliquet' => [
'vitae' => [
'ligula' => 'quis',
@@ -1818,14 +1823,14 @@ letsTest[2] = value_2;';
],
'elit',
],
'amet' => [
'amet' => [
'iaculis',
'primis',
],
];
$this->superComplexArray = [
'ipsum' => [
'ipsum' => [
'quis' => [
'vestibulum' => [
'porta-1' => [

View File

@@ -8,17 +8,22 @@
namespace Meritoo\Common\Test\Utilities;
use Meritoo\Common\Test\Base\BaseTestCase;
use Meritoo\Common\Utilities\Bundle;
use PHPUnit_Framework_TestCase;
/**
* Tests of the useful methods for bundle.
* Test case of the useful methods for bundle
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*/
class BundleTest extends PHPUnit_Framework_TestCase
class BundleTest extends BaseTestCase
{
public function verifyConstructor()
{
static::assertHasNoConstructor(Bundle::class);
}
public function testGetBundleViewPathEmptyPathAndBundle()
{
self::assertNull(Bundle::getBundleViewPath('', ''));

View File

@@ -13,7 +13,7 @@ use Meritoo\Common\Test\Base\BaseTestCase;
use Meritoo\Common\Utilities\Composer;
/**
* Tests of the useful Composer-related methods.
* Test case of the useful Composer-related methods
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
@@ -21,12 +21,17 @@ use Meritoo\Common\Utilities\Composer;
class ComposerTest extends BaseTestCase
{
/**
* Path of existing composer.json used as source of data for tests.
* Path of existing composer.json used as source of data for tests
*
* @var string
*/
private $composerJsonPath;
public function verifyConstructor()
{
static::assertHasNoConstructor(Composer::class);
}
/**
* @param string $composerJsonPath Empty value, e.g. ""
* @dataProvider provideEmptyValue
@@ -59,7 +64,7 @@ class ComposerTest extends BaseTestCase
}
/**
* Provides names and values of existing nodes.
* Provides names and values of existing nodes
*
* @return Generator
*/

View File

@@ -15,7 +15,7 @@ use Meritoo\Common\Type\OopVisibilityType;
use Meritoo\Common\Utilities\DatePeriod;
/**
* Tests of date's period.
* Test case of date's period
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
@@ -24,7 +24,7 @@ class DatePeriodTest extends BaseTestCase
{
public function testConstructorVisibilityAndArguments()
{
$this->verifyConstructorVisibilityAndArguments(DatePeriod::class, OopVisibilityType::IS_PUBLIC, 2, 0);
static::assertConstructorVisibilityAndArguments(DatePeriod::class, OopVisibilityType::IS_PUBLIC, 2, 0);
}
/**
@@ -110,7 +110,7 @@ class DatePeriodTest extends BaseTestCase
}
/**
* Provides the start and end date of date period.
* Provides the start and end date of date period
*
* @return Generator
*/
@@ -143,7 +143,7 @@ class DatePeriodTest extends BaseTestCase
}
/**
* Provides incorrect period.
* Provides incorrect period
*
* @return Generator
*/
@@ -155,7 +155,7 @@ class DatePeriodTest extends BaseTestCase
}
/**
* Provides period to verify.
* Provides period to verify
*
* @return Generator
*/
@@ -173,7 +173,7 @@ class DatePeriodTest extends BaseTestCase
}
/**
* Provides period and incorrect format of date to verify.
* Provides period and incorrect format of date to verify
*
* @return Generator
*/
@@ -199,7 +199,7 @@ class DatePeriodTest extends BaseTestCase
}
/**
* Provides period and format of date to verify.
* Provides period and format of date to verify
*
* @return Generator
*/

View File

@@ -16,13 +16,18 @@ use Meritoo\Common\Test\Base\BaseTestCase;
use Meritoo\Common\Utilities\Date;
/**
* Tests of the Date methods (only static functions).
* Test case of the Date methods (only static functions)
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*/
class DateTest extends BaseTestCase
{
public function verifyConstructor()
{
static::assertHasNoConstructor(Date::class);
}
/**
* @param mixed $value Empty value, e.g. ""
* @dataProvider provideEmptyValue
@@ -189,7 +194,7 @@ class DateTest extends BaseTestCase
public function testGetCurrentDayOfWeek()
{
self::assertRegExp('/^[0-6]{1}$/', (string) Date::getCurrentDayOfWeek());
self::assertRegExp('/^[0-6]{1}$/', (string)Date::getCurrentDayOfWeek());
}
public function testGetCurrentDayOfWeekName()
@@ -231,7 +236,7 @@ class DateTest extends BaseTestCase
*/
public function testGetDayOfWeek($year, $month, $day)
{
self::assertRegExp('/^[0-6]{1}$/', (string) Date::getDayOfWeek($year, $month, $day));
self::assertRegExp('/^[0-6]{1}$/', (string)Date::getDayOfWeek($year, $month, $day));
}
/**
@@ -260,10 +265,10 @@ class DateTest extends BaseTestCase
$dateEnd = '2017-01-02';
$effect = [
Date::DATE_DIFFERENCE_UNIT_YEARS => 0,
Date::DATE_DIFFERENCE_UNIT_MONTHS => 0,
Date::DATE_DIFFERENCE_UNIT_DAYS => 1,
Date::DATE_DIFFERENCE_UNIT_HOURS => 0,
Date::DATE_DIFFERENCE_UNIT_YEARS => 0,
Date::DATE_DIFFERENCE_UNIT_MONTHS => 0,
Date::DATE_DIFFERENCE_UNIT_DAYS => 1,
Date::DATE_DIFFERENCE_UNIT_HOURS => 0,
Date::DATE_DIFFERENCE_UNIT_MINUTES => 0,
];
@@ -280,10 +285,10 @@ class DateTest extends BaseTestCase
* Difference of 1 day (using the relative date format)
*/
$effect = [
Date::DATE_DIFFERENCE_UNIT_YEARS => 0,
Date::DATE_DIFFERENCE_UNIT_MONTHS => 0,
Date::DATE_DIFFERENCE_UNIT_DAYS => 1,
Date::DATE_DIFFERENCE_UNIT_HOURS => 0,
Date::DATE_DIFFERENCE_UNIT_YEARS => 0,
Date::DATE_DIFFERENCE_UNIT_MONTHS => 0,
Date::DATE_DIFFERENCE_UNIT_DAYS => 1,
Date::DATE_DIFFERENCE_UNIT_HOURS => 0,
Date::DATE_DIFFERENCE_UNIT_MINUTES => 0,
];
@@ -301,10 +306,10 @@ class DateTest extends BaseTestCase
$dateEnd = '2017-01-02 14:15';
$effect = [
Date::DATE_DIFFERENCE_UNIT_YEARS => 0,
Date::DATE_DIFFERENCE_UNIT_MONTHS => 0,
Date::DATE_DIFFERENCE_UNIT_DAYS => 1,
Date::DATE_DIFFERENCE_UNIT_HOURS => 2,
Date::DATE_DIFFERENCE_UNIT_YEARS => 0,
Date::DATE_DIFFERENCE_UNIT_MONTHS => 0,
Date::DATE_DIFFERENCE_UNIT_DAYS => 1,
Date::DATE_DIFFERENCE_UNIT_HOURS => 2,
Date::DATE_DIFFERENCE_UNIT_MINUTES => 15,
];
@@ -330,10 +335,10 @@ class DateTest extends BaseTestCase
$dateEnd = '2017-02-11 16:30';
$effect = [
Date::DATE_DIFFERENCE_UNIT_YEARS => 0,
Date::DATE_DIFFERENCE_UNIT_MONTHS => 1,
Date::DATE_DIFFERENCE_UNIT_DAYS => 41,
Date::DATE_DIFFERENCE_UNIT_HOURS => 4,
Date::DATE_DIFFERENCE_UNIT_YEARS => 0,
Date::DATE_DIFFERENCE_UNIT_MONTHS => 1,
Date::DATE_DIFFERENCE_UNIT_DAYS => 41,
Date::DATE_DIFFERENCE_UNIT_HOURS => 4,
Date::DATE_DIFFERENCE_UNIT_MINUTES => 30,
];
@@ -362,10 +367,10 @@ class DateTest extends BaseTestCase
$dateEnd = $dateStart;
$effect = [
Date::DATE_DIFFERENCE_UNIT_YEARS => 0,
Date::DATE_DIFFERENCE_UNIT_MONTHS => 0,
Date::DATE_DIFFERENCE_UNIT_DAYS => 0,
Date::DATE_DIFFERENCE_UNIT_HOURS => 0,
Date::DATE_DIFFERENCE_UNIT_YEARS => 0,
Date::DATE_DIFFERENCE_UNIT_MONTHS => 0,
Date::DATE_DIFFERENCE_UNIT_DAYS => 0,
Date::DATE_DIFFERENCE_UNIT_HOURS => 0,
Date::DATE_DIFFERENCE_UNIT_MINUTES => 0,
];
@@ -502,7 +507,7 @@ class DateTest extends BaseTestCase
}
/**
* Provides incorrect invalidCount of DateTime.
* Provides incorrect invalidCount of DateTime
*
* @return Generator
*/
@@ -552,7 +557,7 @@ class DateTest extends BaseTestCase
}
/**
* Provides invalid format of date.
* Provides invalid format of date
*
* @return Generator
*/
@@ -570,7 +575,7 @@ class DateTest extends BaseTestCase
}
/**
* Provide empty dates for date difference.
* Provide empty dates for date difference
*
* @return Generator
*/
@@ -598,7 +603,7 @@ class DateTest extends BaseTestCase
}
/**
* Provides incorrect values of year, month and day.
* Provides incorrect values of year, month and day
*
* @return Generator
*/
@@ -648,7 +653,7 @@ class DateTest extends BaseTestCase
}
/**
* Provides values of year, month and day.
* Provides values of year, month and day
*
* @return Generator
*/
@@ -698,7 +703,7 @@ class DateTest extends BaseTestCase
}
/**
* Provides data for the random date with incorrect end of random partition.
* Provides data for the random date with incorrect end of random partition
*
* @return Generator
*/
@@ -712,7 +717,7 @@ class DateTest extends BaseTestCase
}
/**
* Provides data for the random date.
* Provides data for the random date
*
* @return Generator
*/

View File

@@ -12,13 +12,18 @@ use Meritoo\Common\Test\Base\BaseTestCase;
use Meritoo\Common\Utilities\GeneratorUtility;
/**
* Tests of the useful methods for the Generator class.
* Test case of the useful methods for the Generator class
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*/
class GeneratorUtilityTest extends BaseTestCase
{
public function verifyConstructor()
{
static::assertHasNoConstructor(GeneratorUtility::class);
}
public function testGetGeneratorElements()
{
/*

View File

@@ -13,13 +13,18 @@ use Meritoo\Common\Test\Base\BaseTestCase;
use Meritoo\Common\Utilities\Locale;
/**
* Tests of the useful locale methods.
* Test case of the useful locale methods
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*/
class LocaleTest extends BaseTestCase
{
public function verifyConstructor()
{
static::assertHasNoConstructor(Locale::class);
}
/**
* @param mixed $languageCode Empty value, e.g. ""
* @dataProvider provideEmptyValue
@@ -64,7 +69,7 @@ class LocaleTest extends BaseTestCase
}
/**
* Provides language and country code.
* Provides language and country code
*
* @return Generator
*/
@@ -100,7 +105,7 @@ class LocaleTest extends BaseTestCase
}
/**
* Provides category and language.
* Provides category and language
*
* @return Generator
*/

View File

@@ -13,13 +13,18 @@ use Meritoo\Common\Test\Base\BaseTestCase;
use Meritoo\Common\Utilities\MimeTypes;
/**
* Tests of the useful methods for mime types of files.
* Test case of the useful methods for mime types of files
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*/
class MimeTypesTest extends BaseTestCase
{
public function verifyConstructor()
{
static::assertHasNoConstructor(MimeTypes::class);
}
/**
* @param mixed $mimeType Empty value, e.g. ""
* @dataProvider provideEmptyValue
@@ -186,7 +191,7 @@ class MimeTypesTest extends BaseTestCase
}
/**
* Provides not existing mime type.
* Provides not existing mime type
*
* @return Generator
*/
@@ -198,7 +203,7 @@ class MimeTypesTest extends BaseTestCase
}
/**
* Provides mime type of non-image.
* Provides mime type of non-image
*
* @return Generator
*/
@@ -211,7 +216,7 @@ class MimeTypesTest extends BaseTestCase
}
/**
* Provides mime type of image.
* Provides mime type of image
*
* @return Generator
*/
@@ -226,7 +231,7 @@ class MimeTypesTest extends BaseTestCase
}
/**
* Provides existing mime type used to get single, one extension.
* Provides existing mime type used to get single, one extension
*
* @return Generator
*/
@@ -249,7 +254,7 @@ class MimeTypesTest extends BaseTestCase
}
/**
* Provides existing mime type used to get multiple, more than one extension.
* Provides existing mime type used to get multiple, more than one extension
*
* @return Generator
*/
@@ -316,7 +321,7 @@ class MimeTypesTest extends BaseTestCase
}
/**
* Provides not existing mime types.
* Provides not existing mime types
*
* @return Generator
*/
@@ -344,7 +349,7 @@ class MimeTypesTest extends BaseTestCase
}
/**
* Provides mime types used to get extensions.
* Provides mime types used to get extensions
*
* @return Generator
*/
@@ -357,7 +362,7 @@ class MimeTypesTest extends BaseTestCase
],
[
'application/x-7z-compressed' => '7z',
'application/json' => 'json',
'application/json' => 'json',
],
];
@@ -374,12 +379,12 @@ class MimeTypesTest extends BaseTestCase
'nb',
'mb',
],
'application/xml' => [
'application/xml' => [
'xml',
'xsl',
],
'audio/mp4' => 'mp4a',
'video/mp4' => [
'audio/mp4' => 'mp4a',
'video/mp4' => [
'mp4',
'mp4v',
'mpg4',
@@ -390,7 +395,7 @@ class MimeTypesTest extends BaseTestCase
}
/**
* Provides mime types used to get extensions as upper case.
* Provides mime types used to get extensions as upper case
*
* @return Generator
*/
@@ -403,7 +408,7 @@ class MimeTypesTest extends BaseTestCase
],
[
'application/x-7z-compressed' => '7Z',
'application/json' => 'JSON',
'application/json' => 'JSON',
],
];
@@ -419,12 +424,12 @@ class MimeTypesTest extends BaseTestCase
'XML',
'XSL',
],
'audio/mp4' => 'MP4A',
'text/html' => [
'audio/mp4' => 'MP4A',
'text/html' => [
'HTML',
'HTM',
],
'video/mp4' => [
'video/mp4' => [
'MP4',
'MP4V',
'MPG4',
@@ -435,7 +440,7 @@ class MimeTypesTest extends BaseTestCase
}
/**
* Provides real file path to get mime type.
* Provides real file path to get mime type
*
* @return Generator
*/
@@ -453,7 +458,7 @@ class MimeTypesTest extends BaseTestCase
}
/**
* Provides real file path to get information if the file is an image.
* Provides real file path to get information if the file is an image
*
* @return Generator
*/

View File

@@ -17,7 +17,7 @@ use Meritoo\Common\Utilities\Miscellaneous;
use stdClass;
/**
* Tests of the Miscellaneous methods (only static functions).
* Test case of the Miscellaneous methods (only static functions)
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
@@ -28,9 +28,14 @@ class MiscellaneousTest extends BaseTestCase
private $stringCommaSeparated;
private $stringDotSeparated;
public function verifyConstructor()
{
static::assertHasNoConstructor(Miscellaneous::class);
}
public function testGetDirectoryContent()
{
$directoryPath = __DIR__.'/../';
$directoryPath = __DIR__ . '/../';
$filePath = __FILE__;
self::assertNull(Miscellaneous::getDirectoryContent(null));
@@ -123,8 +128,8 @@ class MiscellaneousTest extends BaseTestCase
*/
$uniqueFileName2 = Miscellaneous::getUniqueFileName($originalFileName);
$isCorrect1 = (bool) preg_match($pattern, $uniqueFileName1);
$isCorrect2 = (bool) preg_match($pattern, $uniqueFileName2);
$isCorrect1 = (bool)preg_match($pattern, $uniqueFileName1);
$isCorrect2 = (bool)preg_match($pattern, $uniqueFileName2);
self::assertTrue($isCorrect1);
self::assertTrue($isCorrect2);
@@ -345,8 +350,8 @@ class MiscellaneousTest extends BaseTestCase
{
$suffix = '...';
self::assertEquals('Lorem ipsum'.$suffix, Miscellaneous::substringToWord($this->stringCommaSeparated, 20));
self::assertEquals('Lorem ipsum dolor sit'.$suffix, Miscellaneous::substringToWord($this->stringCommaSeparated, 25));
self::assertEquals('Lorem ipsum' . $suffix, Miscellaneous::substringToWord($this->stringCommaSeparated, 20));
self::assertEquals('Lorem ipsum dolor sit' . $suffix, Miscellaneous::substringToWord($this->stringCommaSeparated, 25));
self::assertEquals('Lorem ipsum dolor', Miscellaneous::substringToWord($this->stringCommaSeparated, 20, ''));
self::assertEquals('Lorem ipsum dolor sit amet, consectetur', Miscellaneous::substringToWord($this->stringCommaSeparated, 40, ''));
@@ -368,26 +373,26 @@ class MiscellaneousTest extends BaseTestCase
/*
* Removing not directory
*/
$directoryPath = sys_get_temp_dir().'/ipsum.txt';
$directoryPath = sys_get_temp_dir() . '/ipsum.txt';
touch($directoryPath);
self::assertTrue(Miscellaneous::removeDirectory($directoryPath));
/*
* Removing simple directory
*/
$directoryPath = sys_get_temp_dir().'/lorem/ipsum';
$directoryPath = sys_get_temp_dir() . '/lorem/ipsum';
mkdir($directoryPath, 0777, true);
self::assertTrue(Miscellaneous::removeDirectory($directoryPath));
/*
* Removing more complex directory
*/
$directory1Path = sys_get_temp_dir().'/lorem/ipsum';
$directory2Path = sys_get_temp_dir().'/lorem/dolor/sit';
$directory1Path = sys_get_temp_dir() . '/lorem/ipsum';
$directory2Path = sys_get_temp_dir() . '/lorem/dolor/sit';
mkdir($directory1Path, 0777, true);
mkdir($directory2Path, 0777, true);
self::assertTrue(Miscellaneous::removeDirectory(sys_get_temp_dir().'/lorem', false));
self::assertTrue(Miscellaneous::removeDirectory(sys_get_temp_dir() . '/lorem', false));
}
/**
@@ -503,16 +508,35 @@ class MiscellaneousTest extends BaseTestCase
self::assertEquals('lorem ipsum', Miscellaneous::trimSmart(' lorem ipsum '));
}
public function testConcatenatePaths()
/**
* @param mixed $emptyPaths Empty paths co concatenate
* @dataProvider provideEmptyValue
*/
public function testConcatenatePathsWithEmptyPaths($emptyPaths)
{
self::assertEquals('', Miscellaneous::concatenatePaths($emptyPaths));
}
public function testConcatenatePathsWithOneEmptyPath()
{
$paths = [
'first/directory',
'second/one',
'',
'and/the/third',
];
$concatenated = Miscellaneous::concatenatePaths($paths);
unset($paths[2]);
$imploded = implode('/', $paths);
self::assertEquals('/' . $imploded, $concatenated);
}
public function testConcatenatePathsInNixOs()
{
/*
* Common cases
*/
self::assertEquals('', Miscellaneous::concatenatePaths(null));
self::assertEquals('', Miscellaneous::concatenatePaths([]));
/*
* *nix operating system
* For *nix operating system
*/
$paths1 = [
'first/directory',
@@ -520,9 +544,12 @@ class MiscellaneousTest extends BaseTestCase
'and/the/third',
];
self::assertEquals('/'.implode('/', $paths1), Miscellaneous::concatenatePaths($paths1));
self::assertEquals('/'.implode('/', $paths1), Miscellaneous::concatenatePaths($paths1[0], $paths1[1], $paths1[2]));
self::assertEquals('/' . implode('/', $paths1), Miscellaneous::concatenatePaths($paths1));
self::assertEquals('/' . implode('/', $paths1), Miscellaneous::concatenatePaths($paths1[0], $paths1[1], $paths1[2]));
}
public function testConcatenatePathsInWindowsOs()
{
/*
* For Windows operating system
*/
@@ -720,8 +747,13 @@ class MiscellaneousTest extends BaseTestCase
self::assertSame($expected, Miscellaneous::fillMissingZeros($number, $length, $before));
}
public function testGetProjectRootPath()
{
self::assertNotEmpty(Miscellaneous::getProjectRootPath());
}
/**
* Provides string to convert characters to latin characters and not lower cased and not human-readable.
* Provides string to convert characters to latin characters and not lower cased and not human-readable
*
* @return Generator
*/
@@ -816,7 +848,7 @@ class MiscellaneousTest extends BaseTestCase
}
/**
* Provides string to convert characters to latin characters and lower cased and human-readable.
* Provides string to convert characters to latin characters and lower cased and human-readable
*
* @return Generator
*/
@@ -911,7 +943,7 @@ class MiscellaneousTest extends BaseTestCase
}
/**
* Provides names of files.
* Provides names of files
*
* @return Generator
*/
@@ -939,7 +971,7 @@ class MiscellaneousTest extends BaseTestCase
}
/**
* Provides string to convert to camel case.
* Provides string to convert to camel case
*
* @return Generator
*/
@@ -965,7 +997,7 @@ class MiscellaneousTest extends BaseTestCase
}
/**
* Provides path used to remove the starting / beginning directory's separator.
* Provides path used to remove the starting / beginning directory's separator
*
* @return Generator
*/
@@ -1009,7 +1041,7 @@ class MiscellaneousTest extends BaseTestCase
}
/**
* Provides path used to remove the ending directory's separator.
* Provides path used to remove the ending directory's separator
*
* @return Generator
*/
@@ -1053,7 +1085,7 @@ class MiscellaneousTest extends BaseTestCase
}
/**
* Provides empty value used to fill missing zeros.
* Provides empty value used to fill missing zeros
*
* @return Generator
*/
@@ -1067,7 +1099,7 @@ class MiscellaneousTest extends BaseTestCase
}
/**
* Provides number used to fill missing zeros.
* Provides number used to fill missing zeros
*
* @return Generator
*/

View File

@@ -19,8 +19,15 @@ class A
{
use E;
private $count = 1;
protected function lorem()
{
return 'ipsum';
}
protected function getCount()
{
return $this->count;
}
}

View File

@@ -17,4 +17,10 @@ namespace Meritoo\Common\Test\Utilities\Reflection;
*/
class B extends A
{
protected $name = 'Lorem Ipsum';
public function getName()
{
return $this->name;
}
}

View File

@@ -20,15 +20,21 @@ use Meritoo\Common\Test\Utilities\Reflection\C;
use Meritoo\Common\Test\Utilities\Reflection\D;
use Meritoo\Common\Test\Utilities\Reflection\E;
use Meritoo\Common\Utilities\Reflection;
use ReflectionProperty;
/**
* Tests of the useful reflection methods.
* Test case of the useful reflection methods
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*/
class ReflectionTest extends BaseTestCase
{
public function verifyConstructor()
{
static::assertHasNoConstructor(Reflection::class);
}
/**
* @param mixed $invalidClass Empty value, e.g. ""
* @dataProvider provideEmptyValue
@@ -171,11 +177,11 @@ class ReflectionTest extends BaseTestCase
public function testGetMethods()
{
self::assertEquals(0, count(Reflection::getMethods(B::class, true)));
self::assertEquals(1, count(Reflection::getMethods(B::class)));
self::assertEquals(1, count(Reflection::getMethods(A::class)));
self::assertEquals(1, count(Reflection::getMethods(B::class, true)));
self::assertEquals(3, count(Reflection::getMethods(B::class)));
self::assertEquals(2, count(Reflection::getMethods(A::class)));
self::assertEquals(2, count(Reflection::getMethods(C::class, true)));
self::assertEquals(3, count(Reflection::getMethods(C::class)));
self::assertEquals(5, count(Reflection::getMethods(C::class)));
}
/**
@@ -216,8 +222,25 @@ class ReflectionTest extends BaseTestCase
self::assertFalse(Reflection::usesTrait(D::class, E::class, true));
}
public function testGetProperties()
{
self::assertCount(1, Reflection::getProperties(B::class));
}
public function testGetPropertiesUsingFilter()
{
self::assertCount(1, Reflection::getProperties(B::class, ReflectionProperty::IS_PROTECTED));
self::assertCount(0, Reflection::getProperties(B::class, ReflectionProperty::IS_PRIVATE));
self::assertCount(1, Reflection::getProperties(B::class, ReflectionProperty::IS_PRIVATE, true));
}
public function testGetPropertiesWithParents()
{
self::assertCount(2, Reflection::getProperties(B::class, null, true));
}
/**
* Provides invalid class and trait.
* Provides invalid class and trait
*
* @return Generator
*/

View File

@@ -8,18 +8,24 @@
namespace Meritoo\Common\Utilities;
use Meritoo\Common\Test\Base\BaseTestCase;
/**
* Tests of the useful regular expressions methods.
* Test case of the useful regular expressions methods
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*/
class RegexTest extends \PHPUnit_Framework_TestCase
class RegexTest extends BaseTestCase
{
private $simpleText;
private $camelCaseText;
public function verifyConstructor()
{
static::assertHasNoConstructor(Regex::class);
}
public function testGetCamelCaseParts()
{
$parts = [];

View File

@@ -12,13 +12,18 @@ use Meritoo\Common\Test\Base\BaseTestCase;
use Meritoo\Common\Utilities\Uri;
/**
* Tests of the useful uri methods (only static functions).
* Test case of the useful uri methods (only static functions)
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*/
class UriTest extends BaseTestCase
{
public function verifyConstructor()
{
static::assertHasNoConstructor(Uri::class);
}
public function testAddProtocolToUrl()
{
$http = 'http';
@@ -58,7 +63,7 @@ class UriTest extends BaseTestCase
}
/**
* Provides urls to replenish protocol.
* Provides urls to replenish protocol
*
* @return \Generator
*/

View File

@@ -8,21 +8,26 @@
namespace Meritoo\Common\Test\Utilities;
use Meritoo\Common\Test\Base\BaseTestCase;
use Meritoo\Common\Utilities\Xml;
use PHPUnit_Framework_TestCase;
use SimpleXMLElement;
/**
* Tests of the useful XML-related methods (only static functions).
* Test case of the useful XML-related methods (only static functions)
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*/
class XmlTest extends PHPUnit_Framework_TestCase
class XmlTest extends BaseTestCase
{
private $simpleXml;
private $advancedXml;
public function verifyConstructor()
{
static::assertHasNoConstructor(Xml::class);
}
public function testMergeNodes()
{
/*
@@ -32,7 +37,7 @@ class XmlTest extends PHPUnit_Framework_TestCase
$element2 = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?><employees />');
$merged = Xml::mergeNodes($element1, $element2);
self::assertEquals('', (string) $merged);
self::assertEquals('', (string)$merged);
/*
* XMLs with data
@@ -41,7 +46,7 @@ class XmlTest extends PHPUnit_Framework_TestCase
$element2 = new SimpleXMLElement($this->advancedXml);
$merged = Xml::mergeNodes($element1, $element2);
self::assertEquals('John', (string) $merged->author[0]->first_name);
self::assertEquals('John', (string)$merged->author[0]->first_name);
}
/**