17 Commits
0.0.1 ... 0.0.6

Author SHA1 Message Date
Meritoo
5ab2cd9de8 Readme - add badges - TravisCI, Packagist, StyleCI, GitHub commits, GitHub license, Coverage 2017-09-19 17:10:03 +02:00
Meritoo
60eff29e82 Readme - update usage information and add examples 2017-09-19 17:06:29 +02:00
Meritoo
5aa5ff4380 BaseTestCase - fix typo 2017-09-16 14:06:19 +02:00
Meritoo
6483a8f5b7 BaseTypeTestCase - base test case for the type of something 2017-09-16 14:02:10 +02:00
Meritoo
5c0ef79b15 TestCase - make abstract & move from namespace Meritoo\Common\Utilities to Meritoo\Common\Test\Base 2017-09-16 14:01:20 +02:00
Meritoo
324f64f912 Tests - modify namespace "Meritoo\Common\Tests" -> "Meritoo\Common\Test" 2017-09-11 19:57:36 +02:00
Meritoo
5940ebba9a PHPUnit - use "Meritoo Package" as project name 2017-09-11 13:33:52 +02:00
Meritoo
787b8c697c Phing - use "Meritoo Package" as project name 2017-09-10 14:16:21 +02:00
Meritoo
96c02cdc3d Tests - verifyMethodVisibilityAndArguments() method - implementation 2017-09-10 10:22:07 +02:00
Meritoo
87d7bff5f5 TestCase - verifyMethodVisibilityAndArguments() method - verify visibility and arguments of method or class constructor 2017-09-10 10:21:28 +02:00
Meritoo
bd7c874e88 Refactor & fix coding standard 2017-09-09 21:33:49 +02:00
Meritoo
e1ffb78214 Collection of elements (class & tests) 2017-09-07 22:17:44 +02:00
Meritoo
d4dc274763 Add missing information about license 2017-09-07 15:17:52 +02:00
Meritoo
aeea1df04b Exception - InvalidUrlException - an exception used while url is invalid 2017-08-30 21:27:36 +02:00
Meritoo
b5e63ff619 Regex - move exceptions related to regular expressions to namespace with "Regex" 2017-08-30 21:25:26 +02:00
Meritoo
ecaebcca0e Remove & ignore the ".idea" folder 2017-08-30 21:07:53 +02:00
Meritoo
17ac1dc72c Readme - update installation instructions 2017-08-29 23:17:55 +02:00
55 changed files with 1258 additions and 659 deletions

55
.gitignore vendored
View File

@@ -54,60 +54,9 @@
# ----------------------------------------------------------------------------------------------------------------------
### JetBrains template
### JetBrains
# ----------------------------------------------------------------------------------------------------------------------
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
# User-specific stuff:
.idea/**/workspace.xml
.idea/**/tasks.xml
.idea/dictionaries
.idea/vcs.xml
.idea/jsLibraryMappings.xml
# Sensitive or high-churn files:
.idea/**/dataSources/
.idea/**/dataSources.ids
.idea/**/dataSources.xml
.idea/**/dataSources.local.xml
.idea/**/sqlDataSources.xml
.idea/**/dynamic.xml
.idea/**/uiDesigner.xml
# Gradle:
.idea/**/gradle.xml
.idea/**/libraries
# CMake
cmake-build-debug/
# Mongo Explorer plugin:
.idea/**/mongoSettings.xml
## File-based project format:
*.iws
## Plugin-specific files:
# IntelliJ
out/
# mpeltonen/sbt-idea plugin
.idea_modules/
# JIRA plugin
atlassian-ide-plugin.xml
# Cursive Clojure plugin
.idea/replstate.xml
# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties
/.idea
# ----------------------------------------------------------------------------------------------------------------------

1
.idea/.name generated
View File

@@ -1 +0,0 @@
Common Library (GitHub)

View File

