/var/www/hkosl.com/imusiccircle/webadmin/libraies/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Cell/AdvancedValueBinderTest.php


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
<?php

class AdvancedValueBinderTest extends PHPUnit_Framework_TestCase
{
    public function 
setUp()
    {
        if (!
defined('PHPEXCEL_ROOT')) {
            
define('PHPEXCEL_ROOT'APPLICATION_PATH '/');
        }
        require_once(
PHPEXCEL_ROOT 'PHPExcel/Autoloader.php');
    }

    public function 
provider()
    {
        if (!
class_exists('PHPExcel_Style_NumberFormat')) {
          
$this->setUp();
        }
        
$currencyUSD PHPExcel_Style_NumberFormat::FORMAT_CURRENCY_USD_SIMPLE;
        
$currencyEURO str_replace('$''€'PHPExcel_Style_NumberFormat::FORMAT_CURRENCY_USD_SIMPLE);

        return array(
          array(
'10%'0.1PHPExcel_Style_NumberFormat::FORMAT_PERCENTAGE_00',''.''$'),
          array(
'$10.11'10.11$currencyUSD',''.''$'),
          array(
'$1,010.12'1010.12$currencyUSD',''.''$'),
          array(
'$20,20'20.2$currencyUSD'.'',''$'),
          array(
'$2.020,20'2020.2$currencyUSD'.'',''$'),
          array(
'€2.020,20'2020.2$currencyEURO'.'',''€'),
          array(
'€ 2.020,20'2020.2$currencyEURO'.'',''€'),
          array(
'€2,020.22'2020.22$currencyEURO',''.''€'),
        );
    }

    
/**
     * @dataProvider provider
     */
    
public function testCurrency($value$valueBinded$format$thousandsSeparator$decimalSeparator$currencyCode)
    {
        
$sheet $this->getMock(
            
'PHPExcel_Worksheet'
            array(
'getStyle''getNumberFormat''setFormatCode','getCellCacheController')
        );
        
$cache $this->getMockBuilder('PHPExcel_CachedObjectStorage_Memory')
            ->
disableOriginalConstructor()
            ->
getMock();
        
$cache->expects($this->any())
                 ->
method('getParent')
                 ->
will($this->returnValue($sheet));

        
$sheet->expects($this->once())
                 ->
method('getStyle')
                 ->
will($this->returnSelf());
        
$sheet->expects($this->once())
                 ->
method('getNumberFormat')
                 ->
will($this->returnSelf());
        
$sheet->expects($this->once())
                 ->
method('setFormatCode')
                 ->
with($format)
                 ->
will($this->returnSelf());
        
$sheet->expects($this->any())
                 ->
method('getCellCacheController')
                 ->
will($this->returnValue($cache));

        
PHPExcel_Shared_String::setCurrencyCode($currencyCode);
        
PHPExcel_Shared_String::setDecimalSeparator($decimalSeparator);
        
PHPExcel_Shared_String::setThousandsSeparator($thousandsSeparator);

        
$cell = new PHPExcel_Cell(NULLPHPExcel_Cell_DataType::TYPE_STRING$sheet);

        
$binder = new PHPExcel_Cell_AdvancedValueBinder();
        
$binder->bindValue($cell$value);
        
$this->assertEquals($valueBinded$cell->getValue());
    }
}