-
Andrew Hoffmann authored
Introduce a `trait` that helps set environment variables when testing
Andrew Hoffmann authoredIntroduce a `trait` that helps set environment variables when testing
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
PreauthUserDetailsProviderTest.php 3.83 KiB
<?php
namespace edu\wisc\doit\uwphps\preauth;
use edu\wisc\doit\uwphps\EnvironmentHelper;
use edu\wisc\doit\uwphps\UserDetailsProvider;
/**
* Tests for {@link PreauthUserDetailsProvider}
*/
class PreauthUserDetailsProviderTest extends \PHPUnit_Framework_TestCase
{
use EnvironmentHelper;
/** @var PreauthUserDetailsProvider */
private $provider;
/** @var PreauthUserDetailsProvider */
private $providerWithHttp;
/** @var array environment variables to be set */
private $environment;
protected function setUp()
{
$this->provider = new PreauthUserDetailsProvider(false);
$this->providerWithHttp = new PreauthUserDetailsProvider(true);
// Default environment variables
$this->environment = [
PreauthUserDetailsProvider::FULL_NAME => 'BUCKINGHAM BADGER',
PreauthUserDetailsProvider::EPPN => 'bbadger@wisc.edu',
PreauthUserDetailsProvider::FIRST_NAME => 'BUCKINGHAM',
PreauthUserDetailsProvider::EMAIL => 'bucky.badger@wisc.edu',
PreauthUserDetailsProvider::SHIB_SESSION_ID => '1234567890',
PreauthUserDetailsProvider::LAST_NAME => 'BADGER',
PreauthUserDetailsProvider::SOURCE => 'a_source',
PreauthUserDetailsProvider::PVI => 'UW123A456',
PreauthUserDetailsProvider::ISIS_EMPLID => '123456789'
];
}
/** @test */
public function loadsNullUserWhenNoSession()
{
// Ensure the Shib Session ID environment variables are deleted
$this->removeEnvironmentVariable(UserDetailsProvider::SHIB_SESSION_ID);
$this->removeEnvironmentVariable(UserDetailsProvider::SHIB_SESSION_ID_HTTP);
static::assertNull($this->provider->loadUser());
static::assertNull($this->providerWithHttp->loadUser());
}
/** @test */
public function loadsUser()
{
$this->setEnvironment($this->environment);
$user = $this->provider->loadUser();
$this->assertEquals($this->environment[PreauthUserDetailsProvider::EPPN], $user->getEppn());
$this->assertEquals($this->environment[PreauthUserDetailsProvider::PVI], $user->getPvi());
$this->assertEquals($this->environment[PreauthUserDetailsProvider::FULL_NAME], $user->getFullName());
$this->assertEquals($this->environment[PreauthUserDetailsProvider::EMAIL], $user->getEmailAddress());
$this->assertEquals($this->environment[PreauthUserDetailsProvider::SOURCE], $user->getSource());
$this->assertEquals($this->environment[PreauthUserDetailsProvider::ISIS_EMPLID], $user->getIsisEmplid());
$this->assertEquals($this->environment[PreauthUserDetailsProvider::FIRST_NAME], $user->getFirstName());
$this->assertEquals($this->environment[PreauthUserDetailsProvider::LAST_NAME], $user->getLastName());
}
/** @test */
public function loadsUserWithHttpHeaders()
{
$this->setEnvironment($this->toHttpHeaders($this->environment));
$user = $this->providerWithHttp->loadUser();
$this->assertEquals($this->environment[PreauthUserDetailsProvider::EPPN], $user->getEppn());
$this->assertEquals($this->environment[PreauthUserDetailsProvider::PVI], $user->getPvi());
$this->assertEquals($this->environment[PreauthUserDetailsProvider::FULL_NAME], $user->getFullName());
$this->assertEquals($this->environment[PreauthUserDetailsProvider::EMAIL], $user->getEmailAddress());
$this->assertEquals($this->environment[PreauthUserDetailsProvider::SOURCE], $user->getSource());
$this->assertEquals($this->environment[PreauthUserDetailsProvider::ISIS_EMPLID], $user->getIsisEmplid());
$this->assertEquals($this->environment[PreauthUserDetailsProvider::FIRST_NAME], $user->getFirstName());
$this->assertEquals($this->environment[PreauthUserDetailsProvider::LAST_NAME], $user->getLastName());
}
}