diff --git a/src/ArrayHelper.php b/src/ArrayHelper.php index 596065a..559d2ab 100644 --- a/src/ArrayHelper.php +++ b/src/ArrayHelper.php @@ -5,6 +5,7 @@ namespace adeattwood\helpers; use Yii; use adeattwood\helpers\ArrayObject; use adeattwood\helpers\Enum; +use yii\base\InvalidConfigException; /** * @category PHP diff --git a/src/Enum.php b/src/Enum.php index bf0c8cf..390877f 100644 --- a/src/Enum.php +++ b/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; } } diff --git a/tests/unit/ArrayHelperCest.php b/tests/unit/ArrayHelperCest.php index ecbb033..c3d232f 100644 --- a/tests/unit/ArrayHelperCest.php +++ b/tests/unit/ArrayHelperCest.php @@ -15,7 +15,9 @@ use adeattwood\helpers\tests\_data\ModelOne; class ArrayHelperCest { - public function _before( UnitTester $I ) + + +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' ); + } + } } diff --git a/tests/unit/ArrayObjectCest.php b/tests/unit/ArrayObjectCest.php index 3dfc1f0..81df52e 100644 --- a/tests/unit/ArrayObjectCest.php +++ b/tests/unit/ArrayObjectCest.php @@ -57,4 +57,12 @@ class ArrayObjectCest $I->assertContains( '