You are here

public function AuthcacheP13nTestDefaultRequestHandler::testDefaultRequestHandlerWithContextProvider in Authenticated User Page Caching (Authcache) 7.2

Test handler with context provider.

File

modules/authcache_p13n/tests/authcache_p13n.request-handler.test, line 205
Define unit tests for request handler.

Class

AuthcacheP13nTestDefaultRequestHandler
Test cases for default request handler.

Code

public function testDefaultRequestHandlerWithContextProvider() {
  $filters = array();
  $context_providers = array(
    'my context' => new AuthcacheP13nTestContextProviderStub($this->stubObserver),
    'other context' => new AuthcacheP13nTestContextProviderStub($this->stubObserver),
  );
  $params = array(
    'some' => 'args',
  );
  $validate = $this->stubObserver
    ->method($this->requestValidator, 'validate', $params + array(
    'valid' => TRUE,
  ))
    ->expect(AuthcacheP13nTestStubVerifyer::once())
    ->expect(AuthcacheP13nTestStubVerifyer::args(array(
    $params,
  )));

  // Setup expectations.
  $cp_1 = $this->stubObserver
    ->method($context_providers['my context'], 'get', 'some value')
    ->expect(AuthcacheP13nTestStubVerifyer::once())
    ->expect(AuthcacheP13nTestStubVerifyer::args(array(
    $params + array(
      'valid' => TRUE,
    ),
  )));
  $cp_2 = $this->stubObserver
    ->method($context_providers['other context'], 'get', array(
    'other stuff',
  ))
    ->expect(AuthcacheP13nTestStubVerifyer::once())
    ->expect(AuthcacheP13nTestStubVerifyer::args(array(
    $params + array(
      'valid' => TRUE,
    ),
  )));
  $build = $this->stubObserver
    ->method($this->contentBuilder, 'build')
    ->expect(AuthcacheP13nTestStubVerifyer::once())
    ->expect(AuthcacheP13nTestStubVerifyer::args(array(
    $params + array(
      'valid' => TRUE,
    ),
    array(
      'my context' => 'some value',
      'other context' => array(
        'other stuff',
      ),
    ),
  )));

  // Run handler.
  $handler = new AuthcacheP13nDefaultRequestHandler($this->coreService, $this->requestValidator, $this->contentBuilder, $this->contentEncoder, $filters, $context_providers);
  ob_start();
  $handler
    ->handle($params);
  ob_end_clean();

  // Verify stubs.
  $this
    ->assert($validate
    ->verify($message), $message);
  $this
    ->assert($cp_1
    ->verify($message), $message);
  $this
    ->assert($cp_2
    ->verify($message), $message);
  $this
    ->assert($build
    ->verify($message), $message);
}