Ejemplo n.º 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);
 }
Ejemplo n.º 2
0
 /**
  * Renders a dashboard widget at a specific location.
  *
  * @param \Twig_Environment $environment
  * @param string            $location
  *
  * @return string
  */
 public function renderDashboardWidget(\Twig_Environment $environment, $location)
 {
     /** @var WidgetInterface[] $widgets */
     $widgets = $this->widgetFactory->get($location);
     $content = '';
     foreach ($widgets as $widget) {
         $content .= $environment->render($widget->getTemplate(), $widget->getData());
     }
     return $content;
 }