Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
100.00% |
1 / 1 |
|
100.00% |
7 / 7 |
CRAP | |
100.00% |
225 / 225 |
AbstractMapCollectionTest | |
100.00% |
1 / 1 |
|
100.00% |
7 / 7 |
7 | |
100.00% |
225 / 225 |
setUp | |
100.00% |
1 / 1 |
1 | |
100.00% |
3 / 3 |
|||
testHas | |
100.00% |
1 / 1 |
1 | |
100.00% |
26 / 26 |
|||
testGet | |
100.00% |
1 / 1 |
1 | |
100.00% |
27 / 27 |
|||
testSet | |
100.00% |
1 / 1 |
1 | |
100.00% |
43 / 43 |
|||
testRemove | |
100.00% |
1 / 1 |
1 | |
100.00% |
25 / 25 |
|||
testSetAll | |
100.00% |
1 / 1 |
1 | |
100.00% |
47 / 47 |
|||
testRemoveAll | |
100.00% |
1 / 1 |
1 | |
100.00% |
54 / 54 |
<?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\AbstractMapCollection; | |
/** | |
* Abstract map collection test | |
* | |
* This class is used to perform the test | |
* of the abstract map collection. | |
* | |
* @category Test | |
* @package Hephaistos | |
* @author matthieu vallance <matthieu.vallance@cscfa.fr> | |
* @license MIT <https://opensource.org/licenses/MIT> | |
* @link http://cscfa.fr | |
*/ | |
class AbstractMapCollectionTest extends \PHPUnit_Framework_TestCase | |
{ | |
/** | |
* Test instance | |
* | |
* This property store the instance | |
* to be tested. | |
* | |
* @var \PHPUnit_Framework_MockObject_MockObject|AbstractMapCollection | |
*/ | |
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(AbstractMapCollection::class); | |
$this->testInstance = $instance; | |
} | |
/** | |
* Test has | |
* | |
* This method test the has method support | |
* of the AbstractMapCollection class. | |
* | |
* @return void | |
*/ | |
public function testHas() | |
{ | |
$format = "The instance of %s". | |
" is expected to return %s". | |
" when the method %s". | |
" is called and the key %s"; | |
$reflectionClass = new \ReflectionClass($this->testInstance); | |
$property = $reflectionClass->getProperty("content"); | |
$property->setAccessible(true); | |
$this->assertFalse( | |
$this->testInstance->has("key"), | |
sprintf( | |
$format, | |
AbstractMapCollection::class, | |
"false", | |
"has", | |
"does not exist" | |
) | |
); | |
$property->setValue($this->testInstance, array("key"=>"test")); | |
$this->assertTrue( | |
$this->testInstance->has("key"), | |
sprintf( | |
$format, | |
AbstractMapCollection::class, | |
"TRUE", | |
"has", | |
"exist" | |
) | |
); | |
} | |
/** | |
* Test has | |
* | |
* This method test the get method support | |
* of the AbstractMapCollection class. | |
* | |
* @return void | |
*/ | |
public function testGet() | |
{ | |
$format = "The instance of %s". | |
" is expected to return %s". | |
" when the method %s". | |
" is called and the key %s"; | |
$reflectionClass = new \ReflectionClass($this->testInstance); | |
$property = $reflectionClass->getProperty("content"); | |
$property->setAccessible(true); | |
$this->assertNull( | |
$this->testInstance->get("key"), | |
sprintf( | |
$format, | |
AbstractMapCollection::class, | |
"null", | |
"get", | |
"does not exist" | |
) | |
); | |
$property->setValue($this->testInstance, array("key"=>"test")); | |
$this->assertEquals( | |
"test", | |
$this->testInstance->get("key"), | |
sprintf( | |
$format, | |
AbstractMapCollection::class, | |
"'test'", | |
"get", | |
"exist" | |
) | |
); | |
} | |
/** | |
* Test set | |
* | |
* This method test the set method support | |
* of the AbstractMapCollection class. | |
* | |
* @return void | |
*/ | |
public function testSet() | |
{ | |
$format = "The instance of %s". | |
" is expected to%s contain %s"; | |
$complement = " after the method %s is called"; | |
$reflectionClass = new \ReflectionClass($this->testInstance); | |
$property = $reflectionClass->getProperty("content"); | |
$property->setAccessible(true); | |
$this->assertFalse( | |
array_key_exists("key", $property->getValue($this->testInstance)), | |
sprintf( | |
$format, | |
AbstractMapCollection::class, | |
"not", | |
"the key 'key'" | |
) | |
); | |
$this->assertSame( | |
$this->testInstance, | |
$this->testInstance->set("key", "value"), | |
sprintf( | |
"The instance of %s". | |
" is expected to return %s". | |
" when the method %s is called", | |
AbstractMapCollection::class, | |
"itself", | |
"set" | |
) | |
); | |
$this->assertTrue( | |
array_key_exists("key", $property->getValue($this->testInstance)), | |
sprintf( | |
$format.$complement, | |
AbstractMapCollection::class, | |
"", | |
"the key 'key'", | |
"set" | |
) | |
); | |
$this->assertEquals( | |
'value', | |
$property->getValue($this->testInstance)['key'], | |
sprintf( | |
$format.$complement, | |
AbstractMapCollection::class, | |
"", | |
"the value 'value'", | |
"set" | |
) | |
); | |
} | |
/** | |
* Test remove | |
* | |
* This method test the remove method support | |
* of the AbstractMapCollection class. | |
* | |
* @return void | |
*/ | |
public function testRemove() | |
{ | |
$format = "The instance of %s". | |
" is expected to not contain %s". | |
" after the method %s is called"; | |
$reflectionClass = new \ReflectionClass($this->testInstance); | |
$property = $reflectionClass->getProperty("content"); | |
$property->setAccessible(true); | |
$property->setValue($this->testInstance, array('key'=> 'value')); | |
$this->assertEquals( | |
'value', | |
$this->testInstance->remove("key"), | |
sprintf( | |
"The instance of %s". | |
" is expected to return %s". | |
" when the method %s is called", | |
AbstractMapCollection::class, | |
"'value'", | |
"remove" | |
) | |
); | |
$this->assertTrue( | |
empty($property->getValue($this->testInstance)), | |
sprintf( | |
$format, | |
AbstractMapCollection::class, | |
"'key'", | |
"remove" | |
) | |
); | |
} | |
/** | |
* Test set all | |
* | |
* This method test the set all method support | |
* of the AbstractMapCollection class. | |
* | |
* @return void | |
*/ | |
public function testSetAll() | |
{ | |
$arrayFirst = array("test"=> "value"); | |
$arraySecond = array( | |
"test2"=> "value2", | |
"test3"=> "value3" | |
); | |
$reflectionClass = new \ReflectionClass($this->testInstance); | |
$property = $reflectionClass->getProperty("content"); | |
$property->setAccessible(true); | |
$this->assertSame( | |
$this->testInstance, | |
$this->testInstance->setAll($arrayFirst), | |
sprintf( | |
"The instance of %s". | |
" is expected to return %s". | |
" when the method %s is called", | |
AbstractMapCollection::class, | |
"itself", | |
"setAll" | |
) | |
); | |
$this->assertEquals( | |
$arrayFirst, | |
$property->getValue($this->testInstance), | |
sprintf( | |
"The instance of %s is expected to contain %s". | |
" after the method %s is called", | |
AbstractMapCollection::class, | |
json_encode($arrayFirst), | |
"setAll" | |
) | |
); | |
$this->assertSame( | |
$this->testInstance, | |
$this->testInstance->setAll($arraySecond), | |
sprintf( | |
"The instance of %s". | |
" is expected to return %s". | |
" when the method %s is called", | |
AbstractMapCollection::class, | |
"itself", | |
"set" | |
) | |
); | |
$this->assertEquals( | |
array_merge( | |
$arrayFirst, | |
$arraySecond | |
), | |
$property->getValue($this->testInstance), | |
sprintf( | |
"The instance of %s is expected to contain %s". | |
" after the method %s is called", | |
AbstractMapCollection::class, | |
json_encode(array_merge($arrayFirst, $arraySecond)), | |
"setAll" | |
) | |
); | |
} | |
/** | |
* Test remove all | |
* | |
* This method test the set all method support | |
* of the AbstractMapCollection class. | |
* | |
* @return void | |
*/ | |
public function testRemoveAll() | |
{ | |
$arrayFirst = array("test"=> "value"); | |
$arraySecond = array( | |
"test2"=> "value2", | |
"test3"=> "value3" | |
); | |
$reflectionClass = new \ReflectionClass($this->testInstance); | |
$property = $reflectionClass->getProperty("content"); | |
$property->setAccessible(true); | |
$property->setValue( | |
$this->testInstance, | |
array_merge($arrayFirst, $arraySecond) | |
); | |
$this->assertEquals( | |
$arraySecond, | |
$this->testInstance->removeAll(array_keys($arraySecond)), | |
sprintf( | |
"The instance of %s is expected to return %s". | |
" when the method %s is called with arguments %s", | |
AbstractMapCollection::class, | |
json_encode($arraySecond), | |
"removeAll", | |
json_encode(array_keys($arraySecond)) | |
) | |
); | |
$this->assertEquals( | |
$arrayFirst, | |
$property->getValue($this->testInstance), | |
sprintf( | |
"The instance of %s is expected to contain %s". | |
" after the method %s is called with arguments %s", | |
AbstractMapCollection::class, | |
json_encode($arrayFirst), | |
"removeAll", | |
json_encode(array_keys($arraySecond)) | |
) | |
); | |
$this->assertEquals( | |
$arrayFirst, | |
$this->testInstance->removeAll(array_keys($arrayFirst)), | |
sprintf( | |
"The instance of %s is expected to return %s". | |
" when the method %s is called with arguments %s", | |
AbstractMapCollection::class, | |
json_encode($arrayFirst), | |
"removeAll", | |
json_encode(array_keys($arrayFirst)) | |
) | |
); | |
$this->assertTrue( | |
empty($property->getValue($this->testInstance)), | |
sprintf( | |
"The instance of %s is expected to contain %s". | |
" after the method %s is called with arguments %s", | |
AbstractMapCollection::class, | |
json_encode(array()), | |
"removeAll", | |
json_encode(array_keys($arraySecond)) | |
) | |
); | |
} | |
} |