1
1
mirror of https://github.com/pterodactyl/panel.git synced 2024-10-28 04:42:29 +01:00
Pterodactyl-Panel/tests/Unit/Repositories/Eloquent/AllocationRepositoryTest.php

73 lines
2.0 KiB
PHP
Raw Normal View History

2017-08-27 02:58:24 +02:00
<?php
/**
* Pterodactyl - Panel
* Copyright (c) 2015 - 2017 Dane Everitt <dane@daneeveritt.com>.
*
2017-09-26 04:43:01 +02:00
* This software is licensed under the terms of the MIT license.
* https://opensource.org/licenses/MIT
2017-08-27 02:58:24 +02:00
*/
namespace Tests\Unit\Repositories\Eloquent;
use Mockery as m;
2017-08-27 21:55:25 +02:00
use Tests\TestCase;
2017-08-27 02:58:24 +02:00
use Pterodactyl\Models\Allocation;
2017-08-27 21:55:25 +02:00
use Illuminate\Database\Eloquent\Builder;
2017-08-27 02:58:24 +02:00
use Pterodactyl\Repositories\Eloquent\AllocationRepository;
class AllocationRepositoryTest extends TestCase
{
/**
* @var \Illuminate\Database\Eloquent\Builder
*/
protected $builder;
/**
* @var \Pterodactyl\Repositories\Eloquent\AllocationRepository
*/
protected $repository;
/**
* Setup tests.
*/
public function setUp()
{
parent::setUp();
$this->builder = m::mock(Builder::class);
$this->repository = m::mock(AllocationRepository::class)->makePartial();
$this->repository->shouldReceive('getBuilder')->withNoArgs()->andReturn($this->builder);
}
/**
* Test that we are returning the correct model.
*/
public function testCorrectModelIsAssigned()
{
$this->assertEquals(Allocation::class, $this->repository->model());
}
/**
* Test that allocations can be assigned to a server correctly.
*/
public function testAllocationsAreAssignedToAServer()
{
$this->builder->shouldReceive('whereIn')->with('id', [1, 2])->once()->andReturnSelf()
->shouldReceive('update')->with(['server_id' => 10])->once()->andReturn(true);
$this->assertTrue($this->repository->assignAllocationsToServer(10, [1, 2]));
}
/**
* Test that allocations with a node relationship are returned.
*/
public function testAllocationsForANodeAreReturned()
{
$this->builder->shouldReceive('where')->with('node_id', 1)->once()->andReturnSelf()
->shouldReceive('get')->once()->andReturn(factory(Allocation::class)->make());
$this->assertInstanceOf(Allocation::class, $this->repository->getAllocationsForNode(1));
}
}