| 
<?php
 //dependencies
 require_once($APP['path']['core'] . 'util/Bs_CsvUtil.class.php');
 
 
 class Bs_CsvUtil_PhpUnit extends Bs_TestCase {
 
 
 var $_Bs_CsvUtil;
 
 
 function Bs_CsvUtil_PhpUnit($name) {
 $this->Bs_TestCase($name);
 $this->_Bs_CsvUtil =& new Bs_CsvUtil;
 }
 
 
 function __Bs_CsvUtil_csvStringToArray() {
 $string = <<< EOD
 a;b;c
 1;2;3
 EOD;
 $expected = array(array('a', 'b', 'c'), array('1', '2', '3'));
 $actual   = $this->_Bs_CsvUtil->csvStringToArray($string, $separator=';', $trim='both', $removeHeader=FALSE);
 $this->assertEquals($expected, $actual, "test 1 with abc 123");
 }
 
 
 function __Bs_CsvUtil_csvStringToArray2() {
 $string = <<< EOD
 THIS,IS,TITLE
 a,b,c
 1,2,3
 EOD;
 $expected = array(array('a', 'b', 'c'), array('1', '2', '3'));
 $actual   = $this->_Bs_CsvUtil->csvStringToArray($string, $separator=',', $trim='none', $removeHeader=TRUE);
 $this->assertEquals($expected, $actual, "test 2 with abc 123 and a space as separator, header removed.");
 }
 
 
 function __Bs_CsvUtil_csvStringToArray3() {
 $string = <<< EOD
 a; b; c
 ;  ;
 1; 2; 3
 EOD;
 $expected = array(array('a', 'b', 'c'), array('1', '2', '3'));
 $actual   = $this->_Bs_CsvUtil->csvStringToArray($string, $separator='; ', $trim='both', $removeHeader=FALSE, $removeEmptyLines=TRUE);
 $this->assertEquals($expected, $actual, "test 3 with abc 123 and empty lines removed. separator is '; ' (with a space aswell).");
 }
 
 
 function __Bs_CsvUtil_csvStringToArray4() {
 $string = <<< EOD
 a;"b bb";c
 1;2;"3 33"
 EOD;
 $expected = array(array('a', 'b bb', 'c'), array('1', '2', '3 33'));
 $actual   = $this->_Bs_CsvUtil->csvStringToArray($string, $separator=';', $trim='both', $removeHeader=FALSE);
 $this->assertEquals($expected, $actual, "test 4 with quotes.");
 }
 
 
 /*
 * this one works aswell, but note that \n and \r\n may cause headache.
 */
 function __Bs_CsvUtil_csvStringToArray5() {
 $string = <<< EOD
 this;is;a;"multi
 line";csv;string
 this;one;is;"another
 multiline";csv;string :)
 EOD;
 $expected = array(array('this', 'is', 'a', "multi\nline", 'csv', 'string'), array('this', 'one', 'is', "another \nmultiline", 'csv', 'string :)'));
 $actual   = $this->_Bs_CsvUtil->csvStringToArray($string, $separator=';', $trim='both', $removeHeader=FALSE, $removeEmptyLines=FALSE, $checkMultiline=TRUE);
 $this->assertEquals($expected, $actual, "test 5 with multilines.");
 }
 
 
 function __Bs_CsvUtil_arrayToCsvString1() {
 $array = array(
 array('madonna', 'pop', 'usa'),
 array('alanis morisette', 'rock', 'canada'),
 array('falco', 'pop', 'austria'),
 );
 $expected = 'madonna;pop;usa
 alanis morisette;rock;canada
 falco;pop;austria';
 $actual   = $this->_Bs_CsvUtil->arrayToCsvString($array, $separator=';', $trim='none', $removeEmptyLines=TRUE);
 $this->assertEquals($expected, $actual, "test arrayToCsvString() 1");
 }
 
 
 function __Bs_CsvUtil_arrayToCsvString2() {
 $array = array('madonna', 'alanis morisette', 'falco');
 $expected = 'madonna;alanis morisette;falco';
 $actual   = $this->_Bs_CsvUtil->arrayToCsvString($array, $separator=';', $trim='none', $removeEmptyLines=TRUE);
 $this->assertEquals($expected, $actual, "test arrayToCsvString() 2");
 }
 
 
 function __Bs_CsvUtil_arrayToCsvString3() {
 $array = array(
 array('madonna', 'pop', 'usa'),
 array('alanis morisette', 'rock', 'canada'),
 array('falco aka "wolfgang hoelzl"', 'pop', 'austria'),
 );
 $expected = 'madonna;pop;usa
 alanis morisette;rock;canada
 "falco aka ""wolfgang hoelzl""";pop;austria';
 $actual   = $this->_Bs_CsvUtil->arrayToCsvString($array, $separator=';', $trim='none', $removeEmptyLines=TRUE);
 $this->assertEquals($expected, $actual, "test arrayToCsvString() 3");
 }
 
 
 function __Bs_CsvUtil_arrayToCsvString4() {
 $array = array(
 array('madonna', 'pop', 'usa'),
 array('alanis morisette', 'rock', 'canada'),
 array('falco; wolfgang hoelzl', 'pop', 'austria'),
 );
 $expected = 'madonna;pop;usa
 alanis morisette;rock;canada
 "falco; wolfgang hoelzl";pop;austria';
 $actual   = $this->_Bs_CsvUtil->arrayToCsvString($array, $separator=';', $trim='none', $removeEmptyLines=TRUE);
 $this->assertEquals($expected, $actual, "test arrayToCsvString() 4");
 }
 
 
 function __Bs_CsvUtil_arrayToCsvString5() {
 $array = array(
 array('madonna', 'pop', 'usa'),
 array('alanis morisette', 'rock', 'canada'),
 array('falco
 wolfgang hoelzl', 'pop', 'austria'),
 );
 $expected = 'madonna;pop;usa
 alanis morisette;rock;canada
 "falco
 wolfgang hoelzl";pop;austria';
 $actual   = $this->_Bs_CsvUtil->arrayToCsvString($array, $separator=';', $trim='none', $removeEmptyLines=TRUE);
 $this->assertEquals($expected, $actual, "test arrayToCsvString() 5");
 }
 
 
 }
 
 
 ?>
 |