aboutsummaryrefslogtreecommitdiffstats
path: root/library/intl/tests/NumberFormat/NumberFormatRepositoryTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'library/intl/tests/NumberFormat/NumberFormatRepositoryTest.php')
-rw-r--r--library/intl/tests/NumberFormat/NumberFormatRepositoryTest.php69
1 files changed, 69 insertions, 0 deletions
diff --git a/library/intl/tests/NumberFormat/NumberFormatRepositoryTest.php b/library/intl/tests/NumberFormat/NumberFormatRepositoryTest.php
new file mode 100644
index 000000000..41e45805d
--- /dev/null
+++ b/library/intl/tests/NumberFormat/NumberFormatRepositoryTest.php
@@ -0,0 +1,69 @@
+<?php
+
+namespace CommerceGuys\Intl\Tests\NumberFormat;
+
+use CommerceGuys\Intl\NumberFormat\NumberFormatRepository;
+use org\bovigo\vfs\vfsStream;
+
+/**
+ * @coversDefaultClass \CommerceGuys\Intl\NumberFormat\NumberFormatRepository
+ */
+class NumberFormatRepositoryTest extends \PHPUnit_Framework_TestCase
+{
+ /**
+ * English number format definition.
+ *
+ * @var array
+ */
+ protected $englishDefinition = array(
+ 'numbering_system' => 'latn',
+ 'decimal_pattern' => '#,##0.###',
+ 'percent_pattern' => '#,##0%',
+ 'currency_pattern' => '¤#,##0.00',
+ 'accounting_currency_pattern' => '¤#,##0.00;(¤#,##0.00)',
+ );
+
+ /**
+ * @covers ::__construct
+ */
+ public function testConstructor()
+ {
+ // Mock the existence of JSON definitions on the filesystem.
+ $root = vfsStream::setup('resources');
+ vfsStream::newFile('number_format/en.json')->at($root)->setContent(json_encode($this->englishDefinition));
+
+ // Instantiate the number format repository and confirm that the definition
+ // path was properly set.
+ $numberFormatRepository = new NumberFormatRepository('vfs://resources/number_format/');
+ $definitionPath = $this->getObjectAttribute($numberFormatRepository, 'definitionPath');
+ $this->assertEquals('vfs://resources/number_format/', $definitionPath);
+
+ return $numberFormatRepository;
+ }
+
+ /**
+ * @covers ::get
+ * @covers ::createNumberFormatFromDefinition
+ * @uses \CommerceGuys\Intl\NumberFormat\NumberFormat
+ * @uses \CommerceGuys\Intl\LocaleResolverTrait
+ * @depends testConstructor
+ */
+ public function testGet($numberFormatRepository)
+ {
+ $numberFormat = $numberFormatRepository->get('en');
+ $this->assertInstanceOf('CommerceGuys\\Intl\\NumberFormat\\NumberFormat', $numberFormat);
+ $this->assertEquals('en', $numberFormat->getLocale());
+ $this->assertEquals('latn', $numberFormat->getNumberingSystem());
+ $this->assertEquals('.', $numberFormat->getDecimalSeparator());
+ $this->assertEquals(',', $numberFormat->getGroupingSeparator());
+ $this->assertEquals('+', $numberFormat->getPlusSign());
+ $this->assertEquals('-', $numberFormat->getMinusSign());
+ $this->assertEquals('%', $numberFormat->getPercentSign());
+ $this->assertEquals('#,##0.###', $numberFormat->getDecimalPattern());
+ $this->assertEquals('#,##0%', $numberFormat->getPercentPattern());
+ $this->assertEquals('¤#,##0.00', $numberFormat->getCurrencyPattern());
+ $this->assertEquals('¤#,##0.00;(¤#,##0.00)', $numberFormat->getAccountingCurrencyPattern());
+
+ return $numberFormat;
+ }
+}