public function testConstructSelectClauseForDisplayField()
 {
     $displayField = new DisplayField();
     $fieldName = 'Acme';
     $displayField->setName($fieldName);
     $options = array(array('is_value_list' => true, 'is_encrypted' => true, 'field_alias' => 'Abcd'), array('is_value_list' => true, 'is_encrypted' => true, 'field_alias' => null), array('is_value_list' => true, 'is_encrypted' => false, 'field_alias' => 'Abcd'), array('is_value_list' => true, 'is_encrypted' => false, 'field_alias' => null), array('is_value_list' => false, 'is_encrypted' => false, 'field_alias' => 'Abcd'), array('is_value_list' => false, 'is_encrypted' => false, 'field_alias' => null), array('is_value_list' => false, 'is_encrypted' => true, 'field_alias' => 'Abcd'), array('is_value_list' => false, 'is_encrypted' => true, 'field_alias' => null));
     $encrypt = KeyHandler::keyExists();
     if ($encrypt) {
         $key = KeyHandler::readKey();
     }
     foreach ($options as $option) {
         $displayField = new DisplayField();
         $displayField->setName($fieldName);
         $displayField->setIsValueList($option['is_value_list']);
         $displayField->setIsEncrypted($option['is_encrypted']);
         $displayField->setFieldAlias($option['field_alias']);
         $expected = $fieldName;
         if ($encrypt && $option['is_encrypted']) {
             $expected = 'AES_DECRYPT(UNHEX(' . $fieldName . '),"' . $key . '")';
         }
         if ($option['is_value_list']) {
             $expected = 'GROUP_CONCAT(DISTINCT ' . $expected . " SEPARATOR '|" . '\\n' . "|' ) ";
         }
         if ($option['field_alias']) {
             $expected = $expected . ' AS ' . $option['field_alias'];
         }
         $selectStatement = null;
         $selectStatement = $this->reportGeneratorService->constructSelectClauseForDisplayField($selectStatement, $displayField);
         $this->assertEquals($expected, $selectStatement);
         $selectStatement = "x";
         $expected = 'x,' . $expected;
         $selectStatement = $this->reportGeneratorService->constructSelectClauseForDisplayField($selectStatement, $displayField);
         $this->assertEquals($expected, $selectStatement);
     }
 }
 /**
  *
  * @param <type> $columns
  * @return DisplayField 
  */
 public function saveCustomDisplayField($columns)
 {
     try {
         if (array_key_exists('displayFieldId', $columns)) {
             $displayField = Doctrine::getTable("DisplayField")->find($columns['displayFieldId']);
             $displayField->setLabel($columns['label']);
         } else {
             $displayField = new DisplayField();
             $displayField->setReportGroupId($columns['reportGroupId']);
             $displayField->setName($columns['name']);
             $displayField->setLabel($columns['label']);
             $displayField->setFieldAlias($columns['fieldAlias']);
             $displayField->setIsSortable($columns['isSortable']);
             $displayField->setSortOrder($columns['sortOrder']);
             $displayField->setSortField($columns['sortField']);
             $displayField->setElementType($columns['elementType']);
             $displayField->setElementProperty($columns['elementProperty']);
             $displayField->setWidth($columns['width']);
             $displayField->setIsExportable($columns['isExportable']);
             $displayField->setTextAlignmentStyle($columns['textAlignmentStyle']);
             $displayField->setIsValueList($columns['isValueList']);
             $displayField->setDisplayFieldGroupId($columns['displayFieldGroupId']);
             $displayField->setDefaultValue($columns['defaultValue']);
             $displayField->setIsEncrypted($columns['isEncrypted']);
         }
         $displayField->save();
         return $displayField;
     } catch (Exception $ex) {
         throw new DaoException($ex->getMessage());
     }
 }