2 require_once('tests/helper.php');
3 require_once('includes/splitter.inc');
4 class splitterTest extends PHPUnit_Framework_TestCase {
5 public function testConstruct() {
6 $start_date = '2013/05/01';
7 $end_date = '2013/05/31';
9 $details = array('1' => 'details 1', '2' => 'details', '3' => 'd3');
11 $splitter = new Splitter(array('detail' => $details
12 ,'start_date'=> $start_date
13 ,'end_date' => $end_date
14 ,'max_quantity' => $max_quantity));
15 $this->assertEquals($start_date, $splitter->start_date);
16 $this->assertEquals($end_date, $splitter->end_date);
17 $this->assertEquals($max_quantity, $splitter->max_quantity);
18 $this->assertEquals($splitter->days(), 30);
24 * @depends testConstruct
26 public function testSplit($splitter) {
27 $this->assertSplit($splitter, 5, 0, array());
28 $this->assertSplit($splitter, 15, 11, array());
29 $this->assertSplit($splitter, 30, 24, array());
30 $this->assertSplit($splitter, 10, 0
31 ,array("6 0 2013/05/01 2013/05/16"
32 ,"4 0 2013/05/16 2013/05/31"));
33 $this->assertSplit($splitter, 18, 10
34 ,array(" 12 10 2013/05/01 2013/05/21"
35 ,"6 0 2013/05/21 2013/05/31"));
38 public function assertSplit(Splitter $splitter, $quantity, $quantity_dispatched, array $expected_splits) {
39 $splits = $splitter->split(array('quantity' => $quantity, 'qty_sent' => $quantity_dispatched));
41 if(empty($expected_splits)) return $this->assertEmpty($splits);
42 foreach(array_combine($expected_splits, $splits) as $ex => $split) {
43 $this->assertEquals(explode(" ", $ex), array($split->quantity
44 ,$split->quantity_dispatched