Scalr\Tests\Scripting\GlobalVariablesTest::testGlobalVariablesFunctional PHP Method

testGlobalVariablesFunctional() public method

public testGlobalVariablesFunctional ( $scope, $action, $var, $expectedResult )
    public function testGlobalVariablesFunctional($scope, $action, $var, $expectedResult)
    {
        if (empty(self::$vars[$scope]) || empty(self::$args[$scope])) {
            $this->markTestSkipped(sprintf('No object for scope: %s', $scope));
        }
        switch ($action) {
            case 'set':
                $result = call_user_func_array([self::$vars[$scope], 'setValues'], array_merge([[$var]], self::$args[$scope], [false]));
                $this->assertEquals($expectedResult, $result);
                break;
            case 'get':
                $values = call_user_func_array([self::$vars[$scope], 'getValues'], self::$args[$scope]);
                $flag = false;
                foreach ($values as $value) {
                    if ($value['name'] == $var['name']) {
                        $flag = true;
                        $this->assertEquals($var, $value);
                        break;
                    }
                }
                $this->assertEquals($expectedResult, $flag);
                break;
            case 'list':
                $values = call_user_func_array([self::$vars[$scope], 'listVariables'], self::$args[$scope]);
                $flag = false;
                foreach ($values as $value) {
                    if ($value['name'] == $var['name']) {
                        if ($value['name'] == $var['name']) {
                            $flag = true;
                            $this->assertEquals($var, $value);
                            break;
                        }
                    }
                }
                $this->assertEquals($expectedResult, $flag);
                break;
            case 'getuidefaults':
                $values = call_user_func_array([self::$vars[$scope], 'getUiDefaults'], self::$args[$scope]);
                $this->assertTrue(isset($values[$var['name']]));
                $this->assertTrue(isset($values[$var['name']]) && $values[$var['name']] === $var['value']);
                break;
        }
    }