]> CyberLeo.Net >> Repos - Github/sugarcrm.git/blob - tests/modules/Import/ImportFileSplitterTest.php
Added unit tests.
[Github/sugarcrm.git] / tests / modules / Import / ImportFileSplitterTest.php
1 <?php
2 require_once 'modules/Import/ImportFile.php';
3 require_once 'modules/Import/ImportFileSplitter.php';
4
5 class ImportFileSplitterTest extends Sugar_PHPUnit_Framework_TestCase
6 {
7     protected $_goodFile;
8     protected $_badFile;
9     
10     public function setUp()
11     {
12         $GLOBALS['current_user'] = SugarTestUserUtilities::createAnonymousUser();
13         $this->_goodFile = SugarTestImportUtilities::createFile();
14                 $this->_badFile  = $GLOBALS['sugar_config']['import_dir'].'thisfileisntthere'.date("YmdHis");
15                 $this->_whiteSpaceFile  = SugarTestImportUtilities::createFileWithWhiteSpace();
16     }
17     
18     public function tearDown()
19     {
20         SugarTestImportUtilities::removeAllCreatedFiles();
21         SugarTestUserUtilities::removeAllCreatedAnonymousUsers();
22         unset($GLOBALS['current_user']);
23     }
24     
25     public function testLoadNonExistantFile()
26     {
27         $importFileSplitter = new ImportFileSplitter($this->_badFile);
28         $this->assertFalse($importFileSplitter->fileExists());
29     }
30     
31     public function testLoadGoodFile()
32     {
33         $importFileSplitter = new ImportFileSplitter($this->_goodFile);
34         $this->assertTrue($importFileSplitter->fileExists());
35     }
36     
37     public function testSplitSourceFile()
38     {
39         $importFileSplitter = new ImportFileSplitter($this->_goodFile);
40         $importFileSplitter->splitSourceFile(',','"');
41         
42         $this->assertEquals($importFileSplitter->getRecordCount(),2000);
43         $this->assertEquals($importFileSplitter->getFileCount(),2);
44     }
45     
46     public function testSplitSourceFileNoEnclosure()
47     {
48         $importFileSplitter = new ImportFileSplitter($this->_goodFile);
49         $importFileSplitter->splitSourceFile(',','');
50         
51         $this->assertEquals($importFileSplitter->getRecordCount(),2000);
52         $this->assertEquals($importFileSplitter->getFileCount(),2);
53     }
54     
55     public function testSplitSourceFileWithHeader()
56     {
57         $importFileSplitter = new ImportFileSplitter($this->_goodFile);
58         $importFileSplitter->splitSourceFile(',','"',true);
59         
60         $this->assertEquals($importFileSplitter->getRecordCount(),1999);
61         $this->assertEquals($importFileSplitter->getFileCount(),2);
62     }
63     
64     public function testSplitSourceFileWithThreshold()
65     {
66         $importFileSplitter = new ImportFileSplitter($this->_goodFile,500);
67         $importFileSplitter->splitSourceFile(',','"');
68         
69         $this->assertEquals($importFileSplitter->getRecordCount(),2000);
70         $this->assertEquals($importFileSplitter->getFileCount(),4);
71     }
72     
73     public function testGetSplitFileName()
74     {
75         $importFileSplitter = new ImportFileSplitter($this->_goodFile);
76         $importFileSplitter->splitSourceFile(',','"');
77         
78         $this->assertEquals($importFileSplitter->getSplitFileName(0),"{$this->_goodFile}-0");
79         $this->assertEquals($importFileSplitter->getSplitFileName(1),"{$this->_goodFile}-1");
80         $this->assertEquals($importFileSplitter->getSplitFileName(2),false);
81     }
82         
83         /**
84          * @group bug25119
85          */
86     public function testTrimSpaces()
87     {
88         $splitter = new ImportFileSplitter($this->_whiteSpaceFile);
89         $splitter->splitSourceFile(',',' ',false);
90         
91         $csvString = file_get_contents("{$this->_whiteSpaceFile}-0");
92         
93         $this->assertEquals(
94             trim(file_get_contents("{$this->_whiteSpaceFile}-0")),
95             trim(file_get_contents("{$this->_whiteSpaceFile}"))
96             );
97     }
98 }