5 Commits
0.0.4 ... 0.0.5

26 changed files with 129 additions and 75 deletions

View File

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

View File

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

View File

@@ -6,7 +6,7 @@
* file that was distributed with this source code. * file that was distributed with this source code.
*/ */
namespace Meritoo\Common\Utilities; namespace Meritoo\Common\Test\Base;
use DateTime; use DateTime;
use Generator; use Generator;
@@ -17,12 +17,12 @@ use ReflectionClass;
use ReflectionMethod; use ReflectionMethod;
/** /**
* Test case with common methods and data providers * Base test case with common methods and data providers
* *
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl> * @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl * @copyright Meritoo.pl
*/ */
class TestCase extends PHPUnit_Framework_TestCase abstract class BaseTestCase extends PHPUnit_Framework_TestCase
{ {
/** /**
* Provides an empty value * Provides an empty value
@@ -92,7 +92,7 @@ class TestCase extends PHPUnit_Framework_TestCase
{ {
yield['lets-test.doc']; yield['lets-test.doc'];
yield['lorem/ipsum.jpg']; yield['lorem/ipsum.jpg'];
yield['suprise/me/one/more/time.txt']; yield['surprise/me/one/more/time.txt'];
} }
/** /**
@@ -109,7 +109,7 @@ class TestCase extends PHPUnit_Framework_TestCase
$directoryPath = '/' . $directoryPath; $directoryPath = '/' . $directoryPath;
} }
return sprintf('%s/../../../../data/tests/%s%s', __DIR__, $fileName, $directoryPath); return sprintf('%s/../../../../../data/tests/%s%s', __DIR__, $fileName, $directoryPath);
} }
/** /**

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

@@ -6,12 +6,12 @@
* file that was distributed with this source code. * file that was distributed with this source code.
*/ */
namespace Meritoo\Common\Tests\Collection; namespace Meritoo\Common\Test\Collection;
use ArrayIterator; use ArrayIterator;
use Meritoo\Common\Collection\Collection; use Meritoo\Common\Collection\Collection;
use Meritoo\Common\Test\Base\BaseTestCase;
use Meritoo\Common\Type\OopVisibilityType; use Meritoo\Common\Type\OopVisibilityType;
use Meritoo\Common\Utilities\TestCase;
/** /**
* Tests of the collection of elements * Tests of the collection of elements
@@ -19,7 +19,7 @@ use Meritoo\Common\Utilities\TestCase;
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl> * @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl * @copyright Meritoo.pl
*/ */
class CollectionTest extends TestCase class CollectionTest extends BaseTestCase
{ {
/** /**
* An empty collection * An empty collection

View File

@@ -6,7 +6,7 @@
* file that was distributed with this source code. * 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\Exception\Base\UnknownTypeException;
use Meritoo\Common\Type\Base\BaseType; use Meritoo\Common\Type\Base\BaseType;

View File

@@ -6,7 +6,7 @@
* file that was distributed with this source code. * file that was distributed with this source code.
*/ */
namespace Meritoo\Common\Tests\Type\Base; namespace Meritoo\Common\Test\Type\Base;
use Generator; use Generator;
use Meritoo\Common\Type\Base\BaseType; use Meritoo\Common\Type\Base\BaseType;

View File

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

View File

@@ -6,7 +6,7 @@
* file that was distributed with this source code. * file that was distributed with this source code.
*/ */
namespace Meritoo\Common\Tests\Utilities; namespace Meritoo\Common\Test\Utilities;
use Meritoo\Common\Utilities\Arrays; use Meritoo\Common\Utilities\Arrays;
use PHPUnit_Framework_TestCase; use PHPUnit_Framework_TestCase;

View File

@@ -6,7 +6,7 @@
* file that was distributed with this source code. * file that was distributed with this source code.
*/ */
namespace Meritoo\Common\Tests\Utilities; namespace Meritoo\Common\Test\Utilities;
use Meritoo\Common\Utilities\Bundle; use Meritoo\Common\Utilities\Bundle;
use PHPUnit_Framework_TestCase; use PHPUnit_Framework_TestCase;

View File

@@ -6,10 +6,11 @@
* file that was distributed with this source code. * 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\Composer;
use Meritoo\Common\Utilities\TestCase;
/** /**
* Tests of the useful Composer-related methods * Tests of the useful Composer-related methods
@@ -17,7 +18,7 @@ use Meritoo\Common\Utilities\TestCase;
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl> * @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright 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 * 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 * Provides names and values of existing nodes
* *
* @return \Generator * @return Generator
*/ */
public function getExistingNode() public function getExistingNode()
{ {

View File

@@ -6,13 +6,13 @@
* file that was distributed with this source code. * file that was distributed with this source code.
*/ */
namespace Meritoo\Common\Tests\Utilities; namespace Meritoo\Common\Test\Utilities;
use DateTime; use DateTime;
use Generator; use Generator;
use Meritoo\Common\Test\Base\BaseTestCase;
use Meritoo\Common\Type\OopVisibilityType; use Meritoo\Common\Type\OopVisibilityType;
use Meritoo\Common\Utilities\DatePeriod; use Meritoo\Common\Utilities\DatePeriod;
use Meritoo\Common\Utilities\TestCase;
/** /**
* Tests of date's period * Tests of date's period
@@ -20,7 +20,7 @@ use Meritoo\Common\Utilities\TestCase;
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl> * @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl * @copyright Meritoo.pl
*/ */
class DatePeriodTest extends TestCase class DatePeriodTest extends BaseTestCase
{ {
public function testConstructorVisibilityAndArguments() public function testConstructorVisibilityAndArguments()
{ {

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -6,7 +6,7 @@
* file that was distributed with this source code. * file that was distributed with this source code.
*/ */
namespace Meritoo\Common\Tests\Utilities\Reflection; namespace Meritoo\Common\Test\Utilities\Reflection;
/** /**
* The A class. * The A class.

View File

@@ -6,7 +6,7 @@
* file that was distributed with this source code. * file that was distributed with this source code.
*/ */
namespace Meritoo\Common\Tests\Utilities\Reflection; namespace Meritoo\Common\Test\Utilities\Reflection;
/** /**
* The B class. * The B class.

View File

@@ -6,7 +6,7 @@
* file that was distributed with this source code. * file that was distributed with this source code.
*/ */
namespace Meritoo\Common\Tests\Utilities\Reflection; namespace Meritoo\Common\Test\Utilities\Reflection;
/** /**
* The C class. * The C class.

View File

@@ -6,7 +6,7 @@
* file that was distributed with this source code. * file that was distributed with this source code.
*/ */
namespace Meritoo\Common\Tests\Utilities\Reflection; namespace Meritoo\Common\Test\Utilities\Reflection;
/** /**
* The D class. * The D class.

View File

@@ -6,7 +6,7 @@
* file that was distributed with this source code. * file that was distributed with this source code.
*/ */
namespace Meritoo\Common\Tests\Utilities\Reflection; namespace Meritoo\Common\Test\Utilities\Reflection;
/** /**
* The E trait. * The E trait.

View File

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

View File

@@ -6,9 +6,9 @@
* file that was distributed with this source code. * 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; use Meritoo\Common\Utilities\Uri;
/** /**
@@ -17,7 +17,7 @@ use Meritoo\Common\Utilities\Uri;
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl> * @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl * @copyright Meritoo.pl
*/ */
class UriTest extends TestCase class UriTest extends BaseTestCase
{ {
public function testAddProtocolToUrl() public function testAddProtocolToUrl()
{ {

View File

@@ -6,7 +6,7 @@
* file that was distributed with this source code. * file that was distributed with this source code.
*/ */
namespace Meritoo\Common\Tests\Utilities; namespace Meritoo\Common\Test\Utilities;
use Meritoo\Common\Utilities\Xml; use Meritoo\Common\Utilities\Xml;
use PHPUnit_Framework_TestCase; use PHPUnit_Framework_TestCase;