From 6af736a9e15964af84a53dc0db9435f350d2b2da Mon Sep 17 00:00:00 2001 From: Harsh Chokshi Date: Fri, 6 Jul 2018 11:59:28 +1200 Subject: [PATCH] Change DBCurrency scaffolded form field to CurrencyField (fixes #8246) Add test ensuring DBCurrency scaffolds CurrencyField --- src/ORM/FieldType/DBCurrency.php | 13 +++++++++++++ tests/php/ORM/DBCurrencyTest.php | 10 ++++++++++ 2 files changed, 23 insertions(+) diff --git a/src/ORM/FieldType/DBCurrency.php b/src/ORM/FieldType/DBCurrency.php index bde0a26a7..f012b6ddc 100644 --- a/src/ORM/FieldType/DBCurrency.php +++ b/src/ORM/FieldType/DBCurrency.php @@ -2,6 +2,8 @@ namespace SilverStripe\ORM\FieldType; +use SilverStripe\Forms\CurrencyField; + /** * Represents a decimal field containing a currency amount. * The currency class only supports single currencies. For multi-currency support, use {@link Money} @@ -67,4 +69,15 @@ class DBCurrency extends DBDecimal return $this; } + + /** + * @param string $title + * @param array $params + * + * @return CurrencyField + */ + public function scaffoldFormField($title = null, $params = null) + { + return CurrencyField::create($this->getName(), $title); + } } diff --git a/tests/php/ORM/DBCurrencyTest.php b/tests/php/ORM/DBCurrencyTest.php index f2a976fbc..135fe7fe3 100644 --- a/tests/php/ORM/DBCurrencyTest.php +++ b/tests/php/ORM/DBCurrencyTest.php @@ -2,6 +2,7 @@ namespace SilverStripe\ORM\Tests; +use SilverStripe\Forms\CurrencyField; use SilverStripe\ORM\FieldType\DBCurrency; use SilverStripe\Dev\SapphireTest; @@ -41,4 +42,13 @@ class DBCurrencyTest extends SapphireTest $this->assertEquals($niceValues[1], $c->Whole()); } } + + public function testScaffoldedField() + { + // Test DBCurrency scaffolds a CurrencyField + $currencyDbField = DBCurrency::create('Currency'); + $scaffoldedField = $currencyDbField->scaffoldFormField(); + + $this->assertInstanceOf(CurrencyField::class, $scaffoldedField); + } }