@@ -1,210 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="WEB_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/tests/Meritoo/Common/Tests" isTestSource="false" packagePrefix="Meritoo\Common\Tests\" />
<sourceFolder url="file://$MODULE_DIR$/src/Meritoo/Common" isTestSource="false" packagePrefix="Meritoo\Common\" />
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/tests" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/vendor/behat/transliterator" />
<excludeFolder url="file://$MODULE_DIR$/vendor/composer" />
<excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/annotations" />
<excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/cache" />
<excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/collections" />
<excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/common" />
<excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/dbal" />
<excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/inflector" />
<excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/instantiator" />
<excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/lexer" />
<excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/orm" />
<excludeFolder url="file://$MODULE_DIR$/vendor/friendsofphp/php-cs-fixer" />
<excludeFolder url="file://$MODULE_DIR$/vendor/gecko-packages/gecko-php-unit" />
<excludeFolder url="file://$MODULE_DIR$/vendor/gedmo/doctrine-extensions" />
<excludeFolder url="file://$MODULE_DIR$/vendor/myclabs/deep-copy" />
<excludeFolder url="file://$MODULE_DIR$/vendor/paragonie/random_compat" />
<excludeFolder url="file://$MODULE_DIR$/vendor/pdepend/pdepend" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phpdocumentor/reflection-common" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phpdocumentor/reflection-docblock" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phpdocumentor/type-resolver" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phploc/phploc" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phpmd/phpmd" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phpspec/prophecy" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/php-code-coverage" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/php-file-iterator" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/php-text-template" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/php-timer" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/php-token-stream" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/phpunit" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/phpunit-mock-objects" />
<excludeFolder url="file://$MODULE_DIR$/vendor/psr/container" />
<excludeFolder url="file://$MODULE_DIR$/vendor/psr/log" />
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/code-unit-reverse-lookup" />
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/comparator" />
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/diff" />
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/environment" />
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/exporter" />
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/finder-facade" />
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/git" />
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/global-state" />
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/object-enumerator" />
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/phpcpd" />
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/recursion-context" />
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/resource-operations" />
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/version" />
<excludeFolder url="file://$MODULE_DIR$/vendor/squizlabs/php_codesniffer" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/config" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/console" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/debug" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/dependency-injection" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/event-dispatcher" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/filesystem" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/finder" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/http-foundation" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/options-resolver" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/polyfill-mbstring" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/polyfill-php70" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/polyfill-php72" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/process" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/stopwatch" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/yaml" />
<excludeFolder url="file://$MODULE_DIR$/vendor/theseer/fdomdocument" />
<excludeFolder url="file://$MODULE_DIR$/vendor/webmozart/assert" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module-library">
<library name="PHP" type="php">
<CLASSES>
<root url="file://$MODULE_DIR$/vendor/behat/transliterator" />
<root url="file://$MODULE_DIR$/vendor/composer" />
<root url="file://$MODULE_DIR$/vendor/doctrine/annotations" />
<root url="file://$MODULE_DIR$/vendor/doctrine/cache" />
<root url="file://$MODULE_DIR$/vendor/doctrine/collections" />
<root url="file://$MODULE_DIR$/vendor/doctrine/common" />
<root url="file://$MODULE_DIR$/vendor/doctrine/dbal" />
<root url="file://$MODULE_DIR$/vendor/doctrine/inflector" />
<root url="file://$MODULE_DIR$/vendor/doctrine/instantiator" />
<root url="file://$MODULE_DIR$/vendor/doctrine/lexer" />
<root url="file://$MODULE_DIR$/vendor/doctrine/orm" />
<root url="file://$MODULE_DIR$/vendor/friendsofphp/php-cs-fixer" />
<root url="file://$MODULE_DIR$/vendor/gecko-packages/gecko-php-unit" />
<root url="file://$MODULE_DIR$/vendor/gedmo/doctrine-extensions" />
<root url="file://$MODULE_DIR$/vendor/myclabs/deep-copy" />
<root url="file://$MODULE_DIR$/vendor/paragonie/random_compat" />
<root url="file://$MODULE_DIR$/vendor/pdepend/pdepend" />
<root url="file://$MODULE_DIR$/vendor/phpdocumentor/reflection-common" />
<root url="file://$MODULE_DIR$/vendor/phpdocumentor/reflection-docblock" />
<root url="file://$MODULE_DIR$/vendor/phpdocumentor/type-resolver" />
<root url="file://$MODULE_DIR$/vendor/phploc/phploc" />
<root url="file://$MODULE_DIR$/vendor/phpmd/phpmd" />
<root url="file://$MODULE_DIR$/vendor/phpspec/prophecy" />
<root url="file://$MODULE_DIR$/vendor/phpunit/php-code-coverage" />
<root url="file://$MODULE_DIR$/vendor/phpunit/php-file-iterator" />
<root url="file://$MODULE_DIR$/vendor/phpunit/php-text-template" />
<root url="file://$MODULE_DIR$/vendor/phpunit/php-timer" />
<root url="file://$MODULE_DIR$/vendor/phpunit/php-token-stream" />
<root url="file://$MODULE_DIR$/vendor/phpunit/phpunit" />
<root url="file://$MODULE_DIR$/vendor/phpunit/phpunit-mock-objects" />
<root url="file://$MODULE_DIR$/vendor/psr/container" />
<root url="file://$MODULE_DIR$/vendor/psr/log" />
<root url="file://$MODULE_DIR$/vendor/sebastian/code-unit-reverse-lookup" />
<root url="file://$MODULE_DIR$/vendor/sebastian/comparator" />
<root url="file://$MODULE_DIR$/vendor/sebastian/diff" />
<root url="file://$MODULE_DIR$/vendor/sebastian/environment" />
<root url="file://$MODULE_DIR$/vendor/sebastian/exporter" />
<root url="file://$MODULE_DIR$/vendor/sebastian/finder-facade" />
<root url="file://$MODULE_DIR$/vendor/sebastian/git" />
<root url="file://$MODULE_DIR$/vendor/sebastian/global-state" />
<root url="file://$MODULE_DIR$/vendor/sebastian/object-enumerator" />
<root url="file://$MODULE_DIR$/vendor/sebastian/phpcpd" />
<root url="file://$MODULE_DIR$/vendor/sebastian/recursion-context" />
<root url="file://$MODULE_DIR$/vendor/sebastian/resource-operations" />
<root url="file://$MODULE_DIR$/vendor/sebastian/version" />
<root url="file://$MODULE_DIR$/vendor/squizlabs/php_codesniffer" />
<root url="file://$MODULE_DIR$/vendor/symfony/config" />
<root url="file://$MODULE_DIR$/vendor/symfony/console" />
<root url="file://$MODULE_DIR$/vendor/symfony/debug" />
<root url="file://$MODULE_DIR$/vendor/symfony/dependency-injection" />
<root url="file://$MODULE_DIR$/vendor/symfony/event-dispatcher" />
<root url="file://$MODULE_DIR$/vendor/symfony/filesystem" />
<root url="file://$MODULE_DIR$/vendor/symfony/finder" />
<root url="file://$MODULE_DIR$/vendor/symfony/http-foundation" />
<root url="file://$MODULE_DIR$/vendor/symfony/options-resolver" />
<root url="file://$MODULE_DIR$/vendor/symfony/polyfill-mbstring" />
<root url="file://$MODULE_DIR$/vendor/symfony/polyfill-php70" />
<root url="file://$MODULE_DIR$/vendor/symfony/polyfill-php72" />
<root url="file://$MODULE_DIR$/vendor/symfony/process" />
<root url="file://$MODULE_DIR$/vendor/symfony/stopwatch" />
<root url="file://$MODULE_DIR$/vendor/symfony/yaml" />
<root url="file://$MODULE_DIR$/vendor/theseer/fdomdocument" />
<root url="file://$MODULE_DIR$/vendor/webmozart/assert" />
</CLASSES>
<SOURCES>
<root url="file://$MODULE_DIR$/vendor/behat/transliterator" />
<root url="file://$MODULE_DIR$/vendor/composer" />
<root url="file://$MODULE_DIR$/vendor/doctrine/annotations" />
<root url="file://$MODULE_DIR$/vendor/doctrine/cache" />
<root url="file://$MODULE_DIR$/vendor/doctrine/collections" />
<root url="file://$MODULE_DIR$/vendor/doctrine/common" />
<root url="file://$MODULE_DIR$/vendor/doctrine/dbal" />
<root url="file://$MODULE_DIR$/vendor/doctrine/inflector" />
<root url="file://$MODULE_DIR$/vendor/doctrine/instantiator" />
<root url="file://$MODULE_DIR$/vendor/doctrine/lexer" />
<root url="file://$MODULE_DIR$/vendor/doctrine/orm" />
<root url="file://$MODULE_DIR$/vendor/friendsofphp/php-cs-fixer" />
<root url="file://$MODULE_DIR$/vendor/gecko-packages/gecko-php-unit" />
<root url="file://$MODULE_DIR$/vendor/gedmo/doctrine-extensions" />
<root url="file://$MODULE_DIR$/vendor/myclabs/deep-copy" />
<root url="file://$MODULE_DIR$/vendor/paragonie/random_compat" />
<root url="file://$MODULE_DIR$/vendor/pdepend/pdepend" />
<root url="file://$MODULE_DIR$/vendor/phpdocumentor/reflection-common" />
<root url="file://$MODULE_DIR$/vendor/phpdocumentor/reflection-docblock" />
<root url="file://$MODULE_DIR$/vendor/phpdocumentor/type-resolver" />
<root url="file://$MODULE_DIR$/vendor/phploc/phploc" />
<root url="file://$MODULE_DIR$/vendor/phpmd/phpmd" />
<root url="file://$MODULE_DIR$/vendor/phpspec/prophecy" />
<root url="file://$MODULE_DIR$/vendor/phpunit/php-code-coverage" />
<root url="file://$MODULE_DIR$/vendor/phpunit/php-file-iterator" />
<root url="file://$MODULE_DIR$/vendor/phpunit/php-text-template" />
<root url="file://$MODULE_DIR$/vendor/phpunit/php-timer" />
<root url="file://$MODULE_DIR$/vendor/phpunit/php-token-stream" />
<root url="file://$MODULE_DIR$/vendor/phpunit/phpunit" />
<root url="file://$MODULE_DIR$/vendor/phpunit/phpunit-mock-objects" />
<root url="file://$MODULE_DIR$/vendor/psr/container" />
<root url="file://$MODULE_DIR$/vendor/psr/log" />
<root url="file://$MODULE_DIR$/vendor/sebastian/code-unit-reverse-lookup" />
<root url="file://$MODULE_DIR$/vendor/sebastian/comparator" />
<root url="file://$MODULE_DIR$/vendor/sebastian/diff" />
<root url="file://$MODULE_DIR$/vendor/sebastian/environment" />
<root url="file://$MODULE_DIR$/vendor/sebastian/exporter" />
<root url="file://$MODULE_DIR$/vendor/sebastian/finder-facade" />
<root url="file://$MODULE_DIR$/vendor/sebastian/git" />
<root url="file://$MODULE_DIR$/vendor/sebastian/global-state" />
<root url="file://$MODULE_DIR$/vendor/sebastian/object-enumerator" />
<root url="file://$MODULE_DIR$/vendor/sebastian/phpcpd" />
<root url="file://$MODULE_DIR$/vendor/sebastian/recursion-context" />
<root url="file://$MODULE_DIR$/vendor/sebastian/resource-operations" />
<root url="file://$MODULE_DIR$/vendor/sebastian/version" />
<root url="file://$MODULE_DIR$/vendor/squizlabs/php_codesniffer" />
<root url="file://$MODULE_DIR$/vendor/symfony/config" />
<root url="file://$MODULE_DIR$/vendor/symfony/console" />
<root url="file://$MODULE_DIR$/vendor/symfony/debug" />
<root url="file://$MODULE_DIR$/vendor/symfony/dependency-injection" />
<root url="file://$MODULE_DIR$/vendor/symfony/event-dispatcher" />
<root url="file://$MODULE_DIR$/vendor/symfony/filesystem" />
<root url="file://$MODULE_DIR$/vendor/symfony/finder" />
<root url="file://$MODULE_DIR$/vendor/symfony/http-foundation" />
<root url="file://$MODULE_DIR$/vendor/symfony/options-resolver" />
<root url="file://$MODULE_DIR$/vendor/symfony/polyfill-mbstring" />
<root url="file://$MODULE_DIR$/vendor/symfony/polyfill-php70" />
<root url="file://$MODULE_DIR$/vendor/symfony/polyfill-php72" />
<root url="file://$MODULE_DIR$/vendor/symfony/process" />
<root url="file://$MODULE_DIR$/vendor/symfony/stopwatch" />
<root url="file://$MODULE_DIR$/vendor/symfony/yaml" />
<root url="file://$MODULE_DIR$/vendor/theseer/fdomdocument" />
<root url="file://$MODULE_DIR$/vendor/webmozart/assert" />
</SOURCES>
</library>
</orderEntry>
</component>
</module>

View File

