Fix existing tests

This commit is contained in:
Dane Everitt 2017-10-08 15:44:28 -05:00
parent 6e02e9491a
commit 159ad3079f
No known key found for this signature in database
GPG Key ID: EEA66103B3D71F53
5 changed files with 40 additions and 51 deletions

View File

@ -13,6 +13,7 @@ use Exception;
use Mockery as m; use Mockery as m;
use Tests\TestCase; use Tests\TestCase;
use Pterodactyl\Models\Pack; use Pterodactyl\Models\Pack;
use Tests\Traits\MocksUuids;
use Illuminate\Http\UploadedFile; use Illuminate\Http\UploadedFile;
use Illuminate\Contracts\Filesystem\Factory; use Illuminate\Contracts\Filesystem\Factory;
use Illuminate\Database\ConnectionInterface; use Illuminate\Database\ConnectionInterface;
@ -23,18 +24,20 @@ use Pterodactyl\Exceptions\Service\Pack\InvalidFileMimeTypeException;
class PackCreationServiceTest extends TestCase class PackCreationServiceTest extends TestCase
{ {
use MocksUuids;
/** /**
* @var \Illuminate\Database\ConnectionInterface * @var \Illuminate\Database\ConnectionInterface|\Mockery\Mock
*/ */
protected $connection; protected $connection;
/** /**
* @var \Illuminate\Http\UploadedFile * @var \Illuminate\Http\UploadedFile|\Mockery\Mock
*/ */
protected $file; protected $file;
/** /**
* @var \Pterodactyl\Contracts\Repository\PackRepositoryInterface * @var \Pterodactyl\Contracts\Repository\PackRepositoryInterface|\Mockery\Mock
*/ */
protected $repository; protected $repository;
@ -44,15 +47,10 @@ class PackCreationServiceTest extends TestCase
protected $service; protected $service;
/** /**
* @var \Illuminate\Contracts\Filesystem\Factory * @var \Illuminate\Contracts\Filesystem\Factory|\Mockery\Mock
*/ */
protected $storage; protected $storage;
/**
* @var \Ramsey\Uuid\Uuid
*/
protected $uuid;
/** /**
* Setup tests. * Setup tests.
*/ */
@ -64,7 +62,6 @@ class PackCreationServiceTest extends TestCase
$this->file = m::mock(UploadedFile::class); $this->file = m::mock(UploadedFile::class);
$this->repository = m::mock(PackRepositoryInterface::class); $this->repository = m::mock(PackRepositoryInterface::class);
$this->storage = m::mock(Factory::class); $this->storage = m::mock(Factory::class);
$this->uuid = m::mock('overload:\Ramsey\Uuid\Uuid');
$this->service = new PackCreationService($this->connection, $this->storage, $this->repository); $this->service = new PackCreationService($this->connection, $this->storage, $this->repository);
} }
@ -77,17 +74,15 @@ class PackCreationServiceTest extends TestCase
$model = factory(Pack::class)->make(); $model = factory(Pack::class)->make();
$this->connection->shouldReceive('beginTransaction')->withNoArgs()->once()->andReturnNull(); $this->connection->shouldReceive('beginTransaction')->withNoArgs()->once()->andReturnNull();
$this->uuid->shouldReceive('uuid4')->withNoArgs()->once()->andReturn($model->uuid);
$this->repository->shouldReceive('create')->with([ $this->repository->shouldReceive('create')->with([
'uuid' => $model->uuid, 'uuid' => $this->getKnownUuid(),
'selectable' => false, 'selectable' => false,
'visible' => false, 'visible' => false,
'locked' => false, 'locked' => false,
'test-data' => 'value', 'test-data' => 'value',
])->once()->andReturn($model); ])->once()->andReturn($model);
$this->storage->shouldReceive('disk')->withNoArgs()->once()->andReturnSelf() $this->storage->shouldReceive('disk->makeDirectory')->with('packs/' . $model->uuid)->once()->andReturnNull();
->shouldReceive('makeDirectory')->with('packs/' . $model->uuid)->once()->andReturnNull();
$this->connection->shouldReceive('commit')->withNoArgs()->once()->andReturnNull(); $this->connection->shouldReceive('commit')->withNoArgs()->once()->andReturnNull();
$response = $this->service->handle(['test-data' => 'value']); $response = $this->service->handle(['test-data' => 'value']);
@ -107,17 +102,15 @@ class PackCreationServiceTest extends TestCase
$this->file->shouldReceive('isValid')->withNoArgs()->once()->andReturn(true); $this->file->shouldReceive('isValid')->withNoArgs()->once()->andReturn(true);
$this->file->shouldReceive('getMimeType')->withNoArgs()->once()->andReturn($mime); $this->file->shouldReceive('getMimeType')->withNoArgs()->once()->andReturn($mime);
$this->connection->shouldReceive('beginTransaction')->withNoArgs()->once()->andReturnNull(); $this->connection->shouldReceive('beginTransaction')->withNoArgs()->once()->andReturnNull();
$this->uuid->shouldReceive('uuid4')->withNoArgs()->once()->andReturn($model->uuid);
$this->repository->shouldReceive('create')->with([ $this->repository->shouldReceive('create')->with([
'uuid' => $model->uuid, 'uuid' => $this->getKnownUuid(),
'selectable' => false, 'selectable' => false,
'visible' => false, 'visible' => false,
'locked' => false, 'locked' => false,
'test-data' => 'value', 'test-data' => 'value',
])->once()->andReturn($model); ])->once()->andReturn($model);
$this->storage->shouldReceive('disk')->withNoArgs()->once()->andReturnSelf() $this->storage->shouldReceive('disk->makeDirectory')->with('packs/' . $model->uuid)->once()->andReturnNull();
->shouldReceive('makeDirectory')->with('packs/' . $model->uuid)->once()->andReturnNull();
$this->file->shouldReceive('storeAs')->with('packs/' . $model->uuid, 'archive.tar.gz')->once()->andReturnNull(); $this->file->shouldReceive('storeAs')->with('packs/' . $model->uuid, 'archive.tar.gz')->once()->andReturnNull();
$this->connection->shouldReceive('commit')->withNoArgs()->once()->andReturnNull(); $this->connection->shouldReceive('commit')->withNoArgs()->once()->andReturnNull();

