Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
100.00% |
1 / 1 |
|
100.00% |
6 / 6 |
CRAP | |
100.00% |
187 / 187 |
AbstractCollectionTest | |
100.00% |
1 / 1 |
|
100.00% |
6 / 6 |
6 | |
100.00% |
187 / 187 |
setUp | |
100.00% |
1 / 1 |
1 | |
100.00% |
3 / 3 |
|||
testGetIterator | |
100.00% |
1 / 1 |
1 | |
100.00% |
20 / 20 |
|||
testNumberized | |
100.00% |
1 / 1 |
1 | |
100.00% |
50 / 50 |
|||
testClear | |
100.00% |
1 / 1 |
1 | |
100.00% |
31 / 31 |
|||
testContainer | |
100.00% |
1 / 1 |
1 | |
100.00% |
73 / 73 |
|||
testToArray | |
100.00% |
1 / 1 |
1 | |
100.00% |
10 / 10 |
<?php | |
/** | |
* This file is part of the Hephaistos project management API. | |
* | |
* As each files provides by the CSCFA, this file is licensed | |
* under the MIT license. | |
* | |
* PHP version 5.6 | |
* | |
* @category Test | |
* @package Hephaistos | |
* @author matthieu vallance <matthieu.vallance@cscfa.fr> | |
* @license MIT <https://opensource.org/licenses/MIT> | |
* @link http://cscfa.fr | |
*/ | |
namespace CSDT\CollectionsBundle\Tests\AbstractCollections; | |
use CSDT\CollectionsBundle\AbstractCollections\AbstractCollection; | |
/** | |
* Abstract collection test | |
* | |
* This class is used to test the | |
* abstract collection class. | |
* | |
* @category Test | |
* @package Hephaistos | |
* @author matthieu vallance <matthieu.vallance@cscfa.fr> | |
* @license MIT <https://opensource.org/licenses/MIT> | |
* @link http://cscfa.fr | |
*/ | |
class AbstractCollectionTest extends \PHPUnit_Framework_TestCase | |
{ | |
/** | |
* Test instance | |
* | |
* This property store the instance | |
* to be tested. | |
* | |
* @var \PHPUnit_Framework_MockObject_MockObject|AbstractCollection | |
*/ | |
protected $testInstance; | |
/** | |
* Set up | |
* | |
* Sets up the fixture, for example, open a network connection. | |
* This method is called before a test is executed. | |
* | |
* @return void | |
*/ | |
public function setUp() | |
{ | |
$instance = $this->getMockForAbstractClass(AbstractCollection::class); | |
$this->testInstance = $instance; | |
} | |
/** | |
* Test get iterator | |
* | |
* This method test the get iterator method | |
* of the abstract collection class. | |
* | |
* @return void | |
*/ | |
public function testGetIterator() | |
{ | |
$reflector = new \ReflectionClass($this->testInstance); | |
$contentProperty = $reflector->getProperty("content"); | |
$contentProperty->setAccessible(true); | |
$contentProperty->setValue( | |
$this->testInstance, array( | |
12, | |
"test" | |
) | |
); | |
$format = "The instance of %s". | |
" is expected to return an instance of %s". | |
" when the %s method is called"; | |
$this->assertInstanceOf( | |
\ArrayIterator::class, | |
$this->testInstance->getIterator(), | |
sprintf( | |
$format, | |
AbstractCollection::class, | |
\ArrayIterator::class, | |
"getIterator" | |
) | |
); | |
} | |
/** | |
* Test numberized | |
* | |
* This method test the numberization methods | |
* of the abstract collection class. | |
* | |
* @return void | |
*/ | |
public function testNumberized() | |
{ | |
$format = "The instance of %s". | |
" is expected to return %s". | |
" when the %s method is called". | |
" when the content is %s"; | |
$this->assertTrue( | |
$this->testInstance->isEmpty(), | |
sprintf( | |
$format, | |
AbstractCollection::class, | |
"true", | |
"isEmpty", | |
"empty" | |
) | |
); | |
$this->assertEquals( | |
0, | |
$this->testInstance->count(), | |
sprintf( | |
$format, | |
AbstractCollection::class, | |
"0", | |
"count", | |
"empty" | |
) | |
); | |
$reflector = new \ReflectionClass($this->testInstance); | |
$contentProperty = $reflector->getProperty("content"); | |
$contentProperty->setAccessible(true); | |
$contentProperty->setValue( | |
$this->testInstance, array( | |
12, | |
"test" | |
) | |
); | |
$this->assertFalse( | |
$this->testInstance->isEmpty(), | |
sprintf( | |
$format, | |
AbstractCollection::class, | |
"false", | |
"isEmpty", | |
"[12, 'test']" | |
) | |
); | |
$this->assertEquals( | |
2, | |
$this->testInstance->count(), | |
sprintf( | |
$format, | |
AbstractCollection::class, | |
"2", | |
"count", | |
"[12, 'test']" | |
) | |
); | |
} | |
/** | |
* Test clear | |
* | |
* This method is used to test the clearing | |
* methods of the abstract collection class. | |
* | |
* @return void | |
*/ | |
public function testClear() | |
{ | |
$reflector = new \ReflectionClass($this->testInstance); | |
$contentProperty = $reflector->getProperty("content"); | |
$contentProperty->setAccessible(true); | |
$contentProperty->setValue( | |
$this->testInstance, array( | |
12, | |
"test" | |
) | |
); | |
$format = "The instance of %s". | |
" is expected to return the same result". | |
" as the %s method". | |
" when the %s method is called"; | |
$this->assertEquals( | |
$this->testInstance->toArray(), | |
$this->testInstance->clear(), | |
sprintf( | |
$format, | |
AbstractCollection::class, | |
"toArray", | |
"clear" | |
) | |
); | |
$finalResult = $contentProperty->getValue($this->testInstance); | |
$format = "The instance of %s". | |
" is expected to contain an empty set". | |
" after %s method calling"; | |
$this->assertTrue( | |
empty($finalResult), | |
sprintf( | |
$format, | |
AbstractCollection::class, | |
"clear" | |
) | |
); | |
} | |
/** | |
* Test container | |
* | |
* This method is used to test the contain | |
* methods support of the abstract collection | |
* class. | |
* | |
* @return void | |
*/ | |
public function testContainer() | |
{ | |
$reflector = new \ReflectionClass($this->testInstance); | |
$contentProperty = $reflector->getProperty("content"); | |
$contentProperty->setAccessible(true); | |
$contentProperty->setValue( | |
$this->testInstance, array( | |
12, | |
"test" | |
) | |
); | |
$format = "The instance of %s". | |
" is expected to return %s". | |
" when the %s method is called". | |
" with the %s content and the %s". | |
" arguments"; | |
$this->assertTrue( | |
$this->testInstance->contain(12), | |
sprintf( | |
$format, | |
AbstractCollection::class, | |
"true", | |
"contain", | |
"[12, 'test']", | |
"[12]" | |
) | |
); | |
$this->assertTrue( | |
$this->testInstance->contain("test"), | |
sprintf( | |
$format, | |
AbstractCollection::class, | |
"true", | |
"contain", | |
"[12, 'test']", | |
"['test']" | |
) | |
); | |
$this->assertFalse( | |
$this->testInstance->contain(13), | |
sprintf( | |
$format, | |
AbstractCollection::class, | |
"false", | |
"contain", | |
"[12, 'test']", | |
"[13]" | |
) | |
); | |
$this->assertFalse( | |
$this->testInstance->contain("tester"), | |
sprintf( | |
$format, | |
AbstractCollection::class, | |
"false", | |
"contain", | |
"[12, 'test']", | |
"['tester']" | |
) | |
); | |
$this->assertTrue( | |
$this->testInstance->containAll(array(12, "test")), | |
sprintf( | |
$format, | |
AbstractCollection::class, | |
"true", | |
"containAll", | |
"[12, 'test']", | |
"[12, 'test']" | |
) | |
); | |
$this->assertFalse( | |
$this->testInstance->containAll(array(12, "test", 13, "tester")), | |
sprintf( | |
$format, | |
AbstractCollection::class, | |
"false", | |
"containAll", | |
"[12, 'test']", | |
"[12, 'test', 13, 'tester']" | |
) | |
); | |
} | |
/** | |
* Test to array | |
* | |
* This method is used to test the to array | |
* method of the abstract collection class. | |
* | |
* @return void | |
*/ | |
public function testToArray() | |
{ | |
$format = "The instance of %s". | |
" is expected to return an array". | |
" when the %s method is called"; | |
$this->assertTrue( | |
is_array($this->testInstance->toArray()), | |
sprintf( | |
$format, | |
AbstractCollection::class, | |
"toArray" | |
) | |
); | |
} | |
} |