/** * Test getter/setter for defaultMetricUnit property */ public function testGetSetDefaultMetricUnit() { $this->assertNull($this->attribute->getDefaultMetricUnit()); // Change value and assert new $unit = 'm'; $this->assertEntity($this->attribute->setDefaultMetricUnit($unit)); $this->assertEquals($unit, $this->attribute->getDefaultMetricUnit()); }
/** * Generate value content based on backend type * * @param AbstractAttribute $attribute * @param string $key * * @return string */ protected function generateValueData(AbstractAttribute $attribute, $key) { $data = ""; if (isset($this->forcedValues[$attribute->getCode()])) { return $this->forcedValues[$attribute->getCode()]; } if (preg_match('/-' . self::METRIC_UNIT . '$/', $key)) { return $attribute->getDefaultMetricUnit(); } switch ($attribute->getBackendType()) { case "varchar": $data = $this->generateVarcharData($attribute); break; case "text": $data = $this->generateTextData(); break; case "date": $data = $this->generateDateData($attribute); break; case "metric": case "decimal": case "prices": $data = $this->generateNumberData($attribute); break; case "boolean": $data = $this->generateBooleanData(); break; case "option": case "options": $data = $this->generateOptionData($attribute); break; default: $data = ''; break; } return (string) $data; }
/** * Generate value content based on backend type * * @param AbstractAttribute $attribute * @param string $key * * @return string */ protected function generateValueData(AbstractAttribute $attribute, $key) { $data = ""; if (isset($this->forcedValues[$attribute->getCode()])) { return $this->forcedValues[$attribute->getCode()]; } switch ($attribute->getBackendType()) { case "varchar": $validationRule = $attribute->getValidationRule(); switch ($validationRule) { case 'url': $data = $this->faker->url(); break; default: $data = $this->faker->sentence(); break; } break; case "text": $data = $this->faker->sentence(); break; case "date": $data = $this->faker->dateTimeBetween($attribute->getDateMin(), $attribute->getDateMax()); $data = $data->format('Y-m-d'); break; case "metric": case "decimal": case "prices": if ($attribute->getBackendType() && preg_match('/-' . self::METRIC_UNIT . '$/', $key)) { $data = $attribute->getDefaultMetricUnit(); } else { $min = $attribute->getNumberMin() != null ? $attribute->getNumberMin() : self::DEFAULT_NUMBER_MIN; $max = $attribute->getNumberMax() != null ? $attribute->getNumberMax() : self::DEFAULT_NUMBER_MAX; $decimals = $attribute->isDecimalsAllowed() ? self::DEFAULT_NB_DECIMALS : 0; $data = $this->faker->randomFloat($decimals, $min, $max); } break; case "boolean": $data = $this->faker->boolean() ? "1" : "0"; break; case "option": case "options": $options = []; foreach ($attribute->getOptions() as $option) { $options[] = $option; } $option = $this->faker->randomElement($options); if (is_object($option)) { $data = $option->getCode(); } break; default: $data = ''; break; } return (string) $data; }