View File

@ -20,12 +20,12 @@ use Pterodactyl\Contracts\Repository\ServerRepositoryInterface;
class PackUpdateServiceTest extends TestCase class PackUpdateServiceTest extends TestCase
{ {
/** /**
* @var \Pterodactyl\Contracts\Repository\PackRepositoryInterface * @var \Pterodactyl\Contracts\Repository\PackRepositoryInterface|\Mockery\Mock
*/ */
protected $repository; protected $repository;
/** /**
* @var \Pterodactyl\Contracts\Repository\ServerRepositoryInterface * @var \Pterodactyl\Contracts\Repository\ServerRepositoryInterface|\Mockery\Mock
*/ */
protected $serverRepository; protected $serverRepository;
@ -53,8 +53,7 @@ class PackUpdateServiceTest extends TestCase
public function testPackIsUpdated() public function testPackIsUpdated()
{ {
$model = factory(Pack::class)->make(); $model = factory(Pack::class)->make();
$this->repository->shouldReceive('withoutFresh')->withNoArgs()->once()->andReturnSelf() $this->repository->shouldReceive('withoutFresh->update')->with($model->id, [
->shouldReceive('update')->with($model->id, [
'locked' => false, 'locked' => false,
'visible' => false, 'visible' => false,
'selectable' => false, 'selectable' => false,
@ -67,13 +66,13 @@ class PackUpdateServiceTest extends TestCase
/** /**
* Test that an exception is thrown if the pack option ID is changed while servers are using the pack. * Test that an exception is thrown if the pack option ID is changed while servers are using the pack.
*/ */
public function testExceptionIsThrownIfModifyingOptionIdWhenServersAreAttached() public function testExceptionIsThrownIfModifyingEggIdWhenServersAreAttached()
{ {
$model = factory(Pack::class)->make(); $model = factory(Pack::class)->make();
$this->serverRepository->shouldReceive('findCountWhere')->with([['pack_id', '=', $model->id]])->once()->andReturn(1); $this->serverRepository->shouldReceive('findCountWhere')->with([['pack_id', '=', $model->id]])->once()->andReturn(1);
try { try {
$this->service->handle($model, ['option_id' => 0]); $this->service->handle($model, ['egg_id' => 0]);
} catch (HasActiveServersException $exception) { } catch (HasActiveServersException $exception) {
$this->assertEquals(trans('exceptions.packs.update_has_servers'), $exception->getMessage()); $this->assertEquals(trans('exceptions.packs.update_has_servers'), $exception->getMessage());
} }
@ -86,10 +85,9 @@ class PackUpdateServiceTest extends TestCase
{ {
$model = factory(Pack::class)->make(); $model = factory(Pack::class)->make();
$this->repository->shouldReceive('withColumns')->with(['id', 'option_id'])->once()->andReturnSelf() $this->repository->shouldReceive('withColumns')->with(['id', 'egg_id'])->once()->andReturnSelf()
->shouldReceive('find')->with($model->id)->once()->andReturn($model); ->shouldReceive('find')->with($model->id)->once()->andReturn($model);
$this->repository->shouldReceive('withoutFresh')->withNoArgs()->once()->andReturnSelf() $this->repository->shouldReceive('withoutFresh->update')->with($model->id, [
->shouldReceive('update')->with($model->id, [
'locked' => false, 'locked' => false,
'visible' => false, 'visible' => false,
'selectable' => false, 'selectable' => false,

View File

@ -27,17 +27,17 @@ class TemplateUploadServiceTest extends TestCase
const JSON_FILE_CONTENTS = '{"test_content": "value"}'; const JSON_FILE_CONTENTS = '{"test_content": "value"}';
/** /**
* @var \ZipArchive * @var \ZipArchive|\Mockery\Mock
*/ */
protected $archive; protected $archive;
/** /**
* @var \Pterodactyl\Services\Packs\PackCreationService * @var \Pterodactyl\Services\Packs\PackCreationService|\Mockery\Mock
*/ */
protected $creationService; protected $creationService;
/** /**
* @var \Illuminate\Http\UploadedFile * @var \Illuminate\Http\UploadedFile|\Mockery\Mock
*/ */
protected $file; protected $file;
@ -70,10 +70,9 @@ class TemplateUploadServiceTest extends TestCase
$this->file->shouldReceive('isValid')->withNoArgs()->once()->andReturn(true); $this->file->shouldReceive('isValid')->withNoArgs()->once()->andReturn(true);
$this->file->shouldReceive('getMimeType')->withNoArgs()->twice()->andReturn($mime); $this->file->shouldReceive('getMimeType')->withNoArgs()->twice()->andReturn($mime);
$this->file->shouldReceive('getSize')->withNoArgs()->once()->andReturn(128); $this->file->shouldReceive('getSize')->withNoArgs()->once()->andReturn(128);
$this->file->shouldReceive('openFile')->withNoArgs()->once()->andReturnSelf() $this->file->shouldReceive('openFile->fread')->with(128)->once()->andReturn(self::JSON_FILE_CONTENTS);
->shouldReceive('fread')->with(128)->once()->andReturn(self::JSON_FILE_CONTENTS);
$this->creationService->shouldReceive('handle')->with(['test_content' => 'value', 'option_id' => 1]) $this->creationService->shouldReceive('handle')->with(['test_content' => 'value', 'egg_id' => 1])
->once()->andReturn(factory(Pack::class)->make()); ->once()->andReturn(factory(Pack::class)->make());
$this->assertInstanceOf(Pack::class, $this->service->handle(1, $this->file)); $this->assertInstanceOf(Pack::class, $this->service->handle(1, $this->file));
@ -94,7 +93,7 @@ class TemplateUploadServiceTest extends TestCase
$this->archive->shouldReceive('locateName')->with('import.json')->once()->andReturn(true); $this->archive->shouldReceive('locateName')->with('import.json')->once()->andReturn(true);
$this->archive->shouldReceive('locateName')->with('archive.tar.gz')->once()->andReturn(true); $this->archive->shouldReceive('locateName')->with('archive.tar.gz')->once()->andReturn(true);
$this->archive->shouldReceive('getFromName')->with('import.json')->once()->andReturn(self::JSON_FILE_CONTENTS); $this->archive->shouldReceive('getFromName')->with('import.json')->once()->andReturn(self::JSON_FILE_CONTENTS);
$this->creationService->shouldReceive('handle')->with(['test_content' => 'value', 'option_id' => 1]) $this->creationService->shouldReceive('handle')->with(['test_content' => 'value', 'egg_id' => 1])
->once()->andReturn($model); ->once()->andReturn($model);
$this->archive->shouldReceive('extractTo')->with(storage_path('app/packs/' . $model->uuid), 'archive.tar.gz') $this->archive->shouldReceive('extractTo')->with(storage_path('app/packs/' . $model->uuid), 'archive.tar.gz')
->once()->andReturn(true); ->once()->andReturn(true);

View File

@ -12,6 +12,7 @@ namespace Tests\Unit\Services\Servers;
use Mockery as m; use Mockery as m;
use Tests\TestCase; use Tests\TestCase;
use phpmock\phpunit\PHPMock; use phpmock\phpunit\PHPMock;
use Tests\Traits\MocksUuids;
use GuzzleHttp\Exception\RequestException; use GuzzleHttp\Exception\RequestException;
use Illuminate\Database\ConnectionInterface; use Illuminate\Database\ConnectionInterface;
use Pterodactyl\Exceptions\PterodactylException; use Pterodactyl\Exceptions\PterodactylException;
@ -32,7 +33,7 @@ use Pterodactyl\Contracts\Repository\Daemon\ServerRepositoryInterface as DaemonS
*/ */
class ServerCreationServiceTest extends TestCase class ServerCreationServiceTest extends TestCase
{ {
use PHPMock; use MocksUuids, PHPMock;
/** /**
* @var \Pterodactyl\Contracts\Repository\AllocationRepositoryInterface|\Mockery\Mock * @var \Pterodactyl\Contracts\Repository\AllocationRepositoryInterface|\Mockery\Mock
@ -72,8 +73,8 @@ class ServerCreationServiceTest extends TestCase
'environment' => [ 'environment' => [
'TEST_VAR_1' => 'var1-value', 'TEST_VAR_1' => 'var1-value',
], ],
'service_id' => 1, 'nest_id' => 1,
'option_id' => 1, 'egg_id' => 1,
'startup' => 'startup-param', 'startup' => 'startup-param',
'docker_image' => 'some/image', 'docker_image' => 'some/image',
]; ];
@ -118,11 +119,6 @@ class ServerCreationServiceTest extends TestCase
*/ */
protected $validatorService; protected $validatorService;
/**
* @var \Ramsey\Uuid\Uuid|\Mockery\Mock
*/
protected $uuid;
/** /**
* Setup tests. * Setup tests.
*/ */
@ -141,7 +137,6 @@ class ServerCreationServiceTest extends TestCase
$this->userRepository = m::mock(UserRepositoryInterface::class); $this->userRepository = m::mock(UserRepositoryInterface::class);
$this->usernameService = m::mock(UsernameGenerationService::class); $this->usernameService = m::mock(UsernameGenerationService::class);
$this->validatorService = m::mock(VariableValidatorService::class); $this->validatorService = m::mock(VariableValidatorService::class);
$this->uuid = m::mock('overload:Ramsey\Uuid\Uuid');
$this->getFunctionMock('\\Pterodactyl\\Services\\Servers', 'str_random') $this->getFunctionMock('\\Pterodactyl\\Services\\Servers', 'str_random')
->expects($this->any())->willReturn('random_string'); ->expects($this->any())->willReturn('random_string');
@ -167,14 +162,19 @@ class ServerCreationServiceTest extends TestCase
{ {
$this->validatorService->shouldReceive('isAdmin')->withNoArgs()->once()->andReturnSelf() $this->validatorService->shouldReceive('isAdmin')->withNoArgs()->once()->andReturnSelf()
->shouldReceive('setFields')->with($this->data['environment'])->once()->andReturnSelf() ->shouldReceive('setFields')->with($this->data['environment'])->once()->andReturnSelf()
->shouldReceive('validate')->with($this->data['option_id'])->once()->andReturnSelf(); ->shouldReceive('validate')->with($this->data['egg_id'])->once()->andReturnSelf();
$this->connection->shouldReceive('beginTransaction')->withNoArgs()->once()->andReturnNull(); $this->connection->shouldReceive('beginTransaction')->withNoArgs()->once()->andReturnNull();
$this->uuid->shouldReceive('uuid4->toString')->withNoArgs()->once()->andReturn('uuid-0000');
$this->usernameService->shouldReceive('generate')->with($this->data['name'], 'random_string') $this->usernameService->shouldReceive('generate')->with($this->data['name'], 'random_string')
->once()->andReturn('user_name'); ->once()->andReturn('user_name');
$this->repository->shouldReceive('create')->withAnyArgs()->once()->andReturn((object) [ $this->repository->shouldReceive('create')->with(m::subset([
'uuid' => $this->getKnownUuid(),
'node_id' => $this->data['node_id'],
'owner_id' => 1,
'nest_id' => 1,
'egg_id' => 1,
]))->once()->andReturn((object) [
'node_id' => 1, 'node_id' => 1,
'id' => 1, 'id' => 1,
]); ]);
@ -212,7 +212,6 @@ class ServerCreationServiceTest extends TestCase
$this->validatorService->shouldReceive('isAdmin->setFields->validate->getResults')->once()->andReturn([]); $this->validatorService->shouldReceive('isAdmin->setFields->validate->getResults')->once()->andReturn([]);
$this->connection->shouldReceive('beginTransaction')->withNoArgs()->once()->andReturnNull(); $this->connection->shouldReceive('beginTransaction')->withNoArgs()->once()->andReturnNull();
$this->usernameService->shouldReceive('generate')->once()->andReturn('user_name'); $this->usernameService->shouldReceive('generate')->once()->andReturn('user_name');
$this->uuid->shouldReceive('uuid4->toString')->withNoArgs()->once()->andReturn('uuid-0000');
$this->repository->shouldReceive('create')->once()->andReturn((object) [ $this->repository->shouldReceive('create')->once()->andReturn((object) [
'node_id' => 1, 'node_id' => 1,
'id' => 1, 'id' => 1,

View File

@ -115,7 +115,7 @@ class VariableValidatorServiceTest extends TestCase
*/ */
public function testEmptyResultSetShouldBeReturnedIfNoVariablesAreFound() public function testEmptyResultSetShouldBeReturnedIfNoVariablesAreFound()
{ {
$this->optionVariableRepository->shouldReceive('findWhere')->with([['option_id', '=', 1]])->andReturn([]); $this->optionVariableRepository->shouldReceive('findWhere')->with([['egg_id', '=', 1]])->andReturn([]);
$response = $this->service->validate(1); $response = $this->service->validate(1);
@ -129,7 +129,7 @@ class VariableValidatorServiceTest extends TestCase
*/ */
public function testValidatorShouldNotProcessVariablesSetAsNotUserEditableWhenAdminFlagIsNotPassed() public function testValidatorShouldNotProcessVariablesSetAsNotUserEditableWhenAdminFlagIsNotPassed()
{ {
$this->optionVariableRepository->shouldReceive('findWhere')->with([['option_id', '=', 1]])->andReturn($this->variables); $this->optionVariableRepository->shouldReceive('findWhere')->with([['egg_id', '=', 1]])->andReturn($this->variables);
$this->validator->shouldReceive('make')->with([ $this->validator->shouldReceive('make')->with([
'variable_value' => 'Test_SomeValue_0', 'variable_value' => 'Test_SomeValue_0',
@ -161,7 +161,7 @@ class VariableValidatorServiceTest extends TestCase
*/ */
public function testValidatorShouldProcessAllVariablesWhenAdminFlagIsSet() public function testValidatorShouldProcessAllVariablesWhenAdminFlagIsSet()
{ {
$this->optionVariableRepository->shouldReceive('findWhere')->with([['option_id', '=', 1]])->andReturn($this->variables); $this->optionVariableRepository->shouldReceive('findWhere')->with([['egg_id', '=', 1]])->andReturn($this->variables);
foreach ($this->variables as $key => $variable) { foreach ($this->variables as $key => $variable) {
$this->validator->shouldReceive('make')->with([ $this->validator->shouldReceive('make')->with([
@ -198,7 +198,7 @@ class VariableValidatorServiceTest extends TestCase
*/ */
public function testValidatorShouldThrowExceptionWhenAValidationErrorIsEncountered() public function testValidatorShouldThrowExceptionWhenAValidationErrorIsEncountered()
{ {
$this->optionVariableRepository->shouldReceive('findWhere')->with([['option_id', '=', 1]])->andReturn($this->variables); $this->optionVariableRepository->shouldReceive('findWhere')->with([['egg_id', '=', 1]])->andReturn($this->variables);
$this->validator->shouldReceive('make')->with([ $this->validator->shouldReceive('make')->with([
'variable_value' => null, 'variable_value' => null,