/** * Test that data loaded in via Form::loadDataFrom(DataObject) will populate the field correctly, * and can format the database value appropriately for the frontend * * @param string $locale * @param array $tests */ public function checkDataFormatting($locale, $tests) { i18n::set_locale($locale); $field = new NumericField('Number'); $form = new Form(new Controller(), 'Form', new FieldList($field), new FieldList()); $dataObject = new NumericFieldTest_Object(); foreach ($tests as $input => $output) { // Given a dataobject as a context, the field should assume the field value is not localised $dataObject->Number = (string) $input; $form->loadDataFrom($dataObject, Form::MERGE_CLEAR_MISSING); // Test value $this->assertEquals($input, $field->dataValue(), "Expected {$input} loaded via dataobject to be left intact in locale {$locale}"); // Test expected formatted value (Substitute nbsp for spaces) $this->assertEquals($this->clean($output), $field->Value(), "Expected {$input} to be formatted as {$output} in locale {$locale}"); } }
/** * Get the value of the stock level * * (non-PHPdoc) * @see FormField::Value() * @return Int */ function Value() { return $this->value; return $this->stockLevelField->Value(); }