Version 1
[yaffs-website] / web / core / modules / views / tests / src / Unit / ViewExecutableFactoryTest.php
diff --git a/web/core/modules/views/tests/src/Unit/ViewExecutableFactoryTest.php b/web/core/modules/views/tests/src/Unit/ViewExecutableFactoryTest.php
new file mode 100644 (file)
index 0000000..e7f52e7
--- /dev/null
@@ -0,0 +1,101 @@
+<?php
+
+namespace Drupal\Tests\views\Unit;
+
+use Drupal\Tests\UnitTestCase;
+use Drupal\views\ViewExecutableFactory;
+use Symfony\Component\HttpFoundation\Request;
+use Symfony\Component\HttpFoundation\RequestStack;
+
+/**
+ * @coversDefaultClass \Drupal\views\ViewExecutableFactory
+ * @group views
+ */
+class ViewExecutableFactoryTest extends UnitTestCase {
+
+  /**
+   * The mock user object.
+   *
+   * @var \Drupal\Core\Session\AccountInterface|\PHPUnit_Framework_MockObject_MockObject
+   */
+  protected $user;
+
+  /**
+   * The mock request stack object.
+   *
+   * @var \Symfony\Component\HttpFoundation\RequestStack
+   */
+  protected $requestStack;
+
+  /**
+   * The mock view entity.
+   *
+   * @var \Drupal\Core\Config\Entity\ConfigEntityInterface|\PHPUnit_Framework_MockObject_MockObject
+   */
+  protected $view;
+
+  /**
+   * The ViewExecutableFactory class under test.
+   *
+   * @var \Drupal\views\ViewExecutableFactory
+   */
+  protected $viewExecutableFactory;
+
+  /**
+   * The mocked views data.
+   *
+   * @var \Drupal\views\ViewsData|\PHPUnit_Framework_MockObject_MockObject
+   */
+  protected $viewsData;
+
+  /**
+   * The mocked route provider.
+   *
+   * @var \Drupal\Core\Routing\RouteProviderInterface|\PHPUnit_Framework_MockObject_MockObject
+   */
+  protected $routeProvider;
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function setUp() {
+    parent::setUp();
+
+    $this->user = $this->getMock('Drupal\Core\Session\AccountInterface');
+    $this->requestStack = new RequestStack();
+    $this->view = $this->getMock('Drupal\views\ViewEntityInterface');
+    $this->viewsData = $this->getMockBuilder('Drupal\views\ViewsData')
+      ->disableOriginalConstructor()
+      ->getMock();
+    $this->routeProvider = $this->getMock('Drupal\Core\Routing\RouteProviderInterface');
+    $this->viewExecutableFactory = new ViewExecutableFactory($this->user, $this->requestStack, $this->viewsData, $this->routeProvider);
+  }
+
+  /**
+   * Tests the get method.
+   *
+   * @covers ::get
+   */
+  public function testGet() {
+    $request_1 = new Request();
+    $request_2 = new Request();
+
+    $this->requestStack->push($request_1);
+
+    $executable = $this->viewExecutableFactory->get($this->view);
+
+    $this->assertInstanceOf('Drupal\views\ViewExecutable', $executable);
+    $this->assertSame($executable->getRequest(), $request_1);
+    $this->assertSame($executable->getUser(), $this->user);
+
+    // Call get() again to ensure a new executable is created with the other
+    // request object.
+    $this->requestStack->push($request_2);
+    $executable = $this->viewExecutableFactory->get($this->view);
+
+    $this->assertInstanceOf('Drupal\views\ViewExecutable', $executable);
+    $this->assertSame($executable->getRequest(), $request_2);
+    $this->assertSame($executable->getUser(), $this->user);
+  }
+
+}