@@ -1,9 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ComposerJsonPluginSettings">
<unboundedVersionInspectionSettings>
<excludedPackages />
</unboundedVersionInspectionSettings>
<customRepositories />
</component>
</project>

6
.idea/encodings.xml generated
View File

@@ -1,6 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding">
<file url="PROJECT" charset="UTF-8" />
</component>
</project>

8
.idea/modules.xml generated
View File

@@ -1,8 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/Common Library (GitHub).iml" filepath="$PROJECT_DIR$/.idea/Common Library (GitHub).iml" />
</modules>
</component>
</project>

75
.idea/php.xml generated
View File

@@ -1,75 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="PhpIncludePathManager">
<include_path>
<path value="$PROJECT_DIR$/vendor/doctrine/inflector" />
<path value="$PROJECT_DIR$/vendor/doctrine/annotations" />
<path value="$PROJECT_DIR$/vendor/doctrine/lexer" />
<path value="$PROJECT_DIR$/vendor/doctrine/common" />
<path value="$PROJECT_DIR$/vendor/doctrine/cache" />
<path value="$PROJECT_DIR$/vendor/doctrine/instantiator" />
<path value="$PROJECT_DIR$/vendor/doctrine/collections" />
<path value="$PROJECT_DIR$/vendor/composer" />
<path value="$PROJECT_DIR$/vendor/phpspec/prophecy" />
<path value="$PROJECT_DIR$/vendor/symfony/yaml" />
<path value="$PROJECT_DIR$/vendor/symfony/config" />
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-mbstring" />
<path value="$PROJECT_DIR$/vendor/symfony/stopwatch" />
<path value="$PROJECT_DIR$/vendor/symfony/http-foundation" />
<path value="$PROJECT_DIR$/vendor/behat/transliterator" />
<path value="$PROJECT_DIR$/vendor/symfony/finder" />
<path value="$PROJECT_DIR$/vendor/symfony/filesystem" />
<path value="$PROJECT_DIR$/vendor/symfony/event-dispatcher" />
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-php70" />
<path value="$PROJECT_DIR$/vendor/theseer/fdomdocument" />
<path value="$PROJECT_DIR$/vendor/symfony/dependency-injection" />
<path value="$PROJECT_DIR$/vendor/symfony/debug" />
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-php72" />
<path value="$PROJECT_DIR$/vendor/symfony/options-resolver" />
<path value="$PROJECT_DIR$/vendor/phpunit/php-code-coverage" />
<path value="$PROJECT_DIR$/vendor/symfony/process" />
<path value="$PROJECT_DIR$/vendor/symfony/console" />
<path value="$PROJECT_DIR$/vendor/phpunit/php-text-template" />
<path value="$PROJECT_DIR$/vendor/phpunit/php-timer" />
<path value="$PROJECT_DIR$/vendor/phpunit/phpunit-mock-objects" />
<path value="$PROJECT_DIR$/vendor/gecko-packages/gecko-php-unit" />
<path value="$PROJECT_DIR$/vendor/phpunit/php-token-stream" />
<path value="$PROJECT_DIR$/vendor/sebastian/finder-facade" />
<path value="$PROJECT_DIR$/vendor/phpunit/php-file-iterator" />
<path value="$PROJECT_DIR$/vendor/sebastian/git" />
<path value="$PROJECT_DIR$/vendor/sebastian/exporter" />
<path value="$PROJECT_DIR$/vendor/sebastian/code-unit-reverse-lookup" />
<path value="$PROJECT_DIR$/vendor/webmozart/assert" />
<path value="$PROJECT_DIR$/vendor/sebastian/resource-operations" />
<path value="$PROJECT_DIR$/vendor/sebastian/version" />
<path value="$PROJECT_DIR$/vendor/psr/log" />
<path value="$PROJECT_DIR$/vendor/sebastian/diff" />
<path value="$PROJECT_DIR$/vendor/sebastian/environment" />
<path value="$PROJECT_DIR$/vendor/sebastian/comparator" />
<path value="$PROJECT_DIR$/vendor/sebastian/global-state" />
<path value="$PROJECT_DIR$/vendor/doctrine/dbal" />
<path value="$PROJECT_DIR$/vendor/psr/container" />
<path value="$PROJECT_DIR$/vendor/sebastian/object-enumerator" />
<path value="$PROJECT_DIR$/vendor/sebastian/recursion-context" />
<path value="$PROJECT_DIR$/vendor/friendsofphp/php-cs-fixer" />
<path value="$PROJECT_DIR$/vendor/phpdocumentor/type-resolver" />
<path value="$PROJECT_DIR$/vendor/phpunit/phpunit" />
<path value="$PROJECT_DIR$/vendor/phpdocumentor/reflection-docblock" />
<path value="$PROJECT_DIR$/vendor/doctrine/orm" />
<path value="$PROJECT_DIR$/vendor/phpdocumentor/reflection-common" />
<path value="$PROJECT_DIR$/vendor/pdepend/pdepend" />
<path value="$PROJECT_DIR$/vendor/sebastian/phpcpd" />
<path value="$PROJECT_DIR$/vendor/phploc/phploc" />
<path value="$PROJECT_DIR$/vendor/squizlabs/php_codesniffer" />
<path value="$PROJECT_DIR$/vendor/phpmd/phpmd" />
<path value="$PROJECT_DIR$/vendor/paragonie/random_compat" />
<path value="$PROJECT_DIR$/vendor/myclabs/deep-copy" />
<path value="$PROJECT_DIR$/vendor/gedmo/doctrine-extensions" />
</include_path>
</component>
<component name="PhpUnit">
<phpunit_settings>
<PhpUnitSettings load_method="CUSTOM_LOADER" custom_loader_path="$PROJECT_DIR$/vendor/autoload.php" phpunit_phar_path="" />
</phpunit_settings>
</component>
</project>

14
.idea/webResources.xml generated
View File

@@ -1,14 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="WebResourcesPaths">
<contentEntries>
<entry url="file://$PROJECT_DIR$">
<entryData>
<resourceRoots>
<path value="file://$PROJECT_DIR$/data" />
</resourceRoots>
</entryData>
</entry>
</contentEntries>
</component>
</project>

1
.styleci.yml Normal file
View File

@@ -0,0 +1 @@
preset: symfony

6
.travis.yml Normal file
View File

@@ -0,0 +1,6 @@
language: php
php:
- 5.6
- 7.1
- nightly

103
README.md
View File

