예제 #1
0
 public function testGet()
 {
     $factory = new WidgetFactory();
     $widget1 = \Mockery::mock('CSBill\\DashboardBundle\\Widgets\\WidgetInterface');
     $widget2 = \Mockery::mock('CSBill\\DashboardBundle\\Widgets\\WidgetInterface');
     $widget3 = \Mockery::mock('CSBill\\DashboardBundle\\Widgets\\WidgetInterface');
     $widget4 = \Mockery::mock('CSBill\\DashboardBundle\\Widgets\\WidgetInterface');
     $widget5 = \Mockery::mock('CSBill\\DashboardBundle\\Widgets\\WidgetInterface');
     $factory->add($widget1, 'top', 100);
     $factory->add($widget2, 'left_column', 200);
     $factory->add($widget3, 'right_column', 300);
     $factory->add($widget4, null, 400);
     $factory->add($widget5, 'left_column');
     $queue1 = $factory->get('top');
     $this->assertInstanceOf('SplPriorityQueue', $queue1);
     $this->assertCount(2, $queue1);
     $this->assertSame($widget4, $queue1->current());
     $queue1->next();
     $this->assertSame($widget1, $queue1->current());
     $queue2 = $factory->get('left_column');
     $this->assertInstanceOf('SplPriorityQueue', $queue2);
     $this->assertCount(2, $queue2);
     $this->assertSame($widget2, $queue2->current());
     $queue2->next();
     $this->assertSame($widget5, $queue2->current());
     $queue3 = $factory->get('right_column');
     $this->assertInstanceOf('SplPriorityQueue', $queue3);
     $this->assertCount(1, $queue3);
     $this->assertSame($widget3, $queue3->current());
     $queue4 = $factory->get('bottom');
     $this->assertInstanceOf('SplPriorityQueue', $queue4);
     $this->assertCount(0, $queue4);
 }