You are here

public function ExternalAuthTest::testLoginRegister in External Authentication 8

Same name and namespace in other branches
  1. 2.0.x tests/src/Unit/ExternalAuthTest.php \Drupal\Tests\externalauth\Unit\ExternalAuthTest::testLoginRegister()

Test the loginRegister() method.

@covers ::loginRegister @covers ::__construct

File

tests/src/Unit/ExternalAuthTest.php, line 279

Class

ExternalAuthTest
ExternalAuth unit tests.

Namespace

Drupal\Tests\externalauth\Unit

Code

public function testLoginRegister() {
  $account = $this
    ->createMock('Drupal\\user\\UserInterface');

  // Set up a mock for ExternalAuth class,
  // mocking login(), register() & userLoginFinalize() methods.
  $externalauth = $this
    ->getMockBuilder('Drupal\\externalauth\\ExternalAuth')
    ->setMethods([
    'login',
    'register',
    'userLoginFinalize',
  ])
    ->setConstructorArgs([
    $this->entityTypeManager,
    $this->authmap,
    $this->logger,
    $this->eventDispatcher,
  ])
    ->getMock();

  // Mock ExternalAuth methods.
  $externalauth
    ->expects($this
    ->once())
    ->method('login')
    ->will($this
    ->returnValue(FALSE));
  $externalauth
    ->expects($this
    ->once())
    ->method('register')
    ->will($this
    ->returnValue($account));
  $externalauth
    ->expects($this
    ->once())
    ->method('userLoginFinalize')
    ->will($this
    ->returnValue($account));
  $result = $externalauth
    ->loginRegister("test_authname", "test_provider");
  $this
    ->assertInstanceOf(UserInterface::class, $result);
}