<?php
use \Punic\Misc;
class ListTest extends PHPUnit_Framework_TestCase
{
public function testJoin()
{
$this->assertSame(
'',
Misc::join(false, 'en')
);
$this->assertSame(
'',
Misc::join('', 'en')
);
$this->assertSame(
'',
Misc::join(array(), 'en')
);
$this->assertSame(
'One',
Misc::join(array('One'), 'en')
);
$this->assertSame(
'One and Two',
Misc::join(array('One', 'Two'), 'en')
);
$this->assertSame(
'One, Two, and Three',
Misc::join(array('One', 'Two', 'Three'), 'en')
);
$this->assertSame(
'One, Two, Three, and Four',
Misc::join(array('One', 'Two', 'Three', 'Four'), 'en')
);
$this->assertSame(
'One, Two, Three, Four, and 5',
Misc::join(array('One', 'Two', 'Three', 'Four', 5), 'en')
);
$this->assertSame(
'Uno',
Misc::join(array('Uno'), 'it')
);
$this->assertSame(
'Uno e due',
Misc::join(array('Uno', 'due'), 'it')
);
$this->assertSame(
'Uno, due e tre',
Misc::join(array('Uno', 'due', 'tre'), 'it')
);
$this->assertSame(
'Uno, due, tre e quattro',
Misc::join(array('Uno', 'due', 'tre', 'quattro'), 'it')
);
$this->assertSame(
'Uno, due, tre, quattro e 5',
Misc::join(array('Uno', 'due', 'tre', 'quattro', 5), 'it')
);
}
public function testJoinUnits()
{
$this->assertSame(
'',
Misc::joinUnits(false, '', 'en')
);
$this->assertSame(
'',
Misc::joinUnits('', '', 'en')
);
$this->assertSame(
'',
Misc::joinUnits(array(), '', 'en')
);
$this->assertSame(
'One',
Misc::joinUnits(array('One'), '', 'en')
);
$this->assertSame(
'One, Two',
Misc::joinUnits(array('One', 'Two'), '', 'en')
);
$this->assertSame(
'One, Two, Three',
Misc::joinUnits(array('One', 'Two', 'Three'), '', 'en')
);
$this->assertSame(
'One, Two, Three',
Misc::joinUnits(array('One', 'Two', 'Three'), 'short', 'en')
);
$this->assertSame(
'One Two Three',
Misc::joinUnits(array('One', 'Two', 'Three'), 'narrow', 'en')
);
$this->assertSame(
'One, Two, Three, Four',
Misc::joinUnits(array('One', 'Two', 'Three', 'Four'), '', 'en')
);
$this->assertSame(
'One, Two, Three, Four, 5',
Misc::joinUnits(array('One', 'Two', 'Three', 'Four', 5), '', 'en')
);
$this->assertSame(
'Uno',
Misc::joinUnits(array('Uno'), '', 'it')
);
$this->assertSame(
'Uno e due',
Misc::joinUnits(array('Uno', 'due'), '', 'it')
);
$this->assertSame(
'Uno, due e tre',
Misc::joinUnits(array('Uno', 'due', 'tre'), '', 'it')
);
$this->assertSame(
'Uno, due e tre',
Misc::joinUnits(array('Uno', 'due', 'tre'), 'short', 'it')
);
$this->assertSame(
'Uno, due e tre',
Misc::joinUnits(array('Uno', 'due', 'tre'), 'narrow', 'it')
);
$this->assertSame(
'Uno, due, tre e quattro',
Misc::joinUnits(array('Uno', 'due', 'tre', 'quattro'), '', 'it')
);
$this->assertSame(
'Uno, due, tre, quattro e 5',
Misc::joinUnits(array('Uno', 'due', 'tre', 'quattro', 5), '', 'it')
);
}
public function testValueNotInListException()
{
$this->setExpectedException('\\Punic\\Exception\\ValueNotInList');
Misc::joinUnits(array('One', 'Two'), 'invalid-width', 'en');
}
public function providerFixCase()
{
return array(
array('Test', 'test', 'titlecase-words'),
array('Test Test', 'test test', 'titlecase-words'),
array('TEST TEST', 'TEST TEST', 'titlecase-words'),
array('A', 'a', 'titlecase-words'),
array('Test', 'test', 'titlecase-firstword'),
array('Test test', 'test test', 'titlecase-firstword'),
array('TEST TEST', 'TEST TEST', 'titlecase-firstword'),
array('A', 'a', 'titlecase-firstword'),
array('a', 'a', 'lowercase-words'),
array('a', 'A', 'lowercase-words'),
array('test test', 'Test test', 'lowercase-words'),
);
}
/**
* @dataProvider providerFixCase
*/
public function testFixCase($result, $string, $case)
{
$this->assertSame($result, \Punic\Misc::fixCase($string, $case));
}
}
|