Testing and bug fix
This commit is contained in:
parent
658bed4c6c
commit
f95233dad2
5 changed files with 71 additions and 15 deletions
|
|
@ -5,6 +5,7 @@ namespace adeattwood\helpers;
|
|||
use Yii;
|
||||
use adeattwood\helpers\ArrayObject;
|
||||
use adeattwood\helpers\Enum;
|
||||
use yii\base\InvalidConfigException;
|
||||
|
||||
/**
|
||||
* @category PHP
|
||||
|
|
|
|||
24
src/Enum.php
24
src/Enum.php
|
|
@ -50,26 +50,22 @@ class Enum extends \yii\base\Object
|
|||
{
|
||||
switch( $var ) {
|
||||
case is_null( $var ):
|
||||
return static::TYPE_NULL;
|
||||
break;
|
||||
case is_bool( $var );
|
||||
return static::TYPE_BOOL;
|
||||
break;
|
||||
return self::TYPE_NULL;
|
||||
case is_array( $var ):
|
||||
return self::TYPE_ARRAY;
|
||||
case is_bool( $var ):
|
||||
return self::TYPE_BOOL;
|
||||
case is_float( $var ):
|
||||
case is_numeric( str_replace( ',', '', $var ) ) && strpos( $var, '.' ) > 0 && is_float( ( float )str_replace( ',', '', $var ) ):
|
||||
return static::TYPE_FLOAT;
|
||||
break;
|
||||
return self::TYPE_FLOAT;
|
||||
case is_int( $var ) || ( is_numeric( $var ) && is_int( ( int )$var ) ):
|
||||
return static::TYPE_INT;
|
||||
break;
|
||||
return self::TYPE_INT;
|
||||
case is_scalar( $var ) && strtotime( $var ) !== false:
|
||||
return static::TYPE_DATETIME;
|
||||
break;
|
||||
return self::TYPE_DATETIME;
|
||||
case is_scalar( $var ):
|
||||
return static::TYPE_STRING;
|
||||
break;
|
||||
return self::TYPE_STRING;
|
||||
default:
|
||||
return static::TYPE_UNKNOWN;
|
||||
return self::TYPE_UNKNOWN;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -15,6 +15,8 @@ use adeattwood\helpers\tests\_data\ModelOne;
|
|||
class ArrayHelperCest
|
||||
{
|
||||
|
||||
|
||||
|
||||
public function _before( UnitTester $I )
|
||||
{
|
||||
}
|
||||
|
|
@ -44,6 +46,7 @@ class ArrayHelperCest
|
|||
public function testParseAttribute( UnitTester $I )
|
||||
{
|
||||
$model = new ModelOne;
|
||||
|
||||
$model->propOne = "test";
|
||||
|
||||
$data = ArrayHelper::parseAttribute( $model, 'propOne' );
|
||||
|
|
@ -55,4 +58,32 @@ class ArrayHelperCest
|
|||
$I->assertEquals( $data->value, 'test' );
|
||||
$I->assertEquals( $data->raw, 'test' );
|
||||
}
|
||||
|
||||
public function testErrorWithParseAttribute( UnitTester $I )
|
||||
{
|
||||
$model = new ModelOne;
|
||||
|
||||
$model->propOne = "test";
|
||||
try {
|
||||
$data = ArrayHelper::parseAttribute( $model, 'not_a_prop' );
|
||||
$I->fail( 'Not exseption thrown' );
|
||||
} catch ( \yii\base\UnknownPropertyException $e ) {
|
||||
} catch ( \Exception $e ) {
|
||||
$I->fail( '\yii\base\UnknownPropertyException should have been thorwn' );
|
||||
}
|
||||
}
|
||||
|
||||
public function testInvalidConfigParseAttribute( UnitTester $I )
|
||||
{
|
||||
$model = new ModelOne;
|
||||
|
||||
$model->propOne = "test";
|
||||
try {
|
||||
$data = ArrayHelper::parseAttribute( $model, '' );
|
||||
$I->fail( 'Not exseption thrown' );
|
||||
} catch ( \yii\base\InvalidConfigException $e ) {
|
||||
} catch ( \Exception $e ) {
|
||||
$I->fail( '\yii\base\InvalidConfigException should have been thorwn' );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -57,4 +57,12 @@ class ArrayObjectCest
|
|||
$I->assertContains( '<table class="table table-bordered table-striped">', $table );
|
||||
$I->assertContains( '<span title="string" style="cursor: default; border-bottom: 1px #aaa dashed;">Value One</span>', $table );
|
||||
}
|
||||
|
||||
public function testRandomValue( UnitTester $I )
|
||||
{
|
||||
for( $i = 0; $i < 5; $i++ ) {
|
||||
$I->assertContains( $this->arrayObject->randomValue(), $this->array );
|
||||
// var_dump( $this->arrayObject->randomValue() );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -27,4 +27,24 @@ class EnumCest
|
|||
$I->assertEquals( Enum::formatBytes( 28434322.25 ), "27.12 MB" );
|
||||
$I->assertEquals( Enum::formatBytes( 17328347842.25, 3 ), "16.138 GB" );
|
||||
}
|
||||
|
||||
/**
|
||||
* @todo test returning a resource
|
||||
*/
|
||||
public function testGetTypeReturnValue( UnitTester $I )
|
||||
{
|
||||
$array = [
|
||||
"array" => [ "key" => "value" ],
|
||||
//"null" => null,
|
||||
"boolean" => true,
|
||||
"float" => 1.2,
|
||||
"integer" => 3,
|
||||
"datetime" => "2-2-1989",
|
||||
"string" => "I'm a string"
|
||||
];
|
||||
|
||||
foreach ( $array as $type => $var ) {
|
||||
$I->assertEquals( $type, Enum::getType( $var ) );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue