Add test for new middleware

This commit is contained in:
Dane Everitt 2018-01-18 21:41:45 -06:00
parent c3b9738364
commit c59d3a96aa
No known key found for this signature in database
GPG key ID: EEA66103B3D71F53

View file

@ -0,0 +1,53 @@
<?php
namespace Tests\Unit\Http\Middleware\Api\Admin;
use Tests\Unit\Http\Middleware\MiddlewareTestCase;
use Pterodactyl\Http\Middleware\Api\Admin\AuthenticateUser;
class AuthenticateUserTest extends MiddlewareTestCase
{
/**
* Test that no user defined results in an access denied exception.
*
* @expectedException \Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException
*/
public function testNoUserDefined()
{
$this->setRequestUserModel(null);
$this->getMiddleware()->handle($this->request, $this->getClosureAssertions());
}
/**
* Test that a non-admin user results an an exception.
*
* @expectedException \Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException
*/
public function testNonAdminUser()
{
$this->generateRequestUserModel(['root_admin' => false]);
$this->getMiddleware()->handle($this->request, $this->getClosureAssertions());
}
/**
* Test that an admin user continues though the middleware.
*/
public function testAdminUser()
{
$this->generateRequestUserModel(['root_admin' => true]);
$this->getMiddleware()->handle($this->request, $this->getClosureAssertions());
}
/**
* Return an instance of the middleware for testing.
*
* @return \Pterodactyl\Http\Middleware\Api\Admin\AuthenticateUser
*/
private function getMiddleware(): AuthenticateUser
{
return new AuthenticateUser;
}
}