/**
  * @covers \NewFrontiers\Framework\Output\Parser::hasVariable
  */
 public function testHasVariable()
 {
     $this->assertFalse(Parser::hasVariable("Text text text\n[NoVar], (NoVar), /NoVar/, \\NoVar\\"));
     $this->assertFalse(Parser::hasVariable("Text {FailVar"));
     $this->assertFalse(Parser::hasVariable("Text FailVar}"));
     $this->assertTrue(Parser::hasVariable("Text \n text {var} text"));
 }
 /**
  * Exportiert einen Datensatz. Der Datensatz wird in ein passendes
  * Array gewandelt (auf Basis des Mappings). Dieses wird dann über
  * die Array-Funktion exportiert.
  *
  * @param BaseEntity $entity
  */
 protected function exportEntityRow(BaseEntity $entity)
 {
     $row = [];
     foreach ($this->mapping as $header => $field) {
         $value = '';
         if ($field !== '') {
             if (Parser::hasVariable($field)) {
                 // Falls eine Variable enthalten ist -> Parsen
                 $value = Parser::getInstance()->parse($entity, null, [], $field);
             } else {
                 // Jetzt könnte es ein Feld oder ein fester Wert sein
                 if ($entity->hasField($field)) {
                     $value = $entity->{$field};
                 } else {
                     $value = $field;
                 }
             }
             // Muss ein Callback aufgerufen werden
             if (isset($this->callbacks[$header])) {
                 $callable = $this->callbacks[$header];
                 $value = $callable($value);
             }
             $value = trim($value);
             if (strlen($value) > $this->length[$header]) {
                 $value = substr($value, 0, $this->length[$header]);
             }
         }
         $row[$header] = trim($value);
     }
     $this->exportArrayRow($row);
 }