public function testGetExitCode() { $this->if($php = new testedClass(null, $adapter = new atoum\test\adapter()))->then->variable($php->getExitCode())->isNull()->if($adapter->proc_open = function ($command, $descriptors, &$streams) use(&$phpResource, &$stdin, &$stdout, &$stderr) { $streams = array($stdin = uniqid(), $stdout = uniqid(), $stderr = uniqid); return $phpResource = uniqid(); })->and($adapter->fclose = null)->and($adapter->stream_set_blocking = null)->and($adapter->stream_get_contents = null)->and($adapter->proc_close = null)->and($adapter->proc_get_status[1] = array('running' => true))->and($adapter->proc_get_status[2] = array('running' => false, 'exitcode' => $exitCode = rand(0, PHP_INT_MAX)))->and($php->run())->then->variable($php->getExitCode())->isEqualTo($exitCode); }