Add /api/airlines and /api/airline/{id} #120

This commit is contained in:
Nabeel Shahzad
2018-01-06 15:13:33 -06:00
parent 46a411e27b
commit 2de8d9ed64
7 changed files with 95 additions and 24 deletions

View File

@@ -20,9 +20,8 @@ class ApiTest extends TestCase
public function testApiAuthentication()
{
$user = factory(User::class)->create();
$pirep = factory(App\Models\Pirep::class)->create();
$uri = '/api/pireps/' . $pirep->id;
$uri = $this->u('/user');
// Missing auth header
$this->get($uri)->assertStatus(401);
@@ -35,20 +34,17 @@ class ApiTest extends TestCase
->assertStatus(401);
// Test upper/lower case of Authorization header, etc
$response = $this->withHeaders($this->apiHeaders())->get($uri);
$response->assertStatus(200)->assertJson(['id' => $pirep->id], true);
$response = $this->get($uri, $this->headers($user));
$response->assertStatus(200)->assertJson(['id' => $user->id], true);
$this->withHeaders(['x-api-key' => $user->api_key])->get($uri)
->assertStatus(200)
->assertJson(['id' => $pirep->id], true);
->assertJson(['id' => $user->id], true);
$this->withHeaders(['x-API-key' => $user->api_key])->get($uri)
->assertStatus(200)
->assertJson(['id' => $pirep->id], true);
->assertJson(['id' => $user->id], true);
$this->withHeaders(['X-API-KEY' => $user->api_key])->get($uri)
->assertStatus(200)
->assertJson(['id' => $pirep->id], true);
->assertJson(['id' => $user->id], true);
}
/**
@@ -64,6 +60,27 @@ class ApiTest extends TestCase
$this->get($uri)->assertStatus(401);
}
/**
*
*/
public function testGetAirlines()
{
$size = \random_int(5, 10);
$this->user = factory(App\Models\User::class)->create([
'airline_id' => 0
]);
$airlines = factory(App\Models\Airline::class, $size)->create();
$res = $this->get($this->u('/airlines'));
$body = $res->json();
$this->assertCount($size, $body['data']);
$airline = $airlines->random();
$this->get('/api/airlines/'.$airline->id)->assertJson(['name' => $airline->name]);
}
/**
* Make sure the airport data is returned
*/

View File

@@ -59,7 +59,7 @@ class FlightTest extends TestCase
$flights = factory(App\Models\Flight::class, 100)->create();
$flight = $flights->random();
$query = 'flight_id=' . $flight->id;
$query = 'dep_icao=' . $flight->dep_icao;
$req = $this->get('/api/flights/search?' . $query);
$body = $req->json();

View File

@@ -15,6 +15,8 @@ abstract class TestCase extends Illuminate\Foundation\Testing\TestCase
*
* @var string
*/
public static $prefix = '/api';
protected $app;
protected $baseUrl = 'http://localhost';
protected $connectionsToTransact = ['testing'];
@@ -37,6 +39,15 @@ abstract class TestCase extends Illuminate\Foundation\Testing\TestCase
];
}
/**
* Return the URL with the URI prefix
* @param $uri
* @return string
*/
public function u($uri) {
return self::$prefix . $uri;
}
public function __construct($name = null, array $data = [], $dataName = '') {
parent::__construct($name, $data, $dataName);
}

View File

@@ -1,12 +1,12 @@
#
airlines:
- id: 1
icao: VMS
iata: VM
name: phpvms airlines
active: 1
created_at: now
updated_at: now
#airlines:
# - id: 1
# icao: VMS
# iata: VM
# name: phpvms airlines
# active: 1
# created_at: now
# updated_at: now
users:
- id: 1