You are here

protected function MockSessionTrait::createSessionMock in Examples for Developers 8

Same name and namespace in other branches
  1. 3.x modules/stream_wrapper_example/tests/src/Traits/MockSessionTrait.php \Drupal\Tests\stream_wrapper_example\Traits\MockSessionTrait::createSessionMock()

Create a mock session object.

Return value

\Symfony\Component\HttpFoundation\RequestStack|\Prophecy\Prophecy\ProphecyInterface A test double, or mock, of a RequestStack object that can be used to return a mock Session object.

2 calls to MockSessionTrait::createSessionMock()
SessionHelperTest::setUp in stream_wrapper_example/tests/src/Unit/SessionHelperTest.php
StreamWrapperTest::setUp in stream_wrapper_example/tests/src/Kernel/StreamWrapperTest.php

File

stream_wrapper_example/tests/src/Traits/MockSessionTrait.php, line 37

Class

MockSessionTrait
A trait to expose a mock session type to PHPUnit tests.

Namespace

Drupal\Tests\stream_wrapper_example\Traits

Code

protected function createSessionMock() {
  $this->sessionStore = [];
  $session = $this
    ->prophesize(SessionInterface::class);
  $test = $this;
  $session
    ->get('stream_wrapper_example', [])
    ->will(function ($args) use ($test) {
    return $test
      ->getSessionStore();
  });
  $session
    ->set('stream_wrapper_example', Argument::any())
    ->will(function ($args) use ($test) {
    $test
      ->setSessionStore($args[1]);
  });
  $session
    ->remove('stream_wrapper_example')
    ->will(function ($args) use ($test) {
    $test
      ->resetSessionStore();
  });
  $request = $this
    ->prophesize(Request::class);
  $request
    ->getSession()
    ->willReturn($session
    ->reveal());
  $request_stack = $this
    ->prophesize(RequestStack::class);
  $request_stack
    ->getCurrentRequest()
    ->willReturn($request
    ->reveal());
  return $this->requestStack = $request_stack
    ->reveal();
}