Added more tests and fixed changelog

This commit is contained in:
Henry Whitaker
2020-08-25 21:54:39 +01:00
parent 1fcdd5bb1d
commit 9b8c764b0d
15 changed files with 602 additions and 9 deletions

View File

@@ -0,0 +1,66 @@
<?php
namespace Tests\Unit\Controllers\SpeedtestController;
use App\Http\Controllers\SpeedtestController;
use App\Speedtest;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
class DeleteTest extends TestCase
{
use RefreshDatabase;
/**
* SpeedtestController
*
* @var SpeedtestController
*/
private $controller;
public function setUp() : void
{
parent::setUp();
$this->controller = new SpeedtestController();
}
public function testDeleteAll()
{
for($i = 0; $i < 5; $i++) {
Speedtest::create([
'download' => 5,
'upload' => 5,
'ping' => 5
]);
}
$this->assertEquals(5, Speedtest::count());
$resp = $this->controller->deleteAll()->original;
$this->assertArrayHasKey('method', $resp);
$this->assertArrayHasKey('success', $resp);
$this->assertEquals(0, Speedtest::count());
}
public function testDeleteSpecific()
{
$test = Speedtest::create([
'download' => 5,
'upload' => 5,
'ping' => 5
]);
$id = $test->id;
$this->assertNotNull(Speedtest::find($id));
$resp = $this->controller->delete($test)->original;
$this->assertArrayHasKey('method', $resp);
$this->assertArrayHasKey('success', $resp);
$this->assertNull(Speedtest::find($id));
}
}

View File

@@ -0,0 +1,43 @@
<?php
namespace Tests\Unit\Controllers\SpeedtestController;
use App\Http\Controllers\SpeedtestController;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
class FailTest extends TestCase
{
use RefreshDatabase;
/**
* SpeedtestController
*
* @var SpeedtestController
*/
private $controller;
public function setUp() : void
{
parent::setUp();
$this->controller = new SpeedtestController();
}
public function testFail()
{
$resp = $this->controller->fail(5)->original;
$this->assertArrayHasKey('method', $resp);
$this->assertArrayHasKey('data', $resp);
$this->assertArrayHasKey('days', $resp);
}
public function testFailInvalidInput()
{
$resp = $this->controller->fail('test')->original;
$this->assertArrayHasKey('method', $resp);
$this->assertArrayHasKey('error', $resp);
}
}

View File

@@ -0,0 +1,34 @@
<?php
namespace Tests\Unit\Controllers\SpeedtestController;
use App\Http\Controllers\SpeedtestController;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
class IndexTest extends TestCase
{
use RefreshDatabase;
/**
* SpeedtestController
*
* @var SpeedtestController
*/
private $controller;
public function setUp() : void
{
parent::setUp();
$this->controller = new SpeedtestController();
}
public function testIndex()
{
$resp = $this->controller->index()->original;
$this->assertArrayHasKey('method', $resp);
$this->assertArrayHasKey('data', $resp);
}
}

View File

@@ -0,0 +1,58 @@
<?php
namespace Tests\Unit\Controllers\SpeedtestController;
use App\Http\Controllers\SpeedtestController;
use App\Speedtest;
use DB;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
class LatestTest extends TestCase
{
use RefreshDatabase;
/**
* SpeedtestController
*
* @var SpeedtestController
*/
private $controller;
public function setUp() : void
{
parent::setUp();
$this->controller = new SpeedtestController();
}
public function testLatestNoEntries()
{
DB::table('speedtests')->delete();
$resp = $this->controller->latest();
$resp = $resp->original;
$this->assertEquals([
'method' => 'get latest speedtest',
'error' => 'no speedtests have been run'
], $resp);
}
public function testLatest()
{
$test = Speedtest::create([
'download' => 5,
'upload' => 5,
'ping' => 5
]);
$test = $test->attributesToArray();
$resp = $this->controller->latest();
$resp = $resp->original;
$this->assertArrayHasKey('data', $resp);
$this->assertArrayHasKey('average', $resp);
$this->assertArrayHasKey('max', $resp);
}
}

View File

@@ -0,0 +1,42 @@
<?php
namespace Tests\Unit\Controllers\SpeedtestController;
use App\Http\Controllers\SpeedtestController;
use App\Jobs\SpeedtestJob;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Queue;
use Tests\TestCase;
class RunTest extends TestCase
{
use RefreshDatabase;
/**
* SpeedtestController
*
* @var SpeedtestController
*/
private $controller;
public function setUp() : void
{
parent::setUp();
$this->controller = new SpeedtestController();
}
public function testRun()
{
Queue::fake();
$resp = $this->controller->run()->original;
$this->assertArrayHasKey('method', $resp);
$this->assertArrayHasKey('data', $resp);
Queue::assertPushed(SpeedtestJob::class, function($job) {
return true;
});
}
}

View File

@@ -0,0 +1,43 @@
<?php
namespace Tests\Unit\Controllers\SpeedtestController;
use App\Http\Controllers\SpeedtestController;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
class TimeTest extends TestCase
{
use RefreshDatabase;
/**
* SpeedtestController
*
* @var SpeedtestController
*/
private $controller;
public function setUp() : void
{
parent::setUp();
$this->controller = new SpeedtestController();
}
public function testTime()
{
$resp = $this->controller->time(5)->original;
$this->assertArrayHasKey('method', $resp);
$this->assertArrayHasKey('data', $resp);
$this->assertArrayHasKey('days', $resp);
}
public function testTimeInvalidInput()
{
$resp = $this->controller->time('test')->original;
$this->assertArrayHasKey('method', $resp);
$this->assertArrayHasKey('error', $resp);
}
}