Testing and bug fix

This commit is contained in:
Ade Attwood 2017-06-25 20:43:32 +01:00
parent 658bed4c6c
commit f95233dad2
5 changed files with 71 additions and 15 deletions

View file

@ -5,6 +5,7 @@ namespace adeattwood\helpers;
use Yii; use Yii;
use adeattwood\helpers\ArrayObject; use adeattwood\helpers\ArrayObject;
use adeattwood\helpers\Enum; use adeattwood\helpers\Enum;
use yii\base\InvalidConfigException;
/** /**
* @category PHP * @category PHP

View file

@ -50,26 +50,22 @@ class Enum extends \yii\base\Object
{ {
switch( $var ) { switch( $var ) {
case is_null( $var ): case is_null( $var ):
return static::TYPE_NULL; return self::TYPE_NULL;
break; case is_array( $var ):
case is_bool( $var ); return self::TYPE_ARRAY;
return static::TYPE_BOOL; case is_bool( $var ):
break; return self::TYPE_BOOL;
case is_float( $var ): case is_float( $var ):
case is_numeric( str_replace( ',', '', $var ) ) && strpos( $var, '.' ) > 0 && is_float( ( float )str_replace( ',', '', $var ) ): case is_numeric( str_replace( ',', '', $var ) ) && strpos( $var, '.' ) > 0 && is_float( ( float )str_replace( ',', '', $var ) ):
return static::TYPE_FLOAT; return self::TYPE_FLOAT;
break;
case is_int( $var ) || ( is_numeric( $var ) && is_int( ( int )$var ) ): case is_int( $var ) || ( is_numeric( $var ) && is_int( ( int )$var ) ):
return static::TYPE_INT; return self::TYPE_INT;
break;
case is_scalar( $var ) && strtotime( $var ) !== false: case is_scalar( $var ) && strtotime( $var ) !== false:
return static::TYPE_DATETIME; return self::TYPE_DATETIME;
break;
case is_scalar( $var ): case is_scalar( $var ):
return static::TYPE_STRING; return self::TYPE_STRING;
break;
default: default:
return static::TYPE_UNKNOWN; return self::TYPE_UNKNOWN;
} }
} }

View file

@ -15,7 +15,9 @@ use adeattwood\helpers\tests\_data\ModelOne;
class ArrayHelperCest class ArrayHelperCest
{ {
public function _before( UnitTester $I )
public function _before( UnitTester $I )
{ {
} }
@ -44,6 +46,7 @@ class ArrayHelperCest
public function testParseAttribute( UnitTester $I ) public function testParseAttribute( UnitTester $I )
{ {
$model = new ModelOne; $model = new ModelOne;
$model->propOne = "test"; $model->propOne = "test";
$data = ArrayHelper::parseAttribute( $model, 'propOne' ); $data = ArrayHelper::parseAttribute( $model, 'propOne' );
@ -55,4 +58,32 @@ class ArrayHelperCest
$I->assertEquals( $data->value, 'test' ); $I->assertEquals( $data->value, 'test' );
$I->assertEquals( $data->raw, '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' );
}
}
} }

View file

@ -57,4 +57,12 @@ class ArrayObjectCest
$I->assertContains( '<table class="table table-bordered table-striped">', $table ); $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 ); $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() );
}
}
} }

View file

@ -27,4 +27,24 @@ class EnumCest
$I->assertEquals( Enum::formatBytes( 28434322.25 ), "27.12 MB" ); $I->assertEquals( Enum::formatBytes( 28434322.25 ), "27.12 MB" );
$I->assertEquals( Enum::formatBytes( 17328347842.25, 3 ), "16.138 GB" ); $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 ) );
}
}
} }