mirror of
https://github.com/wiosna-dev/common-library.git
synced 2026-03-12 09:31:51 +01:00
BaseTypeTestCase - base test case for the type of something
This commit is contained in:
60
src/Meritoo/Common/Test/Base/BaseTypeTestCase.php
Normal file
60
src/Meritoo/Common/Test/Base/BaseTypeTestCase.php
Normal 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();
|
||||||
|
}
|
||||||
@@ -8,9 +8,8 @@
|
|||||||
|
|
||||||
namespace Meritoo\Common\Test\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[
|
||||||
'',
|
'',
|
||||||
|
|||||||
Reference in New Issue
Block a user