3 namespace Drupal\Tests\views\Unit;
5 use Drupal\Tests\UnitTestCase;
6 use Drupal\views\ViewExecutableFactory;
7 use Symfony\Component\HttpFoundation\Request;
8 use Symfony\Component\HttpFoundation\RequestStack;
11 * @coversDefaultClass \Drupal\views\ViewExecutableFactory
14 class ViewExecutableFactoryTest extends UnitTestCase {
17 * The mock user object.
19 * @var \Drupal\Core\Session\AccountInterface|\PHPUnit_Framework_MockObject_MockObject
24 * The mock request stack object.
26 * @var \Symfony\Component\HttpFoundation\RequestStack
28 protected $requestStack;
31 * The mock view entity.
33 * @var \Drupal\Core\Config\Entity\ConfigEntityInterface|\PHPUnit_Framework_MockObject_MockObject
38 * The ViewExecutableFactory class under test.
40 * @var \Drupal\views\ViewExecutableFactory
42 protected $viewExecutableFactory;
45 * The mocked views data.
47 * @var \Drupal\views\ViewsData|\PHPUnit_Framework_MockObject_MockObject
52 * The mocked route provider.
54 * @var \Drupal\Core\Routing\RouteProviderInterface|\PHPUnit_Framework_MockObject_MockObject
56 protected $routeProvider;
61 protected function setUp() {
64 $this->user = $this->getMock('Drupal\Core\Session\AccountInterface');
65 $this->requestStack = new RequestStack();
66 $this->view = $this->getMock('Drupal\views\ViewEntityInterface');
67 $this->viewsData = $this->getMockBuilder('Drupal\views\ViewsData')
68 ->disableOriginalConstructor()
70 $this->routeProvider = $this->getMock('Drupal\Core\Routing\RouteProviderInterface');
71 $this->viewExecutableFactory = new ViewExecutableFactory($this->user, $this->requestStack, $this->viewsData, $this->routeProvider);
75 * Tests the get method.
79 public function testGet() {
80 $request_1 = new Request();
81 $request_2 = new Request();
83 $this->requestStack->push($request_1);
85 $executable = $this->viewExecutableFactory->get($this->view);
87 $this->assertInstanceOf('Drupal\views\ViewExecutable', $executable);
88 $this->assertSame($executable->getRequest(), $request_1);
89 $this->assertSame($executable->getUser(), $this->user);
91 // Call get() again to ensure a new executable is created with the other
93 $this->requestStack->push($request_2);
94 $executable = $this->viewExecutableFactory->get($this->view);
96 $this->assertInstanceOf('Drupal\views\ViewExecutable', $executable);
97 $this->assertSame($executable->getRequest(), $request_2);
98 $this->assertSame($executable->getUser(), $this->user);