You are here

public function AuthcacheP13nTestFragmentBuilder::testFragmentBuilderLoader in Authenticated User Page Caching (Authcache) 7.2

Test request with loader.

File

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

Class

AuthcacheP13nTestFragmentBuilder
Tests fragment builder.

Code

public function testFragmentBuilderLoader() {
  $context = array(
    'some' => 'context',
  );
  $builder = new AuthcacheP13nFragmentBuilder($this->fragmentRenderer, NULL, $this->fragmentLoader, NULL);

  // Setup expectations.
  $load = $this->stubObserver
    ->method($this->fragmentLoader, 'load', array(
    'some_key' => 'loaded subject',
  ))
    ->expect(AuthcacheP13nTestStubVerifyer::once())
    ->expect(AuthcacheP13nTestStubVerifyer::args(array(
    array(
      'some_key' => 'some_subject',
    ),
    $context,
  )));
  $render = $this->stubObserver
    ->method($this->fragmentRenderer, 'render', 'rendered')
    ->expect(AuthcacheP13nTestStubVerifyer::once())
    ->expect(AuthcacheP13nTestStubVerifyer::args(array(
    'some_key',
    'loaded subject',
    $context,
  )));

  // Run builder.
  $input = array(
    'a' => array(
      'some_key' => 'some_subject',
    ),
  );
  $output = $builder
    ->build($input, $context);
  $this
    ->assertEqual('rendered', $output);

  // Verify stub.
  $this
    ->assert($load
    ->verify($message), $message);
  $this
    ->assert($render
    ->verify($message), $message);

  // Setup expectations.
  $load = $this->stubObserver
    ->method($this->fragmentLoader, 'load', new AuthcacheP13nRequestNotFound())
    ->expect(AuthcacheP13nTestStubVerifyer::once());
  $render = $this->stubObserver
    ->method($this->fragmentRenderer, 'render')
    ->expect(AuthcacheP13nTestStubVerifyer::never());

  // Run builder.
  $input = array(
    'a' => array(
      'some_key' => 'missing',
    ),
  );
  try {
    $builder
      ->build($input, array());
    $this
      ->fail('AuthcacheP13nFragmentBuilder should throw an AuthcacheP13nRequestNotFound when loading fails');
  } catch (AuthcacheP13nRequestNotFound $e) {
    unset($e);
    $this
      ->pass('AuthcacheP13nFragmentBuilder should throw an AuthcacheP13nRequestNotFound when loading fails');
  }

  // Verify stub.
  $this
    ->assert($load
    ->verify($message), $message);
  $this
    ->assert($render
    ->verify($message), $message);
}