| @@ -105,11 +105,17 @@ | ||
| 105 | 105 | $activeConfig->roles = $rolesTable->$testEnvName; | 
| 106 | 106 | } | 
| 107 | 107 | |
| 108 | + /** | |
| 109 | + * @param Injectables $injectables | |
| 110 | + */ | |
| 108 | 111 | public function mergeStoryplayerConfig($injectables, $spConf) | 
| 109 | 112 |  	{ | 
| 110 | 113 |  		$this->mergeData('storyplayer', $spConf); | 
| 111 | 114 | } | 
| 112 | 115 | |
| 116 | + /** | |
| 117 | + * @param Injectables $injectables | |
| 118 | + */ | |
| 113 | 119 | public function mergeSystemUnderTestConfig($injectables, SystemUnderTestConfig $sutConfig = null) | 
| 114 | 120 |  	{ | 
| 115 | 121 | // do we have a system under test? | 
| @@ -75,43 +75,43 @@ discard block | ||
| 75 | 75 | */ | 
| 76 | 76 | class ActiveConfig extends WrappedConfig | 
| 77 | 77 |  { | 
| 78 | - public function init(Injectables $injectables) | |
| 79 | -	{ | |
| 80 | - // we start off with the built-in config | |
| 81 | -		$this->mergeData('storyplayer', $injectables->defaultConfig); | |
| 82 | - | |
| 83 | - // these are the initial variables we want | |
| 84 | -		$this->setData('storyplayer.ipAddress', $this->getHostIpAddress()); | |
| 85 | -		$this->setData('storyplayer.currentDir', getcwd()); | |
| 86 | -		$this->setData('storyplayer.user.home', getenv('HOME')); | |
| 87 | - | |
| 88 | - // we also want to link in the hosts and roles tables, to make | |
| 89 | - // it a lot easier for Prose modules | |
| 90 | - $activeConfig = $this->getConfig(); | |
| 78 | + public function init(Injectables $injectables) | |
| 79 | +    { | |
| 80 | + // we start off with the built-in config | |
| 81 | +        $this->mergeData('storyplayer', $injectables->defaultConfig); | |
| 82 | + | |
| 83 | + // these are the initial variables we want | |
| 84 | +        $this->setData('storyplayer.ipAddress', $this->getHostIpAddress()); | |
| 85 | +        $this->setData('storyplayer.currentDir', getcwd()); | |
| 86 | +        $this->setData('storyplayer.user.home', getenv('HOME')); | |
| 87 | + | |
| 88 | + // we also want to link in the hosts and roles tables, to make | |
| 89 | + // it a lot easier for Prose modules | |
| 90 | + $activeConfig = $this->getConfig(); | |
| 91 | 91 | $runtimeConfig = $injectables->getRuntimeConfig(); | 
| 92 | 92 | $runtimeConfigManager = $injectables->getRuntimeConfigManager(); | 
| 93 | 93 | $testEnvName = $injectables->activeTestEnvironmentName; | 
| 94 | 94 | |
| 95 | - $hostsTable = $runtimeConfigManager->getTable($runtimeConfig, 'hosts'); | |
| 95 | + $hostsTable = $runtimeConfigManager->getTable($runtimeConfig, 'hosts'); | |
| 96 | 96 |          if (!isset($hostsTable->$testEnvName)) { | 
| 97 | 97 | $hostsTable->$testEnvName = new BaseObject; | 
| 98 | 98 | } | 
| 99 | 99 | $activeConfig->hosts = $hostsTable->$testEnvName; | 
| 100 | 100 | |
| 101 | - $rolesTable = $runtimeConfigManager->getTable($runtimeConfig, 'roles'); | |
| 101 | + $rolesTable = $runtimeConfigManager->getTable($runtimeConfig, 'roles'); | |
| 102 | 102 |          if (!isset($rolesTable->$testEnvName)) { | 
| 103 | 103 | $rolesTable->$testEnvName = new BaseObject; | 
| 104 | 104 | } | 
| 105 | 105 | $activeConfig->roles = $rolesTable->$testEnvName; | 
| 106 | - } | |
| 106 | + } | |
| 107 | 107 | |
| 108 | - public function mergeStoryplayerConfig($injectables, $spConf) | |
| 109 | -	{ | |
| 110 | -		$this->mergeData('storyplayer', $spConf); | |
| 111 | - } | |
| 108 | + public function mergeStoryplayerConfig($injectables, $spConf) | |
| 109 | +    { | |
| 110 | +        $this->mergeData('storyplayer', $spConf); | |
| 111 | + } | |
| 112 | 112 | |
| 113 | - public function mergeSystemUnderTestConfig($injectables, SystemUnderTestConfig $sutConfig = null) | |
| 114 | -	{ | |
| 113 | + public function mergeSystemUnderTestConfig($injectables, SystemUnderTestConfig $sutConfig = null) | |
| 114 | +    { | |
| 115 | 115 | // do we have a system under test? | 
| 116 | 116 |          if (!isset($injectables->activeSystemUnderTestName) || $sutConfig === null) { | 
| 117 | 117 |              $this->setData('systemundertest', null); | 
| @@ -123,7 +123,7 @@ discard block | ||
| 123 | 123 | |
| 124 | 124 | // merge in the loaded config | 
| 125 | 125 |          $this->mergeData('systemundertest', $sutConfig->getConfig()); | 
| 126 | - } | |
| 126 | + } | |
| 127 | 127 | |
| 128 | 128 | /** | 
| 129 | 129 | * | 
| @@ -131,8 +131,8 @@ discard block | ||
| 131 | 131 | * @param \DataSift\Storyplayer\TestEnvironmentsLib\TestEnvironmentsConfig|\DataSift\Storyplayer\DefinitionLib\TestEnvironment_Definition $envConfig | 
| 132 | 132 | * @return void | 
| 133 | 133 | */ | 
| 134 | - public function mergeTestEnvironmentConfig($injectables, $envConfig = null) | |
| 135 | -	{ | |
| 134 | + public function mergeTestEnvironmentConfig($injectables, $envConfig = null) | |
| 135 | +    { | |
| 136 | 136 | // do we have a test environment? | 
| 137 | 137 |          if (!isset($injectables->activeTestEnvironmentName) || $envConfig === null) { | 
| 138 | 138 |              $this->setData('target', null); | 
| @@ -143,8 +143,8 @@ discard block | ||
| 143 | 143 |          $this->setData('target.name', $injectables->activeTestEnvironmentName); | 
| 144 | 144 | |
| 145 | 145 | // merge in the loaded config | 
| 146 | -		$this->mergeData('target', $envConfig->getConfig()); | |
| 147 | - } | |
| 146 | +        $this->mergeData('target', $envConfig->getConfig()); | |
| 147 | + } | |
| 148 | 148 | |
| 149 | 149 | protected function getHostIpAddress() | 
| 150 | 150 |      { | 
| @@ -87,7 +87,7 @@ discard block | ||
| 87 | 87 | |
| 88 | 88 | // we also want to link in the hosts and roles tables, to make | 
| 89 | 89 | // it a lot easier for Prose modules | 
| 90 | - $activeConfig = $this->getConfig(); | |
| 90 | + $activeConfig = $this->getConfig(); | |
| 91 | 91 | $runtimeConfig = $injectables->getRuntimeConfig(); | 
| 92 | 92 | $runtimeConfigManager = $injectables->getRuntimeConfigManager(); | 
| 93 | 93 | $testEnvName = $injectables->activeTestEnvironmentName; | 
| @@ -179,7 +179,7 @@ discard block | ||
| 179 | 179 | // does the adapter have an IP address? | 
| 180 | 180 |                  try { | 
| 181 | 181 | $ipAddress = $netifaces->getIpAddress($adapterToTest); | 
| 182 | -                } catch(NetifacesException $e){ | |
| 182 | +                } catch (NetifacesException $e) { | |
| 183 | 183 | // We couldn't get an IP address | 
| 184 | 184 | $ipAddress = null; | 
| 185 | 185 | } | 
| @@ -213,7 +213,7 @@ discard block | ||
| 213 | 213 | // this sucks | 
| 214 | 214 |              throw new NetifacesException("Unable to determine IP address"); | 
| 215 | 215 | |
| 216 | -        } catch (NetifacesException $e){ | |
| 216 | +        } catch (NetifacesException $e) { | |
| 217 | 217 |              throw new Exception("could not determine IP address of host machine"); | 
| 218 | 218 | } | 
| 219 | 219 | } | 
| @@ -179,7 +179,8 @@ discard block | ||
| 179 | 179 | // does the adapter have an IP address? | 
| 180 | 180 |                  try { | 
| 181 | 181 | $ipAddress = $netifaces->getIpAddress($adapterToTest); | 
| 182 | -                } catch(NetifacesException $e){ | |
| 182 | + } | |
| 183 | +                catch(NetifacesException $e) { | |
| 183 | 184 | // We couldn't get an IP address | 
| 184 | 185 | $ipAddress = null; | 
| 185 | 186 | } | 
| @@ -213,7 +214,8 @@ discard block | ||
| 213 | 214 | // this sucks | 
| 214 | 215 |              throw new NetifacesException("Unable to determine IP address"); | 
| 215 | 216 | |
| 216 | -        } catch (NetifacesException $e){ | |
| 217 | + } | |
| 218 | +        catch (NetifacesException $e) { | |
| 217 | 219 |              throw new Exception("could not determine IP address of host machine"); | 
| 218 | 220 | } | 
| 219 | 221 | } | 
| @@ -220,7 +220,7 @@ discard block | ||
| 220 | 220 | /** | 
| 221 | 221 | * how should we provision this environment? | 
| 222 | 222 | * | 
| 223 | - * @return array<ProvisioningAdapters> | |
| 223 | + * @return ProvisioningAdapter[] | |
| 224 | 224 | */ | 
| 225 | 225 | public function getProvisioningAdapters() | 
| 226 | 226 |      { | 
| @@ -265,7 +265,7 @@ discard block | ||
| 265 | 265 | /** | 
| 266 | 266 | * what hosts exist in this group? | 
| 267 | 267 | * | 
| 268 | - * @return array<TestEnvironment_HostDefinition> | |
| 268 | + * @return TestEnvironmentHost[] | |
| 269 | 269 | */ | 
| 270 | 270 | public function getHosts() | 
| 271 | 271 |      { | 
| @@ -74,6 +74,9 @@ | ||
| 74 | 74 | */ | 
| 75 | 75 | protected $storySettings; | 
| 76 | 76 | |
| 77 | + /** | |
| 78 | + * @param string $hostId | |
| 79 | + */ | |
| 77 | 80 | public function __construct(TestEnvironment_GroupDefinition $parentGroup, $hostId) | 
| 78 | 81 |      { | 
| 79 | 82 | $this->setParentGroup($parentGroup); | 
| @@ -53,7 +53,7 @@ discard block | ||
| 53 | 53 | * this function avoids reset()ing the array, so it will not mess with | 
| 54 | 54 | * any iteration that you may currently be part-way through | 
| 55 | 55 | * | 
| 56 | - * @param array $arrayToSearch | |
| 56 | + * @param Storyplayer\TestEnvironments\ProvisioningAdapter[] $arrayToSearch | |
| 57 | 57 | * the array to get the first element of | 
| 58 | 58 | * @return mixed | 
| 59 | 59 | * the first element of $array, or NULL if the array is empty | 
| @@ -95,7 +95,7 @@ discard block | ||
| 95 | 95 | /** | 
| 96 | 96 | * Create a new test environment object | 
| 97 | 97 | * | 
| 98 | - * @return TestEnvironment | |
| 98 | + * @return TestEnvironment_Definition | |
| 99 | 99 | * the test environment object to use in the script | 
| 100 | 100 | */ | 
| 101 | 101 | function newTestEnvironment() | 
| @@ -115,7 +115,8 @@ | ||
| 115 | 115 | * @param callback $callback the action(s) to attempt | 
| 116 | 116 | * @return void | 
| 117 | 117 | */ | 
| 118 | -function tryTo($callback) { | |
| 118 | +function tryTo($callback) | |
| 119 | +{ | |
| 119 | 120 |      try { | 
| 120 | 121 | $callback(); | 
| 121 | 122 | } | 
| @@ -177,7 +177,6 @@ | ||
| 177 | 177 | } | 
| 178 | 178 | |
| 179 | 179 | /** | 
| 180 | - * @param integer $level | |
| 181 | 180 | * @param string $msg | 
| 182 | 181 | * @return void | 
| 183 | 182 | */ | 
| @@ -99,6 +99,9 @@ | ||
| 99 | 99 | return array(); | 
| 100 | 100 | } | 
| 101 | 101 | |
| 102 | + /** | |
| 103 | + * @return string | |
| 104 | + */ | |
| 102 | 105 | public function getPublicDnsName() | 
| 103 | 106 |      { | 
| 104 | 107 | // make sure we have a host to work with | 
| @@ -62,6 +62,10 @@ | ||
| 62 | 62 | */ | 
| 63 | 63 | class FromPDOStatement extends Prose | 
| 64 | 64 |  { | 
| 65 | + /** | |
| 66 | + * @param \DataSift\Storyplayer\PlayerLib\StoryTeller $st | |
| 67 | + * @param PDOStatement[] $args | |
| 68 | + */ | |
| 65 | 69 | public function __construct($st, $args) | 
| 66 | 70 |      { | 
| 67 | 71 | // call our parent first | 
| @@ -81,8 +81,7 @@ discard block | ||
| 81 | 81 | // what are we doing? | 
| 82 | 82 |          $log = usingLog()->startAction("fetch all rows from the PDO query result"); | 
| 83 | 83 | |
| 84 | - try | |
| 85 | -        { | |
| 84 | +        try { | |
| 86 | 85 | $rows = $this->args[0]->fetchAll(); | 
| 87 | 86 | |
| 88 | 87 | // all done | 
| @@ -90,8 +89,7 @@ discard block | ||
| 90 | 89 | |
| 91 | 90 | return $rows; | 
| 92 | 91 | } | 
| 93 | - catch (Exception $e) | |
| 94 | -        { | |
| 92 | +        catch (Exception $e) { | |
| 95 | 93 | throw new E5xx_ActionFailed(__METHOD__, $e->getMessage()); | 
| 96 | 94 | } | 
| 97 | 95 | } | 
| @@ -101,8 +99,7 @@ discard block | ||
| 101 | 99 | // what are we doing? | 
| 102 | 100 |          $log = usingLog()->startAction("fetch 1 row from the PDO query result"); | 
| 103 | 101 | |
| 104 | - try | |
| 105 | -        { | |
| 102 | +        try { | |
| 106 | 103 | $row = $this->args[0]->fetch(PDO::FETCH_ASSOC); | 
| 107 | 104 | |
| 108 | 105 | // all done | 
| @@ -110,8 +107,7 @@ discard block | ||
| 110 | 107 | |
| 111 | 108 | return $row; | 
| 112 | 109 | } | 
| 113 | - catch (Exception $e) | |
| 114 | -        { | |
| 110 | +        catch (Exception $e) { | |
| 115 | 111 | throw new E5xx_ActionFailed(__METHOD__, $e->getMessage()); | 
| 116 | 112 | } | 
| 117 | 113 | } | 
| @@ -121,8 +117,7 @@ discard block | ||
| 121 | 117 | // what are we doing? | 
| 122 | 118 |          $log = usingLog()->startAction("fetch 1 row from the PDO query result"); | 
| 123 | 119 | |
| 124 | - try | |
| 125 | -        { | |
| 120 | +        try { | |
| 126 | 121 | $row = $this->args[0]->fetch(PDO::FETCH_NUM); | 
| 127 | 122 | |
| 128 | 123 | // all done | 
| @@ -130,8 +125,7 @@ discard block | ||
| 130 | 125 | |
| 131 | 126 | return $row; | 
| 132 | 127 | } | 
| 133 | - catch (Exception $e) | |
| 134 | -        { | |
| 128 | +        catch (Exception $e) { | |
| 135 | 129 | throw new E5xx_ActionFailed(__METHOD__, $e->getMessage()); | 
| 136 | 130 | } | 
| 137 | 131 | } | 
| @@ -141,8 +135,7 @@ discard block | ||
| 141 | 135 | // what are we doing? | 
| 142 | 136 |          $log = usingLog()->startAction("fetch 1 row from the PDO query result"); | 
| 143 | 137 | |
| 144 | - try | |
| 145 | -        { | |
| 138 | +        try { | |
| 146 | 139 | $row = $this->args[0]->fetch(PDO::FETCH_OBJ); | 
| 147 | 140 | |
| 148 | 141 | // all done | 
| @@ -150,8 +143,7 @@ discard block | ||
| 150 | 143 | |
| 151 | 144 | return $row; | 
| 152 | 145 | } | 
| 153 | - catch (Exception $e) | |
| 154 | -        { | |
| 146 | +        catch (Exception $e) { | |
| 155 | 147 | throw new E5xx_ActionFailed(__METHOD__, $e->getMessage()); | 
| 156 | 148 | } | 
| 157 | 149 | } | 
| @@ -125,6 +125,9 @@ discard block | ||
| 125 | 125 | return $value; | 
| 126 | 126 | } | 
| 127 | 127 | |
| 128 | + /** | |
| 129 | + * @param string $setting | |
| 130 | + */ | |
| 128 | 131 | public function getModuleSetting($setting) | 
| 129 | 132 |      { | 
| 130 | 133 | // what are we doing? | 
| @@ -154,7 +157,7 @@ discard block | ||
| 154 | 157 | * We've standardised on 'getConfig()' as the documented name for this | 
| 155 | 158 | * functionality across all three of the config-related modules. | 
| 156 | 159 | * | 
| 157 | - * @return object | |
| 160 | + * @return string | |
| 158 | 161 | */ | 
| 159 | 162 | public function getAllSettings() | 
| 160 | 163 |      { | 
| @@ -132,7 +132,7 @@ | ||
| 132 | 132 | |
| 133 | 133 | // get the details | 
| 134 | 134 | $fullPath = 'target.moduleSettings.' . $setting; | 
| 135 | - $config = $this->st->getConfig(); | |
| 135 | + $config = $this->st->getConfig(); | |
| 136 | 136 | |
| 137 | 137 | $value = null; | 
| 138 | 138 |          if ($config->hasData($fullPath)) { | 
| @@ -62,6 +62,10 @@ | ||
| 62 | 62 | */ | 
| 63 | 63 | class UsingPDODB extends Prose | 
| 64 | 64 |  { | 
| 65 | + /** | |
| 66 | + * @param \DataSift\Storyplayer\PlayerLib\StoryTeller $st | |
| 67 | + * @param PDO[] $args | |
| 68 | + */ | |
| 65 | 69 | public function __construct($st, $args) | 
| 66 | 70 |      { | 
| 67 | 71 | // call our parent first | 
| @@ -81,8 +81,7 @@ discard block | ||
| 81 | 81 | // what are we doing? | 
| 82 | 82 | $log = usingLog()->startAction(["run SQL query:", $sql, "/ with params:", $params, "and driver params:", $driverParams]); | 
| 83 | 83 | |
| 84 | - try | |
| 85 | -        { | |
| 84 | +        try { | |
| 86 | 85 | // create a prepared statement | 
| 87 | 86 | // | 
| 88 | 87 | // we do this so that we can inject the $params into the SQL statement | 
| @@ -95,8 +94,7 @@ discard block | ||
| 95 | 94 | $log->endAction(); | 
| 96 | 95 | return $stmt; | 
| 97 | 96 | } | 
| 98 | - catch (Exception $e) | |
| 99 | -        { | |
| 97 | +        catch (Exception $e) { | |
| 100 | 98 | throw new E5xx_ActionFailed(__METHOD__, $e->getMessage()); | 
| 101 | 99 | } | 
| 102 | 100 | } | 
| @@ -106,8 +104,7 @@ discard block | ||
| 106 | 104 | // what are we doing? | 
| 107 | 105 | $log = usingLog()->startAction(["run raw SQL query:", $sql, "with driver params: ", $driverParams]); | 
| 108 | 106 | |
| 109 | - try | |
| 110 | -        { | |
| 107 | +        try { | |
| 111 | 108 | // execute the prepared statement | 
| 112 | 109 | // | 
| 113 | 110 | // we do this directly so that you can (hopefully) attempt | 
| @@ -118,8 +115,7 @@ discard block | ||
| 118 | 115 | $log->endAction(); | 
| 119 | 116 | return $stmt; | 
| 120 | 117 | } | 
| 121 | - catch (Exception $e) | |
| 122 | -        { | |
| 118 | +        catch (Exception $e) { | |
| 123 | 119 | throw new E5xx_ActionFailed(__METHOD__, $e->getMessage()); | 
| 124 | 120 | } | 
| 125 | 121 | } | 
| @@ -129,15 +125,13 @@ discard block | ||
| 129 | 125 | // what are we doing? | 
| 130 | 126 |          $log = usingLog()->startAction("begin PDO database transaction"); | 
| 131 | 127 | |
| 132 | - try | |
| 133 | -        { | |
| 128 | +        try { | |
| 134 | 129 | $this->args[0]->beginTransaction(); | 
| 135 | 130 | |
| 136 | 131 | // all done | 
| 137 | 132 | $log->endAction(); | 
| 138 | 133 | } | 
| 139 | - catch (Exception $e) | |
| 140 | -        { | |
| 134 | +        catch (Exception $e) { | |
| 141 | 135 | throw new E5xx_ActionFailed(__METHOD__, $e->getMessage()); | 
| 142 | 136 | } | 
| 143 | 137 | } | 
| @@ -147,15 +141,13 @@ discard block | ||
| 147 | 141 | // what are we doing? | 
| 148 | 142 |          $log = usingLog()->startAction("commit PDO database transaction"); | 
| 149 | 143 | |
| 150 | - try | |
| 151 | -        { | |
| 144 | +        try { | |
| 152 | 145 | $this->args[0]->commit(); | 
| 153 | 146 | |
| 154 | 147 | // all done | 
| 155 | 148 | $log->endAction(); | 
| 156 | 149 | } | 
| 157 | - catch (Exception $e) | |
| 158 | -        { | |
| 150 | +        catch (Exception $e) { | |
| 159 | 151 | throw new E5xx_ActionFailed(__METHOD__, $e->getMessage()); | 
| 160 | 152 | } | 
| 161 | 153 | } | 
| @@ -165,15 +157,13 @@ discard block | ||
| 165 | 157 | // what are we doing? | 
| 166 | 158 |          $log = usingLog()->startAction("rollback PDO database transaction"); | 
| 167 | 159 | |
| 168 | - try | |
| 169 | -        { | |
| 160 | +        try { | |
| 170 | 161 | $this->args[0]->rollBack(); | 
| 171 | 162 | |
| 172 | 163 | // all done | 
| 173 | 164 | $log->endAction(); | 
| 174 | 165 | } | 
| 175 | - catch (Exception $e) | |
| 176 | -        { | |
| 166 | +        catch (Exception $e) { | |
| 177 | 167 | throw new E5xx_ActionFailed(__METHOD__, $e->getMessage()); | 
| 178 | 168 | } | 
| 179 | 169 | } |