/**
  * Returns an array with values for the suite log entry.
  *
  * @param false|bool $update (Optional) Values for insert or update statement?
  * @param bool       $error  (Optional) Sets instead of the pending value(0) the error status (2)
  *
  * @return array
  */
 protected function _getSuiteValuesArray($update = false, $error = false)
 {
     if ($update) {
         return [$this->testSuite->isFailed() ? 2 : 1, date('Y-m-d H:i:s'), $this->suiteTimer->time()];
     }
     return [$this->suiteSettings->getBuildNumber(), $this->suiteSettings->getSuiteName(), $this->suiteSettings->getVersion(), $this->suiteSettings->getBranch(), $error ? 3 : 0, date('Y-m-d H:i:s'), date('Y-m-d H:i:s'), 0.0];
 }
 /**
  * Returns a web driver element by the given searching type.
  *
  * @param string                 $by      Searching type.
  * @param string                 $value   Expected value of searching type.
  * @param WebDriverSearchContext $context Instance to find elements.
  *
  * @deprecated Will be remove in future version! Algorithms are unstable and may procedure errors.
  * @return WebDriverElement Expected web driver element.
  */
 private function _by($by, $value, WebDriverSearchContext $context)
 {
     if ($this->failed) {
         return new WebDriverElementNull();
     }
     try {
         return $context->findElement(WebDriverBy::$by($value));
     } catch (NoSuchElementException $e) {
         $this->testSuite->getSuiteSettings()->getCurrentTestCase()->_exceptionError('element by "' . $by . '" with value "' . $value . '" not found', $e);
         return new WebDriverElementNull();
     }
 }
 /**
  * Method to output messages in the running console.
  *
  * @param string $message                  Message to display.
  * @param string $foreground               (Optional) Text color.
  * @param string $background               (Optional) Background color.
  * @param bool   $camelCaseToHumanReadable Converts camel case message to human readable messages.
  *
  * @return $this Same instance for chained method calls.
  */
 public function output($message, $foreground = null, $background = null, $camelCaseToHumanReadable = false)
 {
     if ($this->testSuite->getSuiteSettings()->isLogDisplayed()) {
         if ($camelCaseToHumanReadable) {
             $message = $this->camelToSentence($message);
         }
         echo $this->dye($message, $foreground, $background) . "\n";
     }
     if ($this->testSuite->getSuiteSettings()->isLogStored()) {
         $this->testSuite->getFileLogger()->log($message, 'log');
     }
     return $this;
 }
 /**
  * Returns an instance of a sql logger.
  *
  * @return SqlLogger
  */
 public function createSqlLogger()
 {
     if (null === $this->sqlLogger) {
         try {
             $db = new AlcysDb('mysql:host=' . $this->testSuite->getSuiteSettings()->getDbHost() . ';dbname=' . $this->testSuite->getSuiteSettings()->getDbName(), $this->testSuite->getSuiteSettings()->getDbUser(), $this->testSuite->getSuiteSettings()->getDbPassword());
             $this->sqlLogger = new SqlLogger($db, $this->testSuite);
         } catch (\PDOException $e) {
             $this->testSuite->output("\n" . 'Invalid db credentials .. database logging deactivated');
             $this->sqlLogger = new SqlNull();
         }
     }
     return $this->sqlLogger;
 }