public function testGetValidOperatorTypesForAllAttributeTypes() { $model = new TestOperatorTypeModel(); $this->assertEquals('equals', ModelAttributeToOperatorTypeUtil::getOperatorType($model, 'integerStandard')); $this->assertEquals('equals', ModelAttributeToOperatorTypeUtil::getOperatorType($model, 'dateStandard')); $this->assertEquals('equals', ModelAttributeToOperatorTypeUtil::getOperatorType($model, 'dateTimeStandard')); $this->assertEquals('equals', ModelAttributeToOperatorTypeUtil::getOperatorType($model, 'floatStandard')); $this->assertEquals('equals', ModelAttributeToOperatorTypeUtil::getOperatorType($model, 'timeStandard')); $this->assertEquals('startsWith', ModelAttributeToOperatorTypeUtil::getOperatorType($model, 'emailStandard')); $this->assertEquals('equals', ModelAttributeToOperatorTypeUtil::getOperatorType($model, 'booleanStandard')); $this->assertEquals('contains', ModelAttributeToOperatorTypeUtil::getOperatorType($model, 'urlStandard')); //Test all custom fields $this->assertEquals('equals', ModelAttributeToOperatorTypeUtil::getOperatorType($model, 'checkBoxCstm')); $this->assertEquals('equals', ModelAttributeToOperatorTypeUtil::getOperatorType($model, 'currencyCstm')); $this->assertEquals('equals', ModelAttributeToOperatorTypeUtil::getOperatorType($model, 'dateCstm')); $this->assertEquals('equals', ModelAttributeToOperatorTypeUtil::getOperatorType($model, 'dateTimeCstm')); $this->assertEquals('equals', ModelAttributeToOperatorTypeUtil::getOperatorType($model, 'decimalCstm')); $this->assertEquals('equals', ModelAttributeToOperatorTypeUtil::getOperatorType($model, 'dropDownCstm')); $this->assertEquals('equals', ModelAttributeToOperatorTypeUtil::getOperatorType($model, 'integerCstm')); $this->assertEquals('startsWith', ModelAttributeToOperatorTypeUtil::getOperatorType($model, 'phoneCstm')); $this->assertEquals('equals', ModelAttributeToOperatorTypeUtil::getOperatorType($model, 'radioCstm')); $this->assertEquals('startsWith', ModelAttributeToOperatorTypeUtil::getOperatorType($model, 'textCstm')); $this->assertEquals('contains', ModelAttributeToOperatorTypeUtil::getOperatorType($model, 'textAreaCstm')); $this->assertEquals('contains', ModelAttributeToOperatorTypeUtil::getOperatorType($model, 'urlCstm')); }
/** * Method for populating clauses for concated attributes. The first concated attribute $attributeNames[0] * will be used to determine the operator types. */ protected function populateClausesAndStructureForConcatedAttributes($model, $attributeNames, $value, &$adaptedMetadataClauseBasePart, &$clauseCount, &$structure, $operatorType = null) { assert('is_array($attributeNames) && count($attributeNames) == 2'); assert('is_array($adaptedMetadataClauseBasePart)'); assert('is_int($clauseCount)'); assert('$structure == null || is_string($structure)'); if ($value !== null) { if ($operatorType == null) { $operatorType = ModelAttributeToOperatorTypeUtil::getOperatorType($model, $attributeNames[0]); $operatorTypeCompare = ModelAttributeToOperatorTypeUtil::getOperatorType($model, $attributeNames[1]); if ($operatorType != $operatorTypeCompare) { throw new NotSupportedException(); } } $value = ModelAttributeToCastTypeUtil::resolveValueForCast($model, $attributeNames[0], $value); $adaptedMetadataClauseBasePart = array('concatedAttributeNames' => $attributeNames, 'operatorType' => $operatorType, 'value' => $value); if ($this->appendStructureAsAnd) { static::appendClauseAsAndToStructureString($structure, $clauseCount); } else { static::appendClauseAsOrToStructureString($structure, $clauseCount); } $clauseCount++; } }