* @copyright 2017 adeattwood.co.uk
* @license BSD-2-Clause http://adeattwood.co.uk/license.html
* @link adeattwood.co.uk
* @since v0.1
*/
class ArrayObjectCest
{
public $arrayObject;
public $array = [
'key_one' => 'Value One',
'key_two' => 'Value Two'
];
public function _before( UnitTester $I )
{
$this->arrayObject = new ArrayObject( $this->array );
}
public function _after( UnitTester $I )
{
}
public function testArrayAsProps( UnitTester $I )
{
$I->assertEquals( $this->arrayObject->key_one, "Value One" );
}
/**
* undocumented function
*
* @return void
*/
public function testArrayContains( UnitTester $I )
{
$I->assertTrue( $this->arrayObject->contains( "Value One" ) );
$I->assertFalse( $this->arrayObject->contains( "Not in array" ) );
}
/**
* undocumented function
*
* @return void
*/
public function testToTable( UnitTester $I )
{
$table = $this->arrayObject->toTable();
$I->assertContains( '
', $table );
$I->assertContains( 'Value One', $table );
}
public function testRandomValue( UnitTester $I )
{
for( $i = 0; $i < 5; $i++ ) {
$I->assertContains( $this->arrayObject->randomValue(), $this->array );
}
}
public function testPrepend(UnitTester $I)
{
$this->arrayObject->prepend('New Value');
$I->assertEquals($this->arrayObject[0], 'New Value');
$this->arrayObject->prepend(['topProp' => 'Top Value']);
$I->assertEquals($this->arrayObject->topProp, 'Top Value');
}
public function testToJson(UnitTester $I)
{
$json = $this->arrayObject->toJson();
$I->assertEquals($json, '{"key_one":"Value One","key_two":"Value Two"}');
}
public function testChunk(UnitTester $I)
{
$this->arrayObject->combine([
'key_three' => 'Value Three',
'key_four' => 'Value Four',
'key_five' => 'Value Five',
'key_six' => 'Value Six'
]);
$chunks = $this->arrayObject->chunks(2);
$I->assertEquals($chunks->count(), 3);
$I->assertEquals($chunks->{0}->count(), 2);
$I->assertEquals($chunks->{1}->count(), 2);
$I->assertEquals($chunks->{2}->count(), 2);
$I->assertTrue($chunks->{0}->contains('Value One'));
$I->assertFalse($chunks->{0}->contains('Value Three'));
$I->assertTrue($chunks->{1}->contains('Value Three'));
$I->assertFalse($chunks->{1}->contains('Value One'));
$I->assertTrue($chunks->{2}->contains('Value Five'));
$I->assertFalse($chunks->{2}->contains('Value One'));
}
}