@@ -1,22 +1,9 @@
# Meritoo Common Library
# 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.
## Installation
#### Composer
1. Open ```composer.json``` and add address of repository in ```repositories``` section:
```json
"repositories": [
{
"type": "vcs",
"url": "git@github.com:meritoo/common-library.git"
}
]
```
2. Run [Composer](https://getcomposer.org) to install new package:
Run [Composer](https://getcomposer.org) to install new package:
```bash
$ composer require meritoo/common-library
@@ -24,15 +11,93 @@ Useful classes, methods, extensions etc.
> How to install Composer: https://getcomposer.org/download
## Usage
## Static methods
This package contains a lot of static methods, so usage is not so complicated. Just run the static method who would you like to use. Example:
This package contains a lot of class with static methods, so usage is not so complicated. Just run the static method who would you like to use. Example:
```php
use Meritoo\Common\Utilities\Arrays;
$firstElement = Arrays::getFirstElement(['lorem' 'ipsum']);
// result: "lorem"
$firstElement = Arrays::getFirstElement(['lorem', 'ipsum']);
var_dump($firstElement); // string(5) "lorem"
```
## Base test case with common methods and data providers
Located here: `Meritoo\Common\Test\Base\BaseTestCase`. Just extend the `BaseTestCase` class and use it like in `Meritoo\Common\Test\Utilities\DateTest` class:
```php
class DateTest extends BaseTestCase
{
/**
* @param mixed $value Empty value, e.g. ""
* @dataProvider provideEmptyValue
*/
public function testGetDateTimeEmptyValue($value)
{
self::assertFalse(Date::getDateTime($value));
}
(...)
}
```
or in `Meritoo\Common\Test\Utilities\MimeTypesTest` class:
```php
class MimeTypesTest extends BaseTestCase
{
(...)
/**
* @param bool $mimeType The mime type, e.g. "video/mpeg"
* @dataProvider provideBooleanValue
*/
public function testGetExtensionBooleanMimeType($mimeType)
{
self::assertEquals('', MimeTypes::getExtension($mimeType));
}
(...)
}
```
## Collection of elements
Located here: `Meritoo\Common\Collection\Collection`. It's a set of some elements, e.g. objects. It's iterable and countable. Provides very useful methods. Some of them:
- `getFirst()` - returns the first element in the collection
- `getLast()` - returns the last element in the collection
- `isEmpty()` - returns information if collection is empty
- `add($element, $index = null)` - adds given element (at the end of collection)
- `addMultiple($elements, $useIndexes = false)` - adds given elements (at the end of collection)
- `prepend($element)` - prepends given element (adds given element at the beginning of collection)
- `remove($element)` - removes given element
Examples of usage below.
#### An empty collection
```php
use Meritoo\Common\Collection\Collection;
$emptyCollection = new Collection();
var_dump($emptyCollection->isEmpty()); // bool(true)
```
#### Simple collection
```php
use Meritoo\Common\Collection\Collection;
$elements = [
'lorem',
'ipsum',
123 => 'dolor',
345 => 'sit',
];
$simpleCollection = new Collection($elements);
var_dump($simpleCollection->has('dolor')); // bool(true)
```
Enjoy!

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<project name="Meritoo Common Library" basedir="." default="build:main" phingVersion="2.14.0">
<project name="Meritoo Package" basedir="." default="build:main" phingVersion="2.14.0">
<!-- Properties -->
<if>
<available file="phing/properties" property="custom.properties.available"/>

View File

@@ -2,7 +2,7 @@
"name": "meritoo/common-library",
"description": "Useful classes, methods, extensions etc.",
"license": "MIT",
"version": "0.0.1",
"version": "0.0.6",
"authors": [
{
"name": "Meritoo.pl",
@@ -28,7 +28,7 @@
"autoload": {
"psr-4": {
"Meritoo\\Common\\": "src/Meritoo/Common/",
"Meritoo\\Common\\Tests\\": "tests/Meritoo/Common/Tests/"
"Meritoo\\Common\\Test\\": "tests/Meritoo/Common/Test/"
}
}
}

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<project name="Meritoo Common Library" basedir="." default="build:main" phingVersion="2.14.0">
<project name="Meritoo Package" basedir="." default="build:main" phingVersion="2.14.0">
<!-- Properties -->
<if>
<available file="phing/properties" property="custom.properties.available"/>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<project name="Meritoo Common Library" basedir="." default="build:main" phingVersion="2.14.0">
<project name="Meritoo Package" basedir="." default="build:main" phingVersion="2.14.0">
<!--
The AutoloaderTask is required to load binaries installed by Composer.
The "autoloaderpath" attribute of this task is not required, because it's default value is: vendor/autoload.php.

View File

@@ -12,7 +12,7 @@
bootstrap="./vendor/autoload.php"
>
<testsuites>
<testsuite name="Meritoo's Common Library Test Suite">
<testsuite name="Meritoo Package - Main Test Suite">
<directory>./tests/</directory>
</testsuite>
</testsuites>

View File

@@ -0,0 +1,284 @@
<?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\Collection;
use ArrayAccess;
use ArrayIterator;
use Countable;
use IteratorAggregate;
use Meritoo\Common\Utilities\Arrays;
/**
* Collection of elements.
* It's a set of some elements, e.g. objects.
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*/
class Collection implements Countable, ArrayAccess, IteratorAggregate
{
/**
* The elements of collection
*
* @var array
*/
private $elements;
/**
* Class constructor
*
* @param array $elements (optional) The elements of collection
*/
public function __construct(array $elements = [])
{
$this->elements = $elements;
}
/**
* {@inheritdoc}
* Required by interface Countable
*/
public function count()
{
return count($this->elements);
}
/**
* {@inheritdoc}
* Required by interface ArrayAccess
*/
public function offsetExists($offset)
{
return $this->exists($offset);
}
/**
* {@inheritdoc}
* Required by interface ArrayAccess
*/
public function offsetGet($offset)
{
if ($this->exists($offset)) {
return $this->elements[$offset];
}
return null;
}
/**
* {@inheritdoc}
* Required by interface ArrayAccess
*/
public function offsetSet($offset, $value)
{
$this->elements[$offset] = $value;
}
/**
* {@inheritdoc}
* Required by interface ArrayAccess
*/
public function offsetUnset($offset)
{
if ($this->exists($offset)) {
unset($this->elements[$offset]);
}
}
/**
* {@inheritdoc}
* Required by interface IteratorAggregate
*/
public function getIterator()
{
return new ArrayIterator($this->elements);
}
/**
* 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) {
$this->elements[] = $element;
} else {
$this->elements[$index] = $element;
}
return $this;
}
/**
* 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)
{
if (!empty($elements)) {
foreach ($elements as $index => $element) {
if (!$useIndexes) {
$index = null;
}
$this->add($element, $index);
}
}
return $this;
}
/**
* Prepends given element (adds given element at the beginning of collection)
*
* @param mixed $element The element to prepend
* @return $this
*/
public function prepend($element)
{
array_unshift($this->elements, $element);
return $this;
}
/**
* Removes given element
*
* @param mixed $element The element to remove
* @return $this
*/
public function remove($element)
{
if ($this->count() > 0) {
foreach ($this->elements as $index => $existing) {
if ($element === $existing) {
unset($this->elements[$index]);
break;
}
}
}
return $this;
}
/**
* Returns information if collection is empty
*
* @return bool
*/
public function isEmpty()
{
return empty($this->elements);
}
/**
* Returns information if given element is first in the collection
*
* @param mixed $element The element to verify
* @return bool
*/
public function isFirst($element)
{
return reset($this->elements) === $element;
}
/**
* Returns information if given element is last in the collection
*
* @param mixed $element The element to verify
* @return bool
*/
public function isLast($element)
{
return end($this->elements) === $element;
}
/**
* 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;
}
/**
* Returns previous element for given element
*
* @param mixed $element The element to verify
* @return mixed|null
*/
public function getPrevious($element)
{
return Arrays::getPreviousElement($this->elements, $element);
}
/**
* Returns next element for given element
*
* @param mixed $element The element to verify
* @return mixed|null
*/
public function getNext($element)
{
return Arrays::getNextElement($this->elements, $element);
}
/**
* Returns the first element in the collection
*
* @return mixed
*/
public function getFirst()
{
return Arrays::getFirstElement($this->elements);
}
/**
* Returns the last element in the collection
*
* @return mixed
*/
public function getLast()
{
return Arrays::getLastElement($this->elements);
}
/**
* Returns an array representation of the collection
*
* @return array
*/
public function toArray()
{
return $this->elements;
}
/**
* Returns information if element with given index/key exists
*
* @param string|int $index The index/key of element
* @return bool
*/
private function exists($index)
{
return isset($this->elements[$index]) || array_key_exists($index, $this->elements);
}
}

View File

@@ -1,32 +0,0 @@
<?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\Date;
use Exception;
/**
* An exception used while given part of date is incorrect, e.g. value of year is incorrect
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*/
class IncorrectDatePartException extends Exception
{
/**
* Class constructor
*
* @param string $value Incorrect value
* @param string $datePart Type of date part, e.g. "year". One of \Meritoo\Common\Type\DatePartType class constants.
*/
public function __construct($value, $datePart)
{
$message = sprintf('Value of %s \'%s\' is incorrect. Is there everything ok?', $datePart, $value);
parent::__construct($message);
}
}

View File

@@ -0,0 +1,32 @@
<?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\Date;
use Meritoo\Common\Exception\Base\UnknownTypeException;
use Meritoo\Common\Type\DatePartType;
/**
* An exception used while type of date part, e.g. "year", is unknown
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*/
class UnknownDatePartTypeException extends UnknownTypeException
{
/**
* Class constructor
*
* @param string $unknownDatePart Type of date part, e.g. "year". One of DatePartType class constants.
* @param string $value Incorrect value
*/
public function __construct($unknownDatePart, $value)
{
parent::__construct($unknownDatePart, new DatePartType(), sprintf('date part (with value %s)', $value));
}
}

View File

@@ -6,7 +6,7 @@
* file that was distributed with this source code.
*/
namespace Meritoo\Common\Exception;
namespace Meritoo\Common\Exception\Regex;
/**
* An exception used while length of given hexadecimal value of color is incorrect

View File

@@ -6,10 +6,10 @@
* file that was distributed with this source code.
*/
namespace Meritoo\Common\Exception;
namespace Meritoo\Common\Exception\Regex;
/**
* An exception used while given hexadecimal value of color is incorrect
* An exception used while given hexadecimal value of color is invalid
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
@@ -19,11 +19,11 @@ class InvalidColorHexValueException extends \Exception
/**
* Class constructor
*
* @param string $color Incorrect hexadecimal value of color
* @param string $color Invalid hexadecimal value of color
*/
public function __construct($color)
{
$message = sprintf('Hexadecimal value of color \'%s\' is incorrect. Is there everything ok?', $color);
$message = sprintf('Hexadecimal value of color \'%s\' is invalid. Is there everything ok?', $color);
parent::__construct($message);
}
}

View File

@@ -0,0 +1,23 @@
<?php
namespace Meritoo\Common\Exception\Regex;
/**
* An exception used while url is invalid
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*/
class InvalidUrlException extends \Exception
{
/**
* Class constructor
*
* @param string $url Invalid url
*/
public function __construct($url)
{
$message = sprintf('Url \'%s\' is invalid. Is there everything ok?', $url);
parent::__construct($message);
}
}

View File

@@ -0,0 +1,23 @@
<?php
namespace Meritoo\Common\Exception\Type;
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
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*/
class UnknownOopVisibilityTypeException extends UnknownTypeException
{
/**
* {@inheritdoc}
*/
public function __construct($unknownType)
{
parent::__construct($unknownType, new OopVisibilityType(), 'OOP-related visibility');
}
}

View File

@@ -0,0 +1,199 @@
<?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\Base;
use DateTime;
use Generator;
use Meritoo\Common\Exception\Type\UnknownOopVisibilityTypeException;
use Meritoo\Common\Type\OopVisibilityType;
use PHPUnit_Framework_TestCase;
use ReflectionClass;
use ReflectionMethod;
/**
* 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
{
/**
* Provides an empty value
*
* @return Generator
*/
public function provideEmptyValue()
{
yield[''];
yield[' '];
yield[null];
yield[0];
yield[false];
yield[[]];
}
/**
* Provides boolean value
*
* @return Generator
*/
public function provideBooleanValue()
{
yield[false];
yield[true];
}
/**
* Provides instance of DateTime class
*
* @return Generator
*/
public function provideDateTimeInstance()
{
yield[new DateTime()];
yield[new DateTime('yesterday')];
yield[new DateTime('now')];
yield[new DateTime('tomorrow')];
}
/**
* Provides relative / compound format of DateTime
*
* @return Generator
*/
public function provideDateTimeRelativeFormat()
{
yield['now'];
yield['yesterday'];
yield['tomorrow'];
yield['back of 10'];
yield['front of 10'];
yield['last day of February'];
yield['first day of next month'];
yield['last day of previous month'];
yield['last day of next month'];
yield['Y-m-d'];
yield['Y-m-d 10:00'];
}
/**
* Provides path of not existing file, e.g. "lorem/ipsum.jpg"
*
* @return Generator
*/
public function provideNotExistingFilePath()
{
yield['lets-test.doc'];
yield['lorem/ipsum.jpg'];
yield['surprise/me/one/more/time.txt'];
}
/**
* Returns path of file used by tests.
* It should be placed in /data/tests directory of this project.
*
* @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;
}
return sprintf('%s/../../../../../data/tests/%s%s', __DIR__, $fileName, $directoryPath);
}
/**
* 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
* @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
*
* 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(
$classNamespace,
$method,
$visibilityType,
$argumentsCount = 0,
$requiredArgumentsCount = 0
) {
/*
* Type of visibility is correct?
*/
if (!(new OopVisibilityType())->isCorrectType($visibilityType)) {
throw new UnknownOopVisibilityTypeException($visibilityType);
}
$reflection = new ReflectionClass($classNamespace);
/*
* Name of method provided only?
* Let's find instance of the method (based on reflection)
*/
if (!$method instanceof ReflectionMethod) {
$method = $reflection->getMethod($method);
}
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;
}
static::assertEquals($argumentsCount, $method->getNumberOfParameters());
static::assertEquals($requiredArgumentsCount, $method->getNumberOfRequiredParameters());
}
/**
* Verifies visibility and arguments of class constructor
*
* @param string $classNamespace Namespace of class that contains method 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(
$classNamespace,
$visibilityType,
$argumentsCount = 0,
$requiredArgumentsCount = 0
) {
/*
* Let's grab the constructor
*/
$reflection = new ReflectionClass($classNamespace);
$method = $reflection->getConstructor();
return $this->verifyMethodVisibilityAndArguments($classNamespace, $method, $visibilityType, $argumentsCount, $requiredArgumentsCount);
}
}

View File

@@ -0,0 +1,60 @@
<?php
namespace Meritoo\Common\Test\Base;
use Generator;
use Meritoo\Common\Type\Base\BaseType;
/**
* Base test case for the type of something
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*/
abstract class BaseTypeTestCase extends BaseTestCase
{
/**
* Verifies availability of all types
*/
public function testAvailabilityOfAllTypes()
{
$available = $this->getTestedTypeInstance()->getAll();
$all = $this->getAllExpectedTypes();
static::assertEquals($all, $available);
}
/**
* 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
*
* @dataProvider provideTypeToVerify
*/
public function testIfGivenTypeIsCorrect($type, $expected)
{
static::assertEquals($expected, $this->getTestedTypeInstance()->isCorrectType($type));
}
/**
* Provides type to verify and information if it's correct
*
* @return Generator
*/
abstract public function provideTypeToVerify();
/**
* Returns instance of the tested type
*
* @return BaseType
*/
abstract protected function getTestedTypeInstance();
/**
* Returns all expected types of the tested type
*
* @return array
*/
abstract protected function getAllExpectedTypes();
}

View File

@@ -1,5 +1,11 @@
<?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\Type;
use Meritoo\Common\Type\Base\BaseType;

View File

@@ -0,0 +1,37 @@
<?php
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
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*
* @see http://php.net/manual/en/language.oop5.visibility.php
*/
class OopVisibilityType extends BaseType
{
/**
* The "private" visibility of OOP
*
* @var int
*/
const IS_PRIVATE = 3;
/**
* The "protected" visibility of OOP
*
* @var int
*/
const IS_PROTECTED = 2;
/**
* The "public" visibility of OOP
*
* @var int
*/
const IS_PUBLIC = 1;
}

View File

@@ -10,7 +10,7 @@ namespace Meritoo\Common\Utilities;
use DateInterval;
use DateTime;
use Meritoo\Common\Exception\Date\IncorrectDatePartException;
use Meritoo\Common\Exception\Date\UnknownDatePartTypeException;
use Meritoo\Common\Type\DatePartType;
/**
@@ -231,7 +231,7 @@ class Date
* @param int $day The day value
*
* @return int
* @throws IncorrectDatePartException
* @throws UnknownDatePartTypeException
*/
public static function getDayOfWeek($year, $month, $day)
{
@@ -243,21 +243,21 @@ class Date
* Oops, incorrect year
*/
if ($year <= 0) {
throw new IncorrectDatePartException($year, DatePartType::YEAR);
throw new UnknownDatePartTypeException(DatePartType::YEAR, $year);
}
/*
* Oops, incorrect month
*/
if ($month < 1 || $month > 12) {
throw new IncorrectDatePartException($month, DatePartType::MONTH);
throw new UnknownDatePartTypeException(DatePartType::MONTH, $month);
}
/*
* Oops, incorrect day
*/
if ($day < 1 || $day > 31) {
throw new IncorrectDatePartException($day, DatePartType::DAY);
throw new UnknownDatePartTypeException(DatePartType::DAY, $day);
}
if ($month < 3) {

View File

@@ -8,8 +8,8 @@
namespace Meritoo\Common\Utilities;
use Meritoo\Common\Exception\IncorrectColorHexLengthException;
use Meritoo\Common\Exception\InvalidColorHexValueException;
use Meritoo\Common\Exception\Regex\IncorrectColorHexLengthException;
use Meritoo\Common\Exception\Regex\InvalidColorHexValueException;
/**
* Useful regular expressions methods

View File

@@ -1,103 +0,0 @@
<?php
namespace Meritoo\Common\Utilities;
use DateTime;
use Generator;
/**
* Test case with common methods and data providers
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*/
class TestCase extends \PHPUnit_Framework_TestCase
{
/**
* Provides an empty value
*
* @return Generator
*/
public function provideEmptyValue()
{
yield[''];
yield[' '];
yield[null];
yield[0];
yield[false];
yield[[]];
}
/**
* Provides boolean value
*
* @return Generator
*/
public function provideBooleanValue()
{
yield[false];
yield[true];
}
/**
* Provides instance of DateTime class
*
* @return Generator
*/
public function provideDateTimeInstance()
{
yield[new DateTime()];
yield[new DateTime('yesterday')];
yield[new DateTime('now')];
yield[new DateTime('tomorrow')];
}
/**
* Provides relative / compound format of DateTime
*
* @return Generator
*/
public function provideDateTimeRelativeFormat()
{
yield['now'];
yield['yesterday'];
yield['tomorrow'];
yield['back of 10'];
yield['front of 10'];
yield['last day of February'];
yield['first day of next month'];
yield['last day of previous month'];
yield['last day of next month'];
yield['Y-m-d'];
yield['Y-m-d 10:00'];
}
/**
* Provides path of not existing file, e.g. "lorem/ipsum.jpg"
*
* @return Generator
*/
public function provideNotExistingFilePath()
{
yield['lets-test.doc'];
yield['lorem/ipsum.jpg'];
yield['suprise/me/one/more/time.txt'];
}
/**
* Returns path of file used by tests.
* It should be placed in /data/tests directory of this project.
*
* @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;
}
return sprintf('%s/../../../../data/tests/%s%s', __DIR__, $fileName, $directoryPath);
}
}

View File

@@ -0,0 +1,329 @@
<?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\Collection;
use ArrayIterator;
use Meritoo\Common\Collection\Collection;
use Meritoo\Common\Test\Base\BaseTestCase;
use Meritoo\Common\Type\OopVisibilityType;
/**
* Tests of the collection of elements
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*/
class CollectionTest extends BaseTestCase
{
/**
* An empty collection
*
* @var Collection
*/
private $emptyCollection;
/**
* Simple collection
*
* @var Collection
*/
private $simpleCollection;
/**
* Elements of simple collection
*
* @var array
*/
private $simpleElements;
public function testEmptyCollection()
{
static::assertEquals(0, $this->emptyCollection->count());
static::assertCount(0, $this->emptyCollection);
static::assertEmpty($this->emptyCollection);
static::assertTrue($this->emptyCollection->isEmpty());
static::assertEquals([], $this->emptyCollection->toArray());
static::assertEmpty($this->emptyCollection->toArray());
static::assertNull($this->emptyCollection->getFirst());
static::assertNull($this->emptyCollection->getLast());
static::assertNull($this->emptyCollection[1]);
static::assertNull($this->emptyCollection['abc']);
}
public function testNotEmptyCollection()
{
static::assertEquals(4, $this->simpleCollection->count());
static::assertCount(4, $this->simpleCollection);
static::assertNotEmpty($this->simpleCollection);
static::assertFalse($this->simpleCollection->isEmpty());
static::assertEquals($this->simpleElements, $this->simpleCollection->toArray());
static::assertNotEmpty($this->simpleCollection->toArray());
static::assertEquals('lorem', $this->simpleCollection->getFirst());
static::assertEquals('sit', $this->simpleCollection->getLast());
static::assertEquals('dolor', $this->simpleCollection[123]);
}
public function testCount()
{
static::assertEquals(0, $this->emptyCollection->count());
static::assertEquals(4, $this->simpleCollection->count());
}
public function testOffsetExists()
{
static::assertFalse(isset($this->emptyCollection['abc']));
static::assertFalse(isset($this->simpleCollection['abc']));
static::assertTrue(isset($this->simpleCollection[0]));
static::assertTrue(isset($this->simpleCollection[345]));
}
public function testOffsetGet()
{
static::assertNull($this->emptyCollection['abc']);
static::assertNull($this->simpleCollection['abc']);
static::assertEquals('lorem', $this->simpleCollection[0]);
static::assertEquals('sit', $this->simpleCollection[345]);
}
public function testOffsetSet()
{
$this->emptyCollection['test1'] = 1234;
$this->simpleCollection['test2'] = 5678;
static::assertTrue($this->emptyCollection->has(1234));
static::assertEquals(1234, $this->emptyCollection['test1']);
static::assertTrue($this->simpleCollection->has(5678));
static::assertEquals(5678, $this->simpleCollection['test2']);
}
public function testOffsetUnset()
{
unset($this->simpleCollection[0]);
static::assertFalse($this->simpleCollection->has('lorem'));
static::assertEquals('ipsum', $this->simpleCollection[1]);
static::assertEquals(3, $this->simpleCollection->count());
unset($this->simpleCollection[123]);
static::assertFalse($this->simpleCollection->has('dolor'));
static::assertEquals('ipsum', $this->simpleCollection[1]);
static::assertEquals(2, $this->simpleCollection->count());
}
public function testGetIterator()
{
static::assertInstanceOf(ArrayIterator::class, $this->simpleCollection->getIterator());
}
public function testAdd()
{
$this->emptyCollection->add('test1');
static::assertTrue($this->emptyCollection->has('test1'));
static::assertEquals(1, $this->emptyCollection->count());
static::assertEquals('test1', $this->emptyCollection[0]);
}
public function testAddWithIndex()
{
$this->emptyCollection->add('test2', 1234);
static::assertTrue($this->emptyCollection->has('test2'));
static::assertEquals(1, $this->emptyCollection->count());
static::assertEquals('test2', $this->emptyCollection[1234]);
}
public function testAddMultipleUsingEmptyArray()
{
$this->emptyCollection->addMultiple([]);
static::assertEquals(0, $this->emptyCollection->count());
static::assertTrue($this->emptyCollection->isEmpty());
}
public function testAddMultiple()
{
$elements = [
'test1',
'test2',
1234 => 'test3',
5678 => 'test4',
];
$this->emptyCollection->addMultiple($elements);
static::assertFalse($this->emptyCollection->isEmpty());
static::assertEquals(4, $this->emptyCollection->count());
static::assertEquals('test1', $this->emptyCollection[0]);
static::assertEquals('test2', $this->emptyCollection[1]);
static::assertEquals('test3', $this->emptyCollection[2]);
static::assertEquals('test4', $this->emptyCollection[3]);
}
public function testAddMultipleUsingIndexes()
{
$elements = [
'test1',
'test2',
1234 => 'test3',
5678 => 'test4',
];
$this->emptyCollection->addMultiple($elements, true);
static::assertFalse($this->emptyCollection->isEmpty());
static::assertEquals(4, $this->emptyCollection->count());
static::assertEquals('test1', $this->emptyCollection[0]);
static::assertEquals('test2', $this->emptyCollection[1]);
static::assertEquals('test3', $this->emptyCollection[1234]);
static::assertEquals('test4', $this->emptyCollection[5678]);
}
public function testPrepend()
{
$this->emptyCollection->prepend('lorem-ipsum');
static::assertFalse($this->emptyCollection->isEmpty());
static::assertEquals(1, $this->emptyCollection->count());
static::assertEquals('lorem-ipsum', $this->emptyCollection[0]);
$this->simpleCollection->prepend('lorem-ipsum');
static::assertFalse($this->simpleCollection->isEmpty());
static::assertEquals(5, $this->simpleCollection->count());
static::assertEquals('lorem-ipsum', $this->simpleCollection[0]);
}
public function testRemoveNotExistingElement()
{
$this->emptyCollection->remove('abc');
static::assertTrue($this->emptyCollection->isEmpty());
static::assertEquals(0, $this->emptyCollection->count());
$this->simpleCollection->remove('abc');
static::assertFalse($this->simpleCollection->isEmpty());
static::assertEquals(4, $this->simpleCollection->count());
}
public function testRemove()
{
static::assertFalse($this->simpleCollection->isEmpty());
static::assertEquals(4, $this->simpleCollection->count());
static::assertEquals('ipsum', $this->simpleCollection[1]);
$this->simpleCollection->remove('ipsum');
static::assertFalse($this->simpleCollection->isEmpty());
static::assertEquals(3, $this->simpleCollection->count());
static::assertNull($this->simpleCollection[1]);
}
public function testIsEmpty()
{
static::assertTrue($this->emptyCollection->isEmpty());
static::assertFalse($this->simpleCollection->isEmpty());
}
public function testIsFirst()
{
static::assertFalse($this->emptyCollection->isFirst('abc'));
static::assertFalse($this->simpleCollection->isFirst('abc'));
static::assertFalse($this->simpleCollection->isFirst('dolor'));
static::assertTrue($this->simpleCollection->isFirst('lorem'));
}
public function testIsLast()
{
static::assertFalse($this->emptyCollection->isLast('abc'));
static::assertFalse($this->simpleCollection->isLast('abc'));
static::assertFalse($this->simpleCollection->isLast('dolor'));
static::assertTrue($this->simpleCollection->isLast('sit'));
}
public function testHas()
{
static::assertFalse($this->emptyCollection->has('abc'));
static::assertFalse($this->simpleCollection->has('abc'));
static::assertTrue($this->simpleCollection->has('lorem'));
static::assertTrue($this->simpleCollection->has('dolor'));
}
public function testGetPrevious()
{
static::assertNull($this->emptyCollection->getPrevious('abc'));
static::assertNull($this->simpleCollection->getPrevious('abc'));
static::assertNull($this->simpleCollection->getPrevious('lorem'));
static::assertEquals('lorem', $this->simpleCollection->getPrevious('ipsum'));
static::assertEquals('dolor', $this->simpleCollection->getPrevious('sit'));
}
public function testGetNext()
{
static::assertNull($this->emptyCollection->getNext('abc'));
static::assertNull($this->simpleCollection->getNext('abc'));
static::assertNull($this->simpleCollection->getNext('sit'));
static::assertEquals('dolor', $this->simpleCollection->getNext('ipsum'));
static::assertEquals('sit', $this->simpleCollection->getNext('dolor'));
}
public function testGetFirst()
{
static::assertNull($this->emptyCollection->getFirst());
static::assertEquals('lorem', $this->simpleCollection->getFirst());
}
public function testGetLast()
{
static::assertNull($this->emptyCollection->getLast());
static::assertEquals('sit', $this->simpleCollection->getLast());
}
public function testToArray()
{
static::assertEquals([], $this->emptyCollection->toArray());
static::assertEquals($this->simpleElements, $this->simpleCollection->toArray());
}
public function testExistsVisibilityAndArguments()
{
$this->verifyMethodVisibilityAndArguments(Collection::class, 'exists', OopVisibilityType::IS_PRIVATE, 1, 1);
}
/**
* {@inheritdoc}
*/
protected function setUp()
{
parent::setUp();
$this->simpleElements = [
'lorem',
'ipsum',
123 => 'dolor',
345 => 'sit',
];
$this->emptyCollection = new Collection();
$this->simpleCollection = new Collection($this->simpleElements);
}
}

View File

@@ -6,10 +6,11 @@
* file that was distributed with this source code.
*/
namespace Meritoo\Common\Tests\Exception\Base;
namespace Meritoo\Common\Test\Exception\Base;
use Meritoo\Common\Exception\Base\UnknownTypeException;
use Meritoo\Common\Type\Base\BaseType;
use PHPUnit_Framework_TestCase;
/**
* Tests of the exception used while type of something is unknown
@@ -17,7 +18,7 @@ use Meritoo\Common\Type\Base\BaseType;
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*/
class UnknownTypeExceptionTest extends \PHPUnit_Framework_TestCase
class UnknownTypeExceptionTest extends PHPUnit_Framework_TestCase
{
public function testWithoutException()
{

View File

@@ -6,10 +6,11 @@
* file that was distributed with this source code.
*/
namespace Meritoo\Common\Tests\Type\Base;
namespace Meritoo\Common\Test\Type\Base;
use Generator;
use Meritoo\Common\Type\Base\BaseType;
use PHPUnit_Framework_TestCase;
/**
* Tests of the base / abstract type of something
@@ -17,7 +18,7 @@ use Meritoo\Common\Type\Base\BaseType;
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*/
class BaseTypeTest extends \PHPUnit_Framework_TestCase
class BaseTypeTest extends PHPUnit_Framework_TestCase
{
/**
* @param BaseType $type Type of something

View File

@@ -6,9 +6,9 @@
* file that was distributed with this source code.
*/
namespace Meritoo\Common\Tests\Type;
namespace Meritoo\Common\Test\Type;
use Generator;
use Meritoo\Common\Test\Base\BaseTypeTestCase;
use Meritoo\Common\Type\DatePartType;
/**
@@ -17,11 +17,14 @@ use Meritoo\Common\Type\DatePartType;
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*/
class DatePartTypeTest extends \PHPUnit_Framework_TestCase
class DatePartTypeTest extends BaseTypeTestCase
{
public function testGetAll()
/**
* {@inheritdoc}
*/
protected function getAllExpectedTypes()
{
$expectedTypes = [
return [
'DAY' => DatePartType::DAY,
'HOUR' => DatePartType::HOUR,
'MINUTE' => DatePartType::MINUTE,
@@ -29,29 +32,20 @@ class DatePartTypeTest extends \PHPUnit_Framework_TestCase
'SECOND' => DatePartType::SECOND,
'YEAR' => DatePartType::YEAR,
];
$all = (new DatePartType())->getAll();
self::assertEquals($expectedTypes, $all);
}
/**
* @param string $toVerifyType Concrete type to verify (of given instance of type)
* @param bool $isCorrect Expected information if given type is correct
*
* @dataProvider provideConcreteType
* {@inheritdoc}
*/
public function testIsCorrectType($toVerifyType, $isCorrect)
protected function getTestedTypeInstance()
{
$type = new DatePartType();
self::assertEquals($isCorrect, $type->isCorrectType($toVerifyType));
return new DatePartType();
}
/**
* Provides type of something for testing the isCorrectType() method
*
* @return Generator
* {@inheritdoc}
*/
public function provideConcreteType()
public function provideTypeToVerify()
{
yield[
'',

View File

@@ -6,9 +6,10 @@
* file that was distributed with this source code.
*/
namespace Meritoo\Common\Tests\Utilities;
namespace Meritoo\Common\Test\Utilities;
use Meritoo\Common\Utilities\Arrays;
use PHPUnit_Framework_TestCase;
/**
* Tests of the useful arrays methods
@@ -16,7 +17,7 @@ use Meritoo\Common\Utilities\Arrays;
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*/
class ArraysTest extends \PHPUnit_Framework_TestCase
class ArraysTest extends PHPUnit_Framework_TestCase
{
private $simpleArray;
private $simpleArrayWithKeys;

View File

@@ -6,9 +6,10 @@
* file that was distributed with this source code.
*/
namespace Meritoo\Common\Tests\Utilities;
namespace Meritoo\Common\Test\Utilities;
use Meritoo\Common\Utilities\Bundle;
use PHPUnit_Framework_TestCase;
/**
* Tests of the useful methods for bundle
@@ -16,7 +17,7 @@ use Meritoo\Common\Utilities\Bundle;
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*/
class BundleTest extends \PHPUnit_Framework_TestCase
class BundleTest extends PHPUnit_Framework_TestCase
{
public function testGetBundleViewPathEmptyPathAndBundle()
{

View File

@@ -6,10 +6,11 @@
* file that was distributed with this source code.
*/
namespace Meritoo\Common\Tests\Utilities;
namespace Meritoo\Common\Test\Utilities;
use Generator;
use Meritoo\Common\Test\Base\BaseTestCase;
use Meritoo\Common\Utilities\Composer;
use Meritoo\Common\Utilities\TestCase;
/**
* Tests of the useful Composer-related methods
@@ -17,7 +18,7 @@ use Meritoo\Common\Utilities\TestCase;
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*/
class ComposerTest extends TestCase
class ComposerTest extends BaseTestCase
{
/**
* Path of existing composer.json used as source of data for tests
@@ -60,7 +61,7 @@ class ComposerTest extends TestCase
/**
* Provides names and values of existing nodes
*
* @return \Generator
* @return Generator
*/
public function getExistingNode()
{

View File

@@ -1,11 +1,18 @@
<?php
namespace Meritoo\Common\Tests\Utilities;
/**
* (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\Utilities;
use DateTime;
use Generator;
use Meritoo\Common\Test\Base\BaseTestCase;
use Meritoo\Common\Type\OopVisibilityType;
use Meritoo\Common\Utilities\DatePeriod;
use Meritoo\Common\Utilities\TestCase;
/**
* Tests of date's period
@@ -13,8 +20,13 @@ use Meritoo\Common\Utilities\TestCase;
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*/
class DatePeriodTest extends TestCase
class DatePeriodTest extends BaseTestCase
{
public function testConstructorVisibilityAndArguments()
{
$this->verifyConstructorVisibilityAndArguments(DatePeriod::class, OopVisibilityType::IS_PUBLIC, 2, 0);
}
/**
* @param DateTime $startDate (optional) Start date of period
* @param DateTime $endDate (optional) End date of period

View File

@@ -6,14 +6,14 @@
* file that was distributed with this source code.
*/
namespace Meritoo\Common\Tests\Utilities;
namespace Meritoo\Common\Test\Utilities;
use DateInterval;
use DateTime;
use Generator;
use Meritoo\Common\Exception\Date\IncorrectDatePartException;
use Meritoo\Common\Exception\Date\UnknownDatePartTypeException;
use Meritoo\Common\Test\Base\BaseTestCase;
use Meritoo\Common\Utilities\Date;
use Meritoo\Common\Utilities\TestCase;
/**
* Tests of the Date methods (only static functions)
@@ -21,7 +21,7 @@ use Meritoo\Common\Utilities\TestCase;
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*/
class DateTest extends TestCase
class DateTest extends BaseTestCase
{
/**
* @param mixed $value Empty value, e.g. ""
@@ -218,7 +218,7 @@ class DateTest extends TestCase
*/
public function testGetDayOfWeekIncorrectValues($year, $month, $day)
{
$this->expectException(IncorrectDatePartException::class);
$this->expectException(UnknownDatePartTypeException::class);
self::assertEmpty(Date::getDayOfWeek($year, $month, $day));
}

View File

@@ -6,10 +6,10 @@
* file that was distributed with this source code.
*/
namespace Meritoo\Common\Tests\Utilities;
namespace Meritoo\Common\Test\Utilities;
use Meritoo\Common\Test\Base\BaseTestCase;
use Meritoo\Common\Utilities\GeneratorUtility;
use Meritoo\Common\Utilities\TestCase;
/**
* Tests of the useful methods for the Generator class
@@ -17,7 +17,7 @@ use Meritoo\Common\Utilities\TestCase;
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*/
class GeneratorUtilityTest extends TestCase
class GeneratorUtilityTest extends BaseTestCase
{
public function testGetGeneratorElements()
{

View File

@@ -6,11 +6,11 @@
* file that was distributed with this source code.
*/
namespace Meritoo\Common\Tests\Utilities;
namespace Meritoo\Common\Test\Utilities;
use Generator;
use Meritoo\Common\Test\Base\BaseTestCase;
use Meritoo\Common\Utilities\Locale;
use Meritoo\Common\Utilities\TestCase;
/**
* Tests of the useful locale methods
@@ -18,7 +18,7 @@ use Meritoo\Common\Utilities\TestCase;
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*/
class LocaleTest extends TestCase
class LocaleTest extends BaseTestCase
{
/**
* @param mixed $languageCode Empty value, e.g. ""

View File

@@ -6,11 +6,11 @@
* file that was distributed with this source code.
*/
namespace Meritoo\Common\Tests\Utilities;
namespace Meritoo\Common\Test\Utilities;
use Generator;
use Meritoo\Common\Test\Base\BaseTestCase;
use Meritoo\Common\Utilities\MimeTypes;
use Meritoo\Common\Utilities\TestCase;
/**
* Tests of the useful methods for mime types of files
@@ -18,7 +18,7 @@ use Meritoo\Common\Utilities\TestCase;
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*/
class MimeTypesTest extends TestCase
class MimeTypesTest extends BaseTestCase
{
/**
* @param mixed $mimeType Empty value, e.g. ""

View File

@@ -6,14 +6,14 @@
* file that was distributed with this source code.
*/
namespace Meritoo\Common\Tests\Utilities;
namespace Meritoo\Common\Test\Utilities;
use Generator;
use Meritoo\Common\Exception\IncorrectColorHexLengthException;
use Meritoo\Common\Exception\InvalidColorHexValueException;
use Meritoo\Common\Exception\Regex\IncorrectColorHexLengthException;
use Meritoo\Common\Exception\Regex\InvalidColorHexValueException;
use Meritoo\Common\Test\Base\BaseTestCase;
use Meritoo\Common\Utilities\Locale;
use Meritoo\Common\Utilities\Miscellaneous;
use Meritoo\Common\Utilities\TestCase;
use stdClass;
/**
@@ -22,7 +22,7 @@ use stdClass;
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*/
class MiscellaneousTest extends TestCase
class MiscellaneousTest extends BaseTestCase
{
private $stringSmall;
private $stringCommaSeparated;

View File

@@ -1,6 +1,12 @@
<?php
namespace Meritoo\Common\Tests\Utilities\Reflection;
/**
* (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\Utilities\Reflection;
/**
* The A class.

View File

@@ -0,0 +1,20 @@
<?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\Utilities\Reflection;
/**
* The B class.
* Used for testing the Reflection class.
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*/
class B extends A
{
}

View File

@@ -1,6 +1,12 @@
<?php
namespace Meritoo\Common\Tests\Utilities\Reflection;
/**
* (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\Utilities\Reflection;
/**
* The C class.

View File

@@ -0,0 +1,20 @@
<?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\Utilities\Reflection;
/**
* The D class.
* Used for testing the Reflection class.
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*/
class D
{
}

View File

@@ -0,0 +1,20 @@
<?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\Utilities\Reflection;
/**
* The E trait.
* Used for testing the Reflection class.
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*/
trait E
{
}

View File

@@ -6,20 +6,20 @@
* file that was distributed with this source code.
*/
namespace Meritoo\Common\Tests\Utilities;
namespace Meritoo\Common\Test\Utilities;
use DateTime;
use Generator;
use Meritoo\Common\Exception\Reflection\CannotResolveClassNameException;
use Meritoo\Common\Exception\Reflection\MissingChildClassesException;
use Meritoo\Common\Exception\Reflection\TooManyChildClassesException;
use Meritoo\Common\Tests\Utilities\Reflection\A;
use Meritoo\Common\Tests\Utilities\Reflection\B;
use Meritoo\Common\Tests\Utilities\Reflection\C;
use Meritoo\Common\Tests\Utilities\Reflection\D;
use Meritoo\Common\Tests\Utilities\Reflection\E;
use Meritoo\Common\Test\Base\BaseTestCase;
use Meritoo\Common\Test\Utilities\Reflection\A;
use Meritoo\Common\Test\Utilities\Reflection\B;
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 Meritoo\Common\Utilities\TestCase;
/**
* Tests of the useful reflection methods
@@ -27,7 +27,7 @@ use Meritoo\Common\Utilities\TestCase;
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*/
class ReflectionTest extends TestCase
class ReflectionTest extends BaseTestCase
{
/**
* @param mixed $invalidClass Empty value, e.g. ""
@@ -88,7 +88,7 @@ class ReflectionTest extends TestCase
/*
* Existing class
*/
self::assertEquals('Meritoo\Common\Tests\Utilities', Reflection::getClassNamespace(self::class));
self::assertEquals('Meritoo\Common\Test\Utilities', Reflection::getClassNamespace(self::class));
self::assertEquals(DateTime::class, Reflection::getClassNamespace(new DateTime()));
self::assertEquals(DateTime::class, Reflection::getClassNamespace([

View File

@@ -1,13 +1,14 @@
<?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\Tests\Utilities;
namespace Meritoo\Common\Test\Utilities;
use Meritoo\Common\Utilities\TestCase;
use Meritoo\Common\Test\Base\BaseTestCase;
use Meritoo\Common\Utilities\Uri;
/**
@@ -16,7 +17,7 @@ use Meritoo\Common\Utilities\Uri;
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*/
class UriTest extends TestCase
class UriTest extends BaseTestCase
{
public function testAddProtocolToUrl()
{

View File

@@ -6,9 +6,10 @@
* file that was distributed with this source code.
*/
namespace Meritoo\Common\Tests\Utilities;
namespace Meritoo\Common\Test\Utilities;
use Meritoo\Common\Utilities\Xml;
use PHPUnit_Framework_TestCase;
use SimpleXMLElement;
/**
@@ -17,7 +18,7 @@ use SimpleXMLElement;
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*/
class XmlTest extends \PHPUnit_Framework_TestCase
class XmlTest extends PHPUnit_Framework_TestCase
{
private $simpleXml;
private $advancedXml;

View File

@@ -1,14 +0,0 @@
<?php
namespace Meritoo\Common\Tests\Utilities\Reflection;
/**
* The B class.
* Used for testing the Reflection class.
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*/
class B extends A
{
}

View File

@@ -1,14 +0,0 @@
<?php
namespace Meritoo\Common\Tests\Utilities\Reflection;
/**
* The D class.
* Used for testing the Reflection class.
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*/
class D
{
}

View File

@@ -1,14 +0,0 @@
<?php
namespace Meritoo\Common\Tests\Utilities\Reflection;
/**
* The E trait.
* Used for testing the Reflection class.
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*/
trait E
{
}