Laravel 9 Update (#1413)

Update to Laravel 9 and PHP 8+

Co-authored-by: B.Fatih KOZ <fatih.koz@gmail.com>
This commit is contained in:
Nabeel S
2022-03-14 11:45:18 -04:00
committed by GitHub
parent 00bf18c225
commit 12848091a2
340 changed files with 6130 additions and 4502 deletions

View File

@@ -82,11 +82,11 @@ class AcarsTest extends TestCase
*/
public function testPrefileErrors()
{
$this->user = factory(User::class)->create();
$this->user = User::factory()->create();
$airport = factory(Airport::class)->create();
$airline = factory(Airline::class)->create();
$aircraft = factory(Aircraft::class)->create();
$airport = Airport::factory()->create();
$airline = Airline::factory()->create();
$aircraft = Aircraft::factory()->create();
/**
* INVALID AIRLINE_ID FIELD
@@ -113,19 +113,19 @@ class AcarsTest extends TestCase
$this->settingsRepo->store('pireps.restrict_aircraft_to_rank', false);
$this->settingsRepo->store('pireps.only_aircraft_at_dpt_airport', true);
$this->user = factory(User::class)->create();
$this->user = User::factory()->create();
/** @var Airport $airport */
$airport = factory(Airport::class)->create();
$airport = Airport::factory()->create();
/** @var Airport $airport */
$aircraft_airport = factory(Airport::class)->create();
$aircraft_airport = Airport::factory()->create();
/** @var Airline $airline */
$airline = factory(Airline::class)->create();
$airline = Airline::factory()->create();
/** @var Aircraft $aircraft */
$aircraft = factory(Aircraft::class)->create(['airport_id' => $aircraft_airport->id]);
$aircraft = Aircraft::factory()->create(['airport_id' => $aircraft_airport->id]);
/**
* INVALID AIRLINE_ID FIELD
@@ -153,10 +153,10 @@ class AcarsTest extends TestCase
public function testBlankAirport()
{
$this->user = factory(User::class)->create();
$this->user = User::factory()->create();
$airline = factory(Airline::class)->create();
$aircraft = factory(Aircraft::class)->create();
$airline = Airline::factory()->create();
$aircraft = Aircraft::factory()->create();
/**
* INVALID AIRLINE_ID FIELD
@@ -191,13 +191,13 @@ class AcarsTest extends TestCase
$this->settingsRepo->store('pilots.only_flights_from_current', true);
$this->settingsRepo->store('pireps.restrict_aircraft_to_rank', false);
$this->user = factory(User::class)->create([
$this->user = User::factory()->create([
'curr_airport_id' => 'KJFK',
]);
$airport = factory(Airport::class)->create();
$airline = factory(Airline::class)->create();
$aircraft = factory(Aircraft::class)->create();
$airport = Airport::factory()->create();
$airline = Airline::factory()->create();
$aircraft = Aircraft::factory()->create();
/**
* INVALID AIRLINE_ID FIELD
@@ -231,18 +231,18 @@ class AcarsTest extends TestCase
$this->settingsRepo->store('pireps.restrict_aircraft_to_rank', false);
/** @var User user */
$this->user = factory(User::class)->create([
$this->user = User::factory()->create([
'curr_airport_id' => 'KJFK',
]);
/** @var Airport $airport */
$airport = factory(Airport::class)->create();
$airport = Airport::factory()->create();
/** @var Airline $airline */
$airline = factory(Airline::class)->create();
$airline = Airline::factory()->create();
/** @var Aircraft $aircraft */
$aircraft = factory(Aircraft::class)->create([
$aircraft = Aircraft::factory()->create([
'airport_id' => 'KAUS',
]);
@@ -275,16 +275,23 @@ class AcarsTest extends TestCase
{
$subfleet = $this->createSubfleetWithAircraft(2);
$rank = $this->createRank(10, [$subfleet['subfleet']->id]);
$fare = factory(Fare::class)->create();
$this->user = factory(User::class)->create(
/** @var Fare $fare */
$fare = Fare::factory()->create();
$this->user = User::factory()->create(
[
'rank_id' => $rank->id,
]
);
$airport = factory(Airport::class)->create();
$airline = factory(Airline::class)->create();
/** @var Airport $airport */
$airport = Airport::factory()->create();
/** @var Airline $airline */
$airline = Airline::factory()->create();
/** @var Aircraft $aircraft */
$aircraft = $subfleet['aircraft']->random();
$uri = '/api/pireps/prefile';
@@ -314,6 +321,14 @@ class AcarsTest extends TestCase
$response->assertStatus(200);
$pirep = $response->json('data');
$this->assertEquals(400, $pirep['planned_distance']['nmi']);
$this->assertEquals(460.31, $pirep['planned_distance']['mi']);
$this->assertEquals(740.8, $pirep['planned_distance']['km']);
$this->assertEquals(740800, $pirep['planned_distance']['m']);
// Are date times in UTC?
$this->assertTrue(str_ends_with($pirep['submitted_at'], 'Z'));
// See that the fields and fares were set
$fares = PirepFare::where('pirep_id', $pirep['id'])->get();
$this->assertCount(1, $fares);
@@ -375,12 +390,12 @@ class AcarsTest extends TestCase
$subfleet = $this->createSubfleetWithAircraft(2);
$rank = $this->createRank(10, [$subfleet['subfleet']->id]);
$this->user = factory(User::class)->create([
$this->user = User::factory()->create([
'rank_id' => $rank->id,
]);
$airport = factory(Airport::class)->create();
$airline = factory(Airline::class)->create();
$airport = Airport::factory()->create();
$airline = Airline::factory()->create();
$aircraft = $subfleet['aircraft']->random();
$uri = '/api/pireps/prefile';
@@ -427,15 +442,15 @@ class AcarsTest extends TestCase
$rank = $this->createRank(10, [$subfleet['subfleet']->id]);
/** @var User user */
$this->user = factory(User::class)->create([
$this->user = User::factory()->create([
'rank_id' => $rank->id,
]);
/** @var Airport $airport */
$airport = factory(Airport::class)->create();
$airport = Airport::factory()->create();
/** @var Airline $airline */
$airline = factory(Airline::class)->create();
$airline = Airline::factory()->create();
/** @var Aircraft $aircraft */
$aircraft = $subfleet['aircraft']->random();
@@ -510,8 +525,7 @@ class AcarsTest extends TestCase
$response->assertStatus(400);
// Post an ACARS update
$acars = factory(Acars::class)->make(['pirep_id' => $pirep_id])->toArray();
$acars = Acars::factory()->make(['pirep_id' => $pirep_id])->toArray();
$acars = $this->transformData($acars);
$update = ['positions' => [$acars]];
@@ -519,7 +533,8 @@ class AcarsTest extends TestCase
$response->assertStatus(200)->assertJson(['count' => 1]);
// Read that if the ACARS record posted
$acars_data = $this->get($uri)->json()['data'][0];
$response = $this->get($uri);
$acars_data = $response->json('data')[0];
$this->assertEquals(round($acars['lat'], 2), round($acars_data['lat'], 2));
$this->assertEquals(round($acars['lon'], 2), round($acars_data['lon'], 2));
$this->assertEquals($acars['log'], $acars_data['log']);
@@ -603,15 +618,15 @@ class AcarsTest extends TestCase
$subfleet = $this->createSubfleetWithAircraft(2);
$rank = $this->createRank(10, [$subfleet['subfleet']->id]);
$this->user = factory(User::class)->create([
$this->user = User::factory()->create([
'rank_id' => $rank->id,
]);
/** @var Airport $airport */
$airport = factory(Airport::class)->create();
$airport = Airport::factory()->create();
/** @var Airline $airline */
$airline = factory(Airline::class)->create();
$airline = Airline::factory()->create();
/** @var Aircraft $aircraft */
$aircraft = $subfleet['aircraft']->random();
@@ -668,8 +683,8 @@ class AcarsTest extends TestCase
{
$this->settingsRepo->store('pireps.restrict_aircraft_to_rank', true);
$airport = factory(Airport::class)->create();
$airline = factory(Airline::class)->create();
$airport = Airport::factory()->create();
$airline = Airline::factory()->create();
// Add subfleets and aircraft, but also add another set of subfleets
$subfleetA = $this->createSubfleetWithAircraft(1);
@@ -679,7 +694,7 @@ class AcarsTest extends TestCase
$rank = $this->createRank(10, [$subfleetA['subfleet']->id]);
$this->user = factory(User::class)->create(
$this->user = User::factory()->create(
[
'rank_id' => $rank->id,
]
@@ -714,8 +729,8 @@ class AcarsTest extends TestCase
{
$this->settingsRepo->store('pireps.restrict_aircraft_to_rank', false);
$airport = factory(Airport::class)->create();
$airline = factory(Airline::class)->create();
$airport = Airport::factory()->create();
$airline = Airline::factory()->create();
// Add subfleets and aircraft, but also add another set of subfleets
$subfleetA = $this->createSubfleetWithAircraft(1);
@@ -725,7 +740,7 @@ class AcarsTest extends TestCase
$rank = $this->createRank(10, [$subfleetA['subfleet']->id]);
$this->user = factory(User::class)->create(
$this->user = User::factory()->create(
[
'rank_id' => $rank->id,
]
@@ -767,7 +782,7 @@ class AcarsTest extends TestCase
// Post an ACARS update
$acars_count = random_int(5, 10);
$acars = factory(Acars::class, $acars_count)->make(['id' => ''])
$acars = Acars::factory()->count($acars_count)->make(['id' => ''])
->map(function ($point) {
$point['id'] = Utils::generateNewId();
return $point;
@@ -788,7 +803,7 @@ class AcarsTest extends TestCase
public function testNonExistentPirepGet()
{
$this->user = factory(User::class)->create();
$this->user = User::factory()->create();
$uri = '/api/pireps/DOESNTEXIST/acars';
$response = $this->get($uri);
@@ -797,10 +812,10 @@ class AcarsTest extends TestCase
public function testNonExistentPirepStore()
{
$this->user = factory(User::class)->create();
$this->user = User::factory()->create();
$uri = '/api/pireps/DOESNTEXIST/acars/position';
$acars = factory(Acars::class)->make()->toArray();
$acars = Acars::factory()->make()->toArray();
$response = $this->post($uri, $acars);
$response->assertStatus(404);
}
@@ -815,7 +830,7 @@ class AcarsTest extends TestCase
$dt = date('c');
$uri = '/api/pireps/'.$pirep_id.'/acars/position';
$acars = factory(Acars::class)->make([
$acars = Acars::factory()->make([
'sim_time' => $dt,
])->toArray();
@@ -864,7 +879,7 @@ class AcarsTest extends TestCase
$response = $this->post($uri, $pirep);
$pirep_id = $response->json()['data']['id'];
$acars = factory(Acars::class)->make();
$acars = Acars::factory()->make();
$post_log = [
'logs' => [
['log' => $acars->log],
@@ -878,7 +893,7 @@ class AcarsTest extends TestCase
$this->assertEquals(1, $body['count']);
$acars = factory(Acars::class)->make();
$acars = Acars::factory()->make();
$post_log = [
'events' => [
['event' => $acars->log],
@@ -905,7 +920,7 @@ class AcarsTest extends TestCase
$post_route = [];
$route_count = random_int(2, 10);
$route = factory(Navdata::class, $route_count)->create();
$route = Navdata::factory()->count($route_count)->create();
foreach ($route as $position) {
$post_route[] = [
'order' => $order,

View File

@@ -19,7 +19,7 @@ class AirlineTest extends TestCase
public function testAddAirline()
{
$attrs = factory(\App\Models\Airline::class)->make([
$attrs = \App\Models\Airline::factory()->make([
'iata' => '',
])->toArray();
@@ -27,7 +27,7 @@ class AirlineTest extends TestCase
$this->assertNotNull($airline);
// Add another airline, also blank IATA
$attrs = factory(\App\Models\Airline::class)->make([
$attrs = \App\Models\Airline::factory()->make([
'iata' => '',
])->toArray();
$airline = $this->airlineSvc->createAirline($attrs);
@@ -39,8 +39,8 @@ class AirlineTest extends TestCase
*/
public function testDeleteAirlineWithFlight()
{
$airline = factory(\App\Models\Airline::class)->create();
factory(\App\Models\Flight::class)->create([
$airline = \App\Models\Airline::factory()->create();
\App\Models\Flight::factory()->create([
'airline_id' => $airline->id,
]);
@@ -52,8 +52,8 @@ class AirlineTest extends TestCase
*/
public function testDeleteAirlineWithPirep()
{
$airline = factory(\App\Models\Airline::class)->create();
factory(\App\Models\Pirep::class)->create([
$airline = \App\Models\Airline::factory()->create();
\App\Models\Pirep::factory()->create([
'airline_id' => $airline->id,
]);

View File

@@ -32,7 +32,7 @@ class ApiTest extends TestCase
*/
public function testApiAuthentication()
{
$user = factory(User::class)->create();
$user = User::factory()->create();
$uri = '/api/user';
@@ -64,7 +64,7 @@ class ApiTest extends TestCase
public function testApiDeniedOnInactiveUser()
{
$this->user = factory(User::class)->create([
$this->user = User::factory()->create([
'state' => UserState::PENDING,
]);
@@ -77,7 +77,7 @@ class ApiTest extends TestCase
*/
public function testGetNews(): void
{
factory(News::class)->create();
News::factory()->create();
$response = $this->get('/api/news')->json();
$this->assertCount(1, $response['data']);
@@ -90,11 +90,11 @@ class ApiTest extends TestCase
public function testGetAirlines()
{
$size = random_int(5, 10);
$this->user = factory(User::class)->create([
$this->user = User::factory()->create([
'airline_id' => 0,
]);
$airlines = factory(Airline::class, $size)->create();
$airlines = Airline::factory()->count($size)->create();
$res = $this->get('/api/airlines');
$this->assertTrue($res->isOk());
@@ -106,26 +106,26 @@ class ApiTest extends TestCase
public function testGetAirlinesChineseChars()
{
$this->user = factory(User::class)->create([
$this->user = User::factory()->create([
'airline_id' => 0,
]);
factory(Airline::class)->create([
Airline::factory()->create([
'icao' => 'DKH',
'name' => '吉祥航空',
]);
factory(Airline::class)->create([
Airline::factory()->create([
'icao' => 'CSZ',
'name' => '深圳航空',
]);
factory(Airline::class)->create([
Airline::factory()->create([
'icao' => 'CCA',
'name' => '中国国际航空',
]);
factory(Airline::class)->create([
Airline::factory()->create([
'icao' => 'CXA',
'name' => '厦门航空',
]);
@@ -140,11 +140,11 @@ class ApiTest extends TestCase
public function testPagination()
{
$size = random_int(5, 10);
$this->user = factory(User::class)->create([
$this->user = User::factory()->create([
'airline_id' => 0,
]);
factory(Subfleet::class, $size)->create();
Subfleet::factory()->count($size)->create();
/*
* Page 0 and page 1 should return the same thing
@@ -185,8 +185,8 @@ class ApiTest extends TestCase
*/
public function testAirportRequest()
{
$this->user = factory(User::class)->create();
$airport = factory(Airport::class)->create();
$this->user = User::factory()->create();
$airport = Airport::factory()->create();
$response = $this->get('/api/airports/'.$airport->icao);
@@ -201,10 +201,10 @@ class ApiTest extends TestCase
*/
public function testAirportRequest5Char()
{
$this->user = factory(User::class)->create();
$this->user = User::factory()->create();
/** @var Airport $airport */
$airport = factory(Airport::class)->create(['icao' => '5Char']);
$airport = Airport::factory()->create(['icao' => '5Char']);
$response = $this->get('/api/airports/'.$airport->icao);
@@ -219,8 +219,8 @@ class ApiTest extends TestCase
*/
public function testGetAllAirports()
{
$this->user = factory(User::class)->create();
factory(Airport::class, 70)->create();
$this->user = User::factory()->create();
Airport::factory()->count(70)->create();
$response = $this->get('/api/airports/')
->assertStatus(200);
@@ -231,9 +231,9 @@ class ApiTest extends TestCase
public function testGetAllAirportsHubs()
{
$this->user = factory(User::class)->create();
factory(Airport::class, 10)->create();
factory(Airport::class)->create(['hub' => 1]);
$this->user = User::factory()->create();
Airport::factory()->count(10)->create();
Airport::factory()->create(['hub' => 1]);
$this->get('/api/airports/hubs')
->assertStatus(200)
@@ -247,23 +247,23 @@ class ApiTest extends TestCase
*/
public function testGetSubfleets()
{
$this->user = factory(User::class)->create();
$this->user = User::factory()->create();
$subfleetA = factory(Subfleet::class)->create([
$subfleetA = Subfleet::factory()->create([
'airline_id' => $this->user->airline_id,
]);
$subfleetB = factory(Subfleet::class)->create([
$subfleetB = Subfleet::factory()->create([
'airline_id' => $this->user->airline_id,
]);
$subfleetA_size = random_int(2, 10);
$subfleetB_size = random_int(2, 10);
factory(Aircraft::class, $subfleetA_size)->create([
Aircraft::factory()->count($subfleetA_size)->create([
'subfleet_id' => $subfleetA->id,
]);
factory(Aircraft::class, $subfleetB_size)->create([
Aircraft::factory()->count($subfleetB_size)->create([
'subfleet_id' => $subfleetB->id,
]);
@@ -290,22 +290,22 @@ class ApiTest extends TestCase
*/
public function testGetAircraft()
{
$this->user = factory(User::class)->create();
$this->user = User::factory()->create();
$fare_svc = app(FareService::class);
/** @var Subfleet $subfleet */
$subfleet = factory(Subfleet::class)->create([
$subfleet = Subfleet::factory()->create([
'airline_id' => $this->user->airline_id,
]);
/** @var Fare $fare */
$fare = factory(Fare::class)->create();
$fare = Fare::factory()->create();
$fare_svc->setForSubfleet($subfleet, $fare);
/** @var Aircraft $aircraft */
$aircraft = factory(Aircraft::class)->create([
$aircraft = Aircraft::factory()->create([
'subfleet_id' => $subfleet->id,
]);
@@ -343,14 +343,14 @@ class ApiTest extends TestCase
public function testGetAllSettings()
{
$this->user = factory(User::class)->create();
$this->user = User::factory()->create();
$res = $this->get('/api/settings')->assertStatus(200);
$settings = $res->json();
}
public function testGetUser()
{
$this->user = factory(User::class)->create([
$this->user = User::factory()->create([
'avatar' => '/assets/avatar.jpg',
]);
@@ -361,7 +361,7 @@ class ApiTest extends TestCase
// Should go to gravatar
$this->user = factory(User::class)->create();
$this->user = User::factory()->create();
$res = $this->get('/api/user')->assertStatus(200);
$user = $res->json('data');
@@ -385,4 +385,13 @@ class ApiTest extends TestCase
$res = $this->get('/api/cron/'.$id);
$res->assertStatus(200);
}
public function testStatus()
{
$res = $this->get('/api/status');
$status = $res->json();
$this->assertNotEmpty($status['version']);
$this->assertNotEmpty($status['php']);
}
}

View File

@@ -42,16 +42,16 @@ class AwardsTest extends TestCase
public function testAwardsGiven()
{
// Create one award that's given out with one flight
$award = factory(Award::class)->create([
$award = Award::factory()->create([
'ref_model' => PilotFlightAwards::class,
'ref_model_params' => 1,
]);
$user = factory(User::class)->create([
$user = User::factory()->create([
'flights' => 0,
]);
$pirep = factory(Pirep::class)->create([
$pirep = Pirep::factory()->create([
'airline_id' => $user->airline->id,
'user_id' => $user->id,
]);
@@ -77,18 +77,18 @@ class AwardsTest extends TestCase
public function testFlightRouteAward()
{
/** @var \App\Models\User $user */
$user = factory(User::class)->create([
$user = User::factory()->create([
'flights' => 0,
]);
/** @var \App\Models\Award $award */
$award = factory(Award::class)->create([
$award = Award::factory()->create([
'ref_model' => FlightRouteAwards::class,
'ref_model_params' => 1,
]);
/** @var Pirep $pirep */
$pirep = factory(Pirep::class)->create([
$pirep = Pirep::factory()->create([
'airline_id' => $user->airline->id,
'user_id' => $user->id,
]);

View File

@@ -36,13 +36,13 @@ class BidTest extends TestCase
public function addFlight($user, $subfleet = null)
{
$flight = factory(Flight::class)->create([
$flight = Flight::factory()->create([
'airline_id' => $user->airline_id,
]);
if ($subfleet === null) {
/** @var Subfleet $subfleet */
$subfleet = factory(Subfleet::class)->create([
$subfleet = Subfleet::factory()->create([
'airline_id' => $user->airline_id,
])->id;
}
@@ -69,13 +69,13 @@ class BidTest extends TestCase
$fare_svc = app(FareService::class);
/** @var Fare $fare */
$fare = factory(Fare::class)->create();
$fare = Fare::factory()->create();
$fare_svc->setForSubfleet($subfleet['subfleet'], $fare, [
'price' => 50, 'capacity' => 400,
]);
/** @var User $user */
$user = factory(User::class)->create([
$user = User::factory()->create([
'flight_time' => 1000,
'rank_id' => $rank->id,
]);
@@ -123,7 +123,7 @@ class BidTest extends TestCase
// have a second user bid on it
/** @var User $user */
$user2 = factory(User::class)->create(['rank_id' => $rank->id]);
$user2 = User::factory()->create(['rank_id' => $rank->id]);
$bid_user2 = $this->bidSvc->addBid($flight, $user2);
$this->assertNotNull($bid_user2);
@@ -163,8 +163,8 @@ class BidTest extends TestCase
{
$this->settingsRepo->store('bids.disable_flight_on_bid', true);
$user1 = factory(User::class)->create();
$user2 = factory(User::class)->create([
$user1 = User::factory()->create();
$user2 = User::factory()->create([
'airline_id' => $user1->airline_id,
]);
@@ -183,8 +183,8 @@ class BidTest extends TestCase
*/
public function testAddBidApi()
{
$this->user = factory(User::class)->create();
$user2 = factory(User::class)->create();
$this->user = User::factory()->create();
$user2 = User::factory()->create();
/** @var \App\Models\Flight $flight */
$flight = $this->addFlight($this->user);
@@ -221,7 +221,7 @@ class BidTest extends TestCase
*/
public function testDeleteFlightWithBids()
{
$user = factory(User::class)->create();
$user = User::factory()->create();
$headers = $this->headers($user);
$flight = $this->addFlight($user);

View File

@@ -22,10 +22,10 @@ class CronTest extends TestCase
protected static function getPirep($subtractTime): Pirep
{
/** @var User $user */
$user = factory(User::class)->create();
$user = User::factory()->create();
/** @var Pirep $pirep */
return factory(Pirep::class)->create([
return Pirep::factory()->create([
'user_id' => $user->id,
'state' => PirepState::IN_PROGRESS,
'updated_at' => Carbon::now('UTC')->subHours($subtractTime),

View File

@@ -84,31 +84,31 @@ class FinanceTest extends TestCase
$this->fleetSvc->addSubfleetToRank($subfleet['subfleet'], $rank);
/** @var Airport $dpt_apt */
$dpt_apt = factory(Airport::class)->create([
$dpt_apt = Airport::factory()->create([
'ground_handling_cost' => 10,
'fuel_jeta_cost' => 10,
]);
/** @var Airport $arr_apt */
$arr_apt = factory(Airport::class)->create([
$arr_apt = Airport::factory()->create([
'ground_handling_cost' => 10,
'fuel_jeta_cost' => 10,
]);
/** @var User $user */
$user = factory(User::class)->create([
$user = User::factory()->create([
'rank_id' => $rank->id,
]);
/** @var Flight $flight */
$flight = factory(Flight::class)->create([
$flight = Flight::factory()->create([
'airline_id' => $user->airline_id,
'dpt_airport_id' => $dpt_apt->icao,
'arr_airport_id' => $arr_apt->icao,
]);
/** @var Pirep $pirep */
$pirep = factory(Pirep::class)->create([
$pirep = Pirep::factory()->create([
'flight_number' => $flight->flight_number,
'flight_type' => FlightType::SCHED_PAX,
'route_code' => $flight->route_code,
@@ -130,7 +130,7 @@ class FinanceTest extends TestCase
* to the PIREP when it's saved, and set the capacity
*/
/** @var Fare $fares */
$fares = factory(Fare::class, 3)->create([
$fares = Fare::factory()->count(3)->create([
'price' => 100,
'cost' => 50,
'capacity' => 10,
@@ -141,26 +141,26 @@ class FinanceTest extends TestCase
}
// Add an expense
factory(Expense::class)->create([
Expense::factory()->create([
'airline_id' => null,
'amount' => 100,
]);
// Add a subfleet expense
factory(Expense::class)->create([
Expense::factory()->create([
'ref_model' => Subfleet::class,
'ref_model_id' => $subfleet['subfleet']->id,
'amount' => 200,
]);
// Add expenses for airports
factory(Expense::class)->create([
Expense::factory()->create([
'ref_model' => Airport::class,
'ref_model_id' => $dpt_apt->id,
'amount' => 50,
]);
factory(Expense::class)->create([
Expense::factory()->create([
'ref_model' => Airport::class,
'ref_model_id' => $arr_apt->id,
'amount' => 100,
@@ -183,13 +183,13 @@ class FinanceTest extends TestCase
$this->updateSetting('pireps.only_aircraft_at_dpt_airport', false);
$this->updateSetting('pireps.restrict_aircraft_to_rank', false);
$this->user = factory(User::class)->create();
$this->user = User::factory()->create();
/** @var Flight $flight */
$flight = factory(Flight::class)->create();
$flight = Flight::factory()->create();
/** @var Subfleet $subfleet */
$subfleet = factory(Subfleet::class)->create();
$subfleet = Subfleet::factory()->create();
$this->fleetSvc->addSubfleetToFlight($subfleet, $flight);
/**
@@ -199,7 +199,7 @@ class FinanceTest extends TestCase
* mostly for the output side
*/
/** @var Fare $fare */
$fare = factory(Fare::class)->create([
$fare = Fare::factory()->create([
'price' => 10,
'cost' => 20,
'capacity' => 100,
@@ -256,17 +256,17 @@ class FinanceTest extends TestCase
/** @var BidService $bidSvc */
$bidSvc = app(BidService::class);
$this->user = factory(User::class)->create();
$this->user = User::factory()->create();
/** @var Flight $flight */
$flight = factory(Flight::class)->create();
$flight = Flight::factory()->create();
/** @var Subfleet $subfleet */
$subfleet = factory(Subfleet::class)->create();
$subfleet = Subfleet::factory()->create();
$this->fleetSvc->addSubfleetToFlight($subfleet, $flight);
/** @var Fare $fare */
$fare = factory(Fare::class)->create();
$fare = Fare::factory()->create();
$this->fareSvc->setForFlight($flight, $fare);
@@ -294,14 +294,14 @@ class FinanceTest extends TestCase
/**
* Add a user and flights
*/
$this->user = factory(User::class)->create();
$this->user = User::factory()->create();
$flight = $this->addFlight($this->user);
/** @var FareService $fare_svc */
$fare_svc = app(FareService::class);
/** @var \App\Models\Fare $fare */
$fare = factory(Fare::class)->create();
$fare = Fare::factory()->create();
$fare_svc->setForSubfleet($flight->subfleets[0], $fare, ['price' => 50]);
// Get from API
@@ -321,13 +321,13 @@ class FinanceTest extends TestCase
public function testFlightFareOverrideAsPercent()
{
/** @var Flight $flight */
$flight = factory(Flight::class)->create();
$flight = Flight::factory()->create();
/** @var \App\Models\Fare $fare */
$fare = factory(Fare::class)->create();
$fare = Fare::factory()->create();
// Subfleet needs to be attached to a flight
$subfleet = factory(Subfleet::class)->create();
$subfleet = Subfleet::factory()->create();
$this->fleetSvc->addSubfleetToFlight($subfleet, $flight);
$percent_incr = '120%';
@@ -355,8 +355,8 @@ class FinanceTest extends TestCase
public function testSubfleetFaresNoOverride()
{
$subfleet = factory(Subfleet::class)->create();
$fare = factory(Fare::class)->create();
$subfleet = Subfleet::factory()->create();
$fare = Fare::factory()->create();
$this->fareSvc->setForSubfleet($subfleet, $fare);
$subfleet_fares = $this->fareSvc->getForSubfleet($subfleet);
@@ -386,8 +386,8 @@ class FinanceTest extends TestCase
public function testSubfleetFaresOverride()
{
$subfleet = factory(Subfleet::class)->create();
$fare = factory(Fare::class)->create();
$subfleet = Subfleet::factory()->create();
$fare = Fare::factory()->create();
$this->fareSvc->setForSubfleet($subfleet, $fare, [
'price' => 50, 'capacity' => 400,
@@ -423,8 +423,8 @@ class FinanceTest extends TestCase
*/
public function testSubfleetFareOverrideAsPercent()
{
$subfleet = factory(Subfleet::class)->create();
$fare = factory(Fare::class)->create();
$subfleet = Subfleet::factory()->create();
$fare = Fare::factory()->create();
$percent_incr = '20%';
$percent_decr = '-20%';
@@ -454,9 +454,9 @@ class FinanceTest extends TestCase
*/
public function testGetFaresWithOverrides()
{
$flight = factory(Flight::class)->create();
$subfleet = factory(Subfleet::class)->create();
[$fare1, $fare2, $fare3, $fare4] = factory(Fare::class, 4)->create();
$flight = Flight::factory()->create();
$subfleet = Subfleet::factory()->create();
[$fare1, $fare2, $fare3, $fare4] = Fare::factory()->count(4)->create();
// add to the subfleet, and just override one of them
$this->fareSvc->setForSubfleet($subfleet, $fare1);
@@ -508,8 +508,8 @@ class FinanceTest extends TestCase
public function testGetFaresNoFlightOverrides()
{
$subfleet = factory(Subfleet::class)->create();
[$fare1, $fare2, $fare3] = factory(Fare::class, 3)->create();
$subfleet = Subfleet::factory()->create();
[$fare1, $fare2, $fare3] = Fare::factory()->count(3)->create();
// add to the subfleet, and just override one of them
$this->fareSvc->setForSubfleet($subfleet, $fare1);
@@ -556,11 +556,11 @@ class FinanceTest extends TestCase
$rank = $this->createRank(10, [$subfleet['subfleet']->id]);
$this->fleetSvc->addSubfleetToRank($subfleet['subfleet'], $rank);
$this->user = factory(User::class)->create([
$this->user = User::factory()->create([
'rank_id' => $rank->id,
]);
$pirep = factory(Pirep::class)->create([
$pirep = Pirep::factory()->create([
'user_id' => $this->user->id,
'aircraft_id' => $subfleet['aircraft']->random(),
'source' => PirepSource::ACARS,
@@ -583,11 +583,11 @@ class FinanceTest extends TestCase
'acars_pay' => $acars_pay_rate,
]);
$this->user = factory(User::class)->create([
$this->user = User::factory()->create([
'rank_id' => $rank->id,
]);
$pirep_acars = factory(Pirep::class)->create([
$pirep_acars = Pirep::factory()->create([
'user_id' => $this->user->id,
'aircraft_id' => $subfleet['aircraft']->random(),
'source' => PirepSource::ACARS,
@@ -607,7 +607,7 @@ class FinanceTest extends TestCase
'manual_pay' => $manual_pay_rate,
]);
$pirep_manual = factory(Pirep::class)->create([
$pirep_manual = Pirep::factory()->create([
'user_id' => $this->user->id,
'aircraft_id' => $subfleet['aircraft']->random(),
'source' => PirepSource::MANUAL,
@@ -634,11 +634,11 @@ class FinanceTest extends TestCase
'acars_pay' => $acars_pay_rate,
]);
$this->user = factory(User::class)->create([
$this->user = User::factory()->create([
'rank_id' => $rank->id,
]);
$pirep_acars = factory(Pirep::class)->create([
$pirep_acars = Pirep::factory()->create([
'user_id' => $this->user->id,
'aircraft_id' => $subfleet['aircraft']->random(),
'source' => PirepSource::ACARS,
@@ -648,7 +648,7 @@ class FinanceTest extends TestCase
$payment = $this->financeSvc->getPilotPay($pirep_acars);
$this->assertEquals(100, $payment->getValue());
$pirep_acars = factory(Pirep::class)->create([
$pirep_acars = Pirep::factory()->create([
'user_id' => $this->user->id,
'aircraft_id' => $subfleet['aircraft']->random(),
'source' => PirepSource::ACARS,
@@ -669,16 +669,16 @@ class FinanceTest extends TestCase
'acars_pay' => $acars_pay_rate,
]);
$this->user = factory(User::class)->create([
$this->user = User::factory()->create([
'rank_id' => $rank->id,
]);
$flight = factory(Flight::class)->create([
$flight = Flight::factory()->create([
'airline_id' => $this->user->airline_id,
'pilot_pay' => 1000,
]);
$pirep_acars = factory(Pirep::class)->create([
$pirep_acars = Pirep::factory()->create([
'user_id' => $this->user->id,
'aircraft_id' => $subfleet['aircraft']->random(),
'source' => PirepSource::ACARS,
@@ -689,7 +689,7 @@ class FinanceTest extends TestCase
$payment = $this->financeSvc->getPilotPay($pirep_acars);
$this->assertEquals(1000, $payment->getValue());
$pirep_acars = factory(Pirep::class)->create([
$pirep_acars = Pirep::factory()->create([
'user_id' => $this->user->id,
'aircraft_id' => $subfleet['aircraft']->random(),
'source' => PirepSource::ACARS,
@@ -707,8 +707,8 @@ class FinanceTest extends TestCase
{
$journalRepo = app(JournalRepository::class);
$user = factory(User::class)->create();
$journal = factory(Journal::class)->create();
$user = User::factory()->create();
$journal = Journal::factory()->create();
$journalRepo->post(
$journal,
@@ -787,20 +787,20 @@ class FinanceTest extends TestCase
public function testPirepExpenses()
{
/** @var Airline $airline */
$airline = factory(Airline::class)->create();
$airline = Airline::factory()->create();
/** @var Airline $airline2 */
$airline2 = factory(Airline::class)->create();
$airline2 = Airline::factory()->create();
factory(Expense::class)->create([
Expense::factory()->create([
'airline_id' => $airline->id,
]);
factory(Expense::class)->create([
Expense::factory()->create([
'airline_id' => $airline2->id,
]);
factory(Expense::class)->create([
Expense::factory()->create([
'airline_id' => null,
]);
@@ -825,8 +825,8 @@ class FinanceTest extends TestCase
* Test the subfleet class
*/
$subfleet = factory(Subfleet::class)->create();
factory(Expense::class)->create([
$subfleet = Subfleet::factory()->create();
Expense::factory()->create([
'airline_id' => null,
'ref_model' => Subfleet::class,
'ref_model_id' => $subfleet->id,
@@ -848,23 +848,28 @@ class FinanceTest extends TestCase
public function testAirportExpenses()
{
$apt1 = factory(Airport::class)->create();
$apt2 = factory(Airport::class)->create();
$apt3 = factory(Airport::class)->create();
/** @var Airport $apt1 */
$apt1 = Airport::factory()->create();
factory(Expense::class)->create([
/** @var Airport $apt2 */
$apt2 = Airport::factory()->create();
/** @var Airport $apt3 */
$apt3 = Airport::factory()->create();
Expense::factory()->create([
'airline_id' => null,
'ref_model' => Airport::class,
'ref_model_id' => $apt1->id,
]);
factory(Expense::class)->create([
Expense::factory()->create([
'airline_id' => null,
'ref_model' => Airport::class,
'ref_model_id' => $apt2->id,
]);
factory(Expense::class)->create([
Expense::factory()->create([
'airline_id' => null,
'ref_model' => Airport::class,
'ref_model_id' => $apt3->id,
@@ -935,7 +940,7 @@ class FinanceTest extends TestCase
$journalRepo = app(JournalRepository::class);
// Add an expense that's only for a cargo flight
factory(Expense::class)->create([
Expense::factory()->create([
'airline_id' => null,
'amount' => 100,
'flight_type' => FlightType::SCHED_CARGO,
@@ -982,7 +987,7 @@ class FinanceTest extends TestCase
}
// Add a new PIREP;
$pirep2 = factory(Pirep::class)->create([
$pirep2 = Pirep::factory()->create([
'flight_number' => 100,
'flight_type' => FlightType::SCHED_CARGO,
'dpt_airport_id' => $pirep->dpt_airport_id,
@@ -1027,12 +1032,12 @@ class FinanceTest extends TestCase
public function testPirepFinancesExpensesMultiAirline()
{
/** @var Airline $airline */
$airline = factory(Airline::class)->create();
$airline = Airline::factory()->create();
$journalRepo = app(JournalRepository::class);
// Add an expense that's only for a cargo flight
factory(Expense::class)->create(
Expense::factory()->create(
[
'airline_id' => null,
'amount' => 100,
@@ -1043,7 +1048,7 @@ class FinanceTest extends TestCase
[$user, $pirep, $fares] = $this->createFullPirep();
$user->airline->initJournal(setting('units.currency', 'USD'));
factory(Expense::class)->create(
Expense::factory()->create(
[
'airline_id' => $user->airline->id,
'amount' => 100,
@@ -1051,7 +1056,7 @@ class FinanceTest extends TestCase
]
);
factory(Expense::class)->create(
Expense::factory()->create(
[
'airline_id' => $airline->id,
'amount' => 100,
@@ -1061,8 +1066,8 @@ class FinanceTest extends TestCase
// There shouldn't be an expense from this subfleet
/** @var Subfleet $subfleet */
$subfleet = factory(Subfleet::class)->create();
factory(Expense::class)->create([
$subfleet = Subfleet::factory()->create();
Expense::factory()->create([
'airline_id' => null,
'amount' => 100,
'ref_model' => Subfleet::class,

View File

@@ -38,7 +38,7 @@ class FlightTest extends TestCase
*/
public function testDuplicateFlight()
{
$this->user = factory(User::class)->create();
$this->user = User::factory()->create();
$flight = $this->addFlight($this->user);
// first flight shouldn't be a duplicate
@@ -54,7 +54,7 @@ class FlightTest extends TestCase
$this->assertTrue($this->flightSvc->isFlightDuplicate($flight_dupe));
// same flight but diff airline shouldn't be a dupe
$new_airline = factory(Airline::class)->create();
$new_airline = Airline::factory()->create();
$flight_dupe = new Flight([
'airline_id' => $new_airline->airline_id,
'flight_number' => $flight->flight_number,
@@ -65,7 +65,7 @@ class FlightTest extends TestCase
$this->assertFalse($this->flightSvc->isFlightDuplicate($flight_dupe));
// add another flight with a code
$flight_leg = factory(Flight::class)->create([
$flight_leg = Flight::factory()->create([
'airline_id' => $flight->airline_id,
'flight_number' => $flight->flight_number,
'route_code' => 'A',
@@ -74,7 +74,7 @@ class FlightTest extends TestCase
$this->assertFalse($this->flightSvc->isFlightDuplicate($flight_leg));
// Add both a route and leg
$flight_leg = factory(Flight::class)->create([
$flight_leg = Flight::factory()->create([
'airline_id' => $flight->airline_id,
'flight_number' => $flight->flight_number,
'route_code' => 'A',
@@ -86,7 +86,7 @@ class FlightTest extends TestCase
public function testGetFlight()
{
$this->user = factory(User::class)->create();
$this->user = User::factory()->create();
$flight = $this->addFlight($this->user, [
'load_factor' => '',
'load_factor_variance' => '',
@@ -114,7 +114,7 @@ class FlightTest extends TestCase
public function testSearchFlight()
{
/** @var \App\Models\User user */
$this->user = factory(User::class)->create();
$this->user = User::factory()->create();
$flight = $this->addFlight($this->user);
/** @var \App\Services\FlightService $flightSvc */
@@ -126,18 +126,20 @@ class FlightTest extends TestCase
// search specifically for a flight ID
$query = 'flight_id='.$flight->id;
$req = $this->get('/api/flights/search?'.$query);
$body = $req->json(['data']);
$req->assertStatus(200);
$data = $req->json('data');
$this->assertEquals(1, count($data));
}
public function testSearchFlightInactiveAirline()
{
/** @var \App\Models\Airline $airline_inactive */
$airline_inactive = factory(Airline::class)->create(['active' => 0]);
$airline_inactive = Airline::factory()->create(['active' => 0]);
/** @var \App\Models\Airline $airline_active */
$airline_active = factory(Airline::class)->create(['active' => 1]);
$this->user = factory(User::class)->create([
$airline_active = Airline::factory()->create(['active' => 1]);
$this->user = User::factory()->create([
'airline_id' => $airline_inactive->id,
]);
@@ -160,11 +162,11 @@ class FlightTest extends TestCase
*/
public function testFlightRoute()
{
$this->user = factory(User::class)->create();
$this->user = User::factory()->create();
$flight = $this->addFlight($this->user);
$route_count = random_int(4, 6);
$route = factory(Navdata::class, $route_count)->create();
$route = Navdata::factory()->count($route_count)->create();
$route_text = implode(' ', $route->pluck('id')->toArray());
$flight->route = $route_text;
@@ -194,8 +196,8 @@ class FlightTest extends TestCase
*/
public function testFindAllFlights()
{
$this->user = factory(User::class)->create();
factory(Flight::class, 20)->create([
$this->user = User::factory()->create();
Flight::factory()->count(20)->create([
'airline_id' => $this->user->airline_id,
]);
@@ -213,12 +215,12 @@ class FlightTest extends TestCase
*/
public function testSearchFlightBySubfleet()
{
$airline = factory(Airline::class)->create();
$subfleetA = factory(Subfleet::class)->create(['airline_id' => $airline->id]);
$subfleetB = factory(Subfleet::class)->create(['airline_id' => $airline->id]);
$airline = Airline::factory()->create();
$subfleetA = Subfleet::factory()->create(['airline_id' => $airline->id]);
$subfleetB = Subfleet::factory()->create(['airline_id' => $airline->id]);
$rank = $this->createRank(0, [$subfleetB->id]);
$this->user = factory(User::class)->create([
$this->user = User::factory()->create([
'airline_id' => $airline->id,
'rank_id' => $rank->id,
]);
@@ -233,6 +235,51 @@ class FlightTest extends TestCase
$res->assertStatus(200);
$res->assertJsonCount(10, 'data');
$meta = $res->json('meta');
$body = $res->json('data');
collect($body)->each(function ($flight) use ($subfleetB) {
self::assertNotEmpty($flight['subfleets']);
self::assertEquals($subfleetB->id, $flight['subfleets'][0]['id']);
});
}
/**
* Search for flights based on a subfleet. If subfleet is blank
*/
public function testSearchFlightBySubfleetPagination()
{
/** @var Airline $airline */
$airline = Airline::factory()->create();
/** @var Subfleet $subfleetA */
$subfleetA = Subfleet::factory()->create(['airline_id' => $airline->id]);
/** @var Subfleet $subfleetB */
$subfleetB = Subfleet::factory()->create(['airline_id' => $airline->id]);
$rank = $this->createRank(0, [$subfleetB->id]);
$this->user = User::factory()->create([
'airline_id' => $airline->id,
'rank_id' => $rank->id,
]);
$this->addFlightsForSubfleet($subfleetA, 5);
$this->addFlightsForSubfleet($subfleetB, 10);
// search specifically for a given subfleet
//$query = 'subfleet_id='.$subfleetB->id;
$query = 'subfleet_id='.$subfleetB->id.'&limit=2';
$res = $this->get('/api/flights/search?'.$query);
$res->assertStatus(200);
$res->assertJsonCount(2, 'data');
$meta = $res->json('meta');
$this->assertNull($meta['prev_page']);
$this->assertNotNull($meta['next_page']);
$this->assertEquals(1, $meta['current_page']);
$this->assertEquals(10, $meta['total']);
$body = $res->json('data');
collect($body)->each(function ($flight) use ($subfleetB) {
self::assertNotEmpty($flight['subfleets']);
@@ -246,12 +293,15 @@ class FlightTest extends TestCase
*/
public function testFindDaysOfWeek(): void
{
$this->user = factory(User::class)->create();
factory(Flight::class, 20)->create([
/** @var User user */
$this->user = User::factory()->create();
Flight::factory()->count(20)->create([
'airline_id' => $this->user->airline_id,
]);
$saved_flight = factory(Flight::class)->create([
/** @var Flight $saved_flight */
$saved_flight = Flight::factory()->create([
'airline_id' => $this->user->airline_id,
'days' => Days::getDaysMask([
Days::SUNDAY,
@@ -259,6 +309,7 @@ class FlightTest extends TestCase
]),
]);
/** @var Flight $flight */
$flight = Flight::findByDays([Days::SUNDAY])->first();
$this->assertTrue($flight->on_day(Days::SUNDAY));
$this->assertTrue($flight->on_day(Days::THURSDAY));
@@ -280,7 +331,7 @@ class FlightTest extends TestCase
public function testDayOfWeekActive(): void
{
/** @var User user */
$this->user = factory(User::class)->create();
$this->user = User::factory()->create();
// Set it to Monday or Tuesday, depending on what today is
if (date('N') === '1') { // today is a monday
@@ -289,10 +340,10 @@ class FlightTest extends TestCase
$days = Days::getDaysMask([Days::MONDAY]);
}
factory(Flight::class, 5)->create();
Flight::factory()->count(5)->create();
/** @var Flight $flight */
$flight = factory(Flight::class)->create([
$flight = Flight::factory()->create([
'days' => $days,
]);
@@ -336,15 +387,15 @@ class FlightTest extends TestCase
public function testStartEndDate(): void
{
$this->user = factory(User::class)->create();
$this->user = User::factory()->create();
factory(Flight::class, 5)->create();
$flight = factory(Flight::class)->create([
Flight::factory()->count(5)->create();
$flight = Flight::factory()->create([
'start_date' => Carbon::now('UTC')->subDays(1),
'end_date' => Carbon::now('UTC')->addDays(1),
]);
$flight_not_active = factory(Flight::class)->create([
$flight_not_active = Flight::factory()->create([
'start_date' => Carbon::now('UTC')->subDays(10),
'end_date' => Carbon::now('UTC')->subDays(2),
]);
@@ -365,7 +416,7 @@ class FlightTest extends TestCase
public function testStartEndDateDayOfWeek(): void
{
$this->user = factory(User::class)->create();
$this->user = User::factory()->create();
// Set it to Monday or Tuesday, depending on what today is
if (date('N') === '1') { // today is a monday
@@ -374,15 +425,15 @@ class FlightTest extends TestCase
$days = Days::getDaysMask([Days::MONDAY]);
}
factory(Flight::class, 5)->create();
$flight = factory(Flight::class)->create([
Flight::factory()->count(5)->create();
$flight = Flight::factory()->create([
'start_date' => Carbon::now('UTC')->subDays(1),
'end_date' => Carbon::now('UTC')->addDays(1),
'days' => Days::$isoDayMap[date('N')],
]);
// Not active because of days of week not today
$flight_not_active = factory(Flight::class)->create([
$flight_not_active = Flight::factory()->create([
'start_date' => Carbon::now('UTC')->subDays(1),
'end_date' => Carbon::now('UTC')->addDays(1),
'days' => $days,
@@ -404,8 +455,8 @@ class FlightTest extends TestCase
public function testFlightSearchApi()
{
$this->user = factory(User::class)->create();
$flights = factory(Flight::class, 10)->create([
$this->user = User::factory()->create();
$flights = Flight::factory()->count(10)->create([
'airline_id' => $this->user->airline_id,
]);
@@ -420,12 +471,12 @@ class FlightTest extends TestCase
public function testFlightSearchApiDepartureAirport()
{
$this->user = factory(User::class)->create();
factory(Flight::class, 10)->create([
$this->user = User::factory()->create();
Flight::factory()->count(10)->create([
'airline_id' => $this->user->airline_id,
]);
$flight = factory(Flight::class)->create([
$flight = Flight::factory()->create([
'airline_id' => $this->user->airline_id,
'dpt_airport_id' => 'KAUS',
]);
@@ -443,10 +494,10 @@ class FlightTest extends TestCase
$total_flights = 10;
/** @var \App\Models\User user */
$this->user = factory(User::class)->create();
$this->user = User::factory()->create();
/** @var \App\Models\Flight $flights */
$flights = factory(Flight::class, $total_flights)->create([
$flights = Flight::factory()->count($total_flights)->create([
'airline_id' => $this->user->airline_id,
]);
@@ -483,8 +534,8 @@ class FlightTest extends TestCase
public function testAddSubfleet()
{
$subfleet = factory(Subfleet::class)->create();
$flight = factory(Flight::class)->create();
$subfleet = Subfleet::factory()->create();
$flight = Flight::factory()->create();
$fleetSvc = app(FleetService::class);
$fleetSvc->addSubfleetToFlight($subfleet, $flight);
@@ -505,7 +556,7 @@ class FlightTest extends TestCase
*/
public function testDeleteFlight()
{
$user = factory(User::class)->create();
$user = User::factory()->create();
$flight = $this->addFlight($user);
$this->flightSvc->deleteFlight($flight);
@@ -517,13 +568,13 @@ class FlightTest extends TestCase
public function testAirportDistance()
{
// KJFK
$fromIcao = factory(Airport::class)->create([
$fromIcao = Airport::factory()->create([
'lat' => 40.6399257,
'lon' => -73.7786950,
]);
// KSFO
$toIcao = factory(Airport::class)->create([
$toIcao = Airport::factory()->create([
'lat' => 37.6188056,
'lon' => -122.3754167,
]);
@@ -536,17 +587,17 @@ class FlightTest extends TestCase
public function testAirportDistanceApi()
{
$user = factory(User::class)->create();
$user = User::factory()->create();
$headers = $this->headers($user);
// KJFK
$fromIcao = factory(Airport::class)->create([
$fromIcao = Airport::factory()->create([
'lat' => 40.6399257,
'lon' => -73.7786950,
]);
// KSFO
$toIcao = factory(Airport::class)->create([
$toIcao = Airport::factory()->create([
'lat' => 37.6188056,
'lon' => -122.3754167,
]);

View File

@@ -48,7 +48,7 @@ class GeoTest extends TestCase
$route = [];
$nav_count = random_int(5, 20);
$navpoints = factory(Navdata::class, $nav_count)->create();
$navpoints = Navdata::factory()->count($nav_count)->create();
foreach ($navpoints as $point) {
$route[] = $point->id;
}

View File

@@ -54,18 +54,18 @@ class ImporterTest extends TestCase
'name' => 'phpVMS Airlines',
];
$airline = factory(Airline::class)->create($al);
$subfleet = factory(Subfleet::class)->create(['type' => 'A32X']);
$airline = Airline::factory()->create($al);
$subfleet = Subfleet::factory()->create(['type' => 'A32X']);
// Add the economy class
$fare_economy = factory(Fare::class)->create(['code' => 'Y', 'capacity' => 150]);
$fare_economy = Fare::factory()->create(['code' => 'Y', 'capacity' => 150]);
$fare_svc->setForSubfleet($subfleet, $fare_economy);
$fare_business = factory(Fare::class)->create(['code' => 'B', 'capacity' => 20]);
$fare_business = Fare::factory()->create(['code' => 'B', 'capacity' => 20]);
$fare_svc->setForSubfleet($subfleet, $fare_business);
// Add first class
$fare_first = factory(Fare::class)->create(['code' => 'F', 'capacity' => 10]);
$fare_first = Fare::factory()->create(['code' => 'F', 'capacity' => 10]);
$fare_svc->setForSubfleet($subfleet, $fare_first);
return [$airline, $subfleet];
@@ -258,7 +258,7 @@ class ImporterTest extends TestCase
*/
public function testAircraftExporter(): void
{
$aircraft = factory(Aircraft::class)->create();
$aircraft = Aircraft::factory()->create();
$exporter = new AircraftExporter();
$exported = $exporter->export($aircraft);
@@ -271,7 +271,10 @@ class ImporterTest extends TestCase
$importer = app(ImportService::class);
$exporter = app(ExportService::class);
$file = $exporter->exportAircraft(collect([$aircraft]));
$collection = collect([$aircraft]);
$file = $exporter->exportAircraft($collection);
$status = $importer->importAircraft($file);
$this->assertCount(1, $status['success']);
$this->assertCount(0, $status['errors']);
@@ -284,7 +287,7 @@ class ImporterTest extends TestCase
{
$airport_name = 'Adolfo Suárez MadridBarajas Airport';
$airport = factory(Airport::class)->create([
$airport = Airport::factory()->create([
'name' => $airport_name,
]);
@@ -312,12 +315,12 @@ class ImporterTest extends TestCase
$fareSvc = app(FareService::class);
[$airline, $subfleet] = $this->insertFlightsScaffoldData();
$subfleet2 = factory(Subfleet::class)->create(['type' => 'B74X']);
$subfleet2 = Subfleet::factory()->create(['type' => 'B74X']);
$fareY = Fare::where('code', 'Y')->first();
$fareF = Fare::where('code', 'F')->first();
$flight = factory(Flight::class)->create([
$flight = Flight::factory()->create([
'airline_id' => $airline->id,
'flight_type' => 'J',
'days' => Days::getDaysMask([
@@ -388,6 +391,20 @@ class ImporterTest extends TestCase
$this->assertCount(0, $status['errors']);
}
/**
* @throws \League\Csv\CannotInsertRecord
*
* @return void
*/
public function testExpenseExporter(): void
{
$expenses = Expense::factory(10)->create();
/** @var ExportService $exporter */
$exporter = app(ExportService::class);
$exporter->exportExpenses($expenses);
}
/**
* Test the importing of expenses
*
@@ -395,9 +412,9 @@ class ImporterTest extends TestCase
*/
public function testExpenseImporter(): void
{
$airline = factory(Airline::class)->create(['icao' => 'VMS']);
$subfleet = factory(Subfleet::class)->create(['type' => '744-3X-RB211']);
$aircraft = factory(Aircraft::class)->create([
$airline = Airline::factory()->create(['icao' => 'VMS']);
$subfleet = Subfleet::factory()->create(['type' => '744-3X-RB211']);
$aircraft = Aircraft::factory()->create([
'subfleet_id' => $subfleet->id,
'registration' => '001Z',
]);
@@ -497,7 +514,7 @@ class ImporterTest extends TestCase
$this->assertEquals('0810 CST', $flight->dpt_time);
$this->assertEquals('1235 EST', $flight->arr_time);
$this->assertEquals('350', $flight->level);
$this->assertEquals(1477, $flight->distance);
$this->assertEquals(1477, $flight->distance->internal());
$this->assertEquals('207', $flight->flight_time);
$this->assertEquals(FlightType::SCHED_PAX, $flight->flight_type);
$this->assertEquals('ILEXY2 ZENZI LFK ELD J29 MEM Q29 JHW J70 STENT J70 MAGIO J70 LVZ LENDY6', $flight->route);
@@ -586,8 +603,8 @@ class ImporterTest extends TestCase
*/
public function testAircraftImporter(): void
{
factory(Airline::class)->create();
// $subfleet = factory(\App\Models\Subfleet::class)->create(['type' => 'A32X']);
Airline::factory()->create();
// $subfleet = \App\Models\Subfleet::factory()->create(['type' => 'A32X']);
$file_path = base_path('tests/data/aircraft.csv');
$status = $this->importSvc->importAircraft($file_path);
@@ -672,9 +689,9 @@ class ImporterTest extends TestCase
*/
public function testSubfleetImporter(): void
{
$fare_economy = factory(Fare::class)->create(['code' => 'Y', 'capacity' => 150]);
$fare_business = factory(Fare::class)->create(['code' => 'B', 'capacity' => 20]);
$airline = factory(Airline::class)->create(['icao' => 'VMS']);
$fare_economy = Fare::factory()->create(['code' => 'Y', 'capacity' => 150]);
$fare_business = Fare::factory()->create(['code' => 'B', 'capacity' => 20]);
$airline = Airline::factory()->create(['icao' => 'VMS']);
$file_path = base_path('tests/data/subfleets.csv');
$status = $this->importSvc->importSubfleets($file_path);

View File

@@ -27,10 +27,10 @@ class NewsTest extends TestCase
public function testNewsNotifications()
{
/** @var User[] $users */
$users_opt_in = factory(User::class, 5)->create(['opt_in' => true]);
$users_opt_in = User::factory()->count(5)->create(['opt_in' => true]);
/** @var User[] $users */
$users_opt_out = factory(User::class, 5)->create(['opt_in' => false]);
$users_opt_out = User::factory()->count(5)->create(['opt_in' => false]);
$this->newsSvc->addNews([
'user_id' => $users_opt_out[0]->id,

View File

@@ -13,6 +13,8 @@ use App\Models\Navdata;
use App\Models\Pirep;
use App\Models\Rank;
use App\Models\User;
use App\Notifications\Messages\Broadcast\PirepPrefiled;
use App\Notifications\Messages\Broadcast\PirepStatusChanged;
use App\Notifications\Messages\PirepAccepted;
use App\Notifications\Messages\PirepFiled;
use App\Repositories\SettingRepository;
@@ -45,7 +47,7 @@ class PIREPTest extends TestCase
protected function createNewRoute()
{
$route = [];
$navpoints = factory(Navdata::class, 5)->create();
$navpoints = Navdata::factory()->count(5)->create();
foreach ($navpoints as $point) {
$route[] = $point->id;
}
@@ -72,10 +74,10 @@ class PIREPTest extends TestCase
*/
public function testAddPirep()
{
$user = factory(User::class)->create();
$user = User::factory()->create();
$route = $this->createNewRoute();
$pirep = factory(Pirep::class)->create([
$pirep = Pirep::factory()->create([
'user_id' => $user->id,
'route' => implode(' ', $route),
]);
@@ -109,7 +111,7 @@ class PIREPTest extends TestCase
// Also check via API:
$this->get('/api/fleet/aircraft/'.$pirep->aircraft_id, [], $user)
->assertJson(['data' => ['airport_id' => $pirep->arr_airport_id]]);
->assertJson(['data' => ['airport_id' => $pirep->arr_airport_id]]);
// Make sure a notification was sent out to both the user and the admin(s)
Notification::assertSentTo([$user], PirepAccepted::class);
@@ -166,18 +168,30 @@ class PIREPTest extends TestCase
// Check that it has the fuel units
$this->assertHasKeys($body['block_fuel'], ['lbs', 'kg']);
$this->assertEquals(round($pirep->block_fuel), round($body['block_fuel']['lbs']));
$this->assertEquals(
round($pirep->block_fuel->toUnit('lbs')),
round($body['block_fuel']['lbs'])
);
$this->assertHasKeys($body['fuel_used'], ['lbs', 'kg']);
$this->assertEquals(round($pirep->fuel_used), round($body['fuel_used']['lbs']));
$this->assertEquals(
round($pirep->fuel_used->toUnit('lbs')),
round($body['fuel_used']['lbs'])
);
// Check that it has the distance units
$this->assertHasKeys($body['distance'], ['km', 'nmi', 'mi']);
$this->assertEquals(round($pirep->distance), round($body['distance']['nmi']));
$this->assertEquals(
round($pirep->distance->toUnit('nmi')),
round($body['distance']['nmi'])
);
// Check the planned_distance field
$this->assertHasKeys($body['planned_distance'], ['km', 'nmi', 'mi']);
$this->assertEquals(round($pirep->planned_distance), round($body['planned_distance']['nmi']));
$this->assertEquals(
round($pirep->planned_distance->toUnit('nmi')),
round($body['planned_distance']['nmi'])
);
//Check conversion on save
$val = random_int(1000, 9999999);
@@ -185,45 +199,51 @@ class PIREPTest extends TestCase
$pirep->fuel_used = $val;
// no conversion with plain numbers
$this->assertEquals($pirep->block_fuel, $val);
$this->assertEquals($pirep->fuel_used, $val);
$this->assertEquals($pirep->block_fuel->internal(2), $val);
$this->assertEquals($pirep->fuel_used->internal(2), $val);
// no conversion with lbs
$pirep->block_fuel = new Fuel($val, 'lbs');
$this->assertEquals(round($pirep->block_fuel), round($val));
$this->assertEquals($pirep->block_fuel->internal(2), round($val, 2));
$pirep->fuel_used = new Fuel($val, 'lbs');
$this->assertEquals(round($pirep->fuel_used), round($val));
$this->assertEquals($pirep->fuel_used->internal(2), round($val, 2));
// conversion of kg to lbs
$pirep->block_fuel = new Fuel($val, 'kg');
$this->assertEquals(round($pirep->block_fuel), round((new Fuel($val, 'kg'))->toUnit('lbs')));
$this->assertEquals(
$pirep->block_fuel->internal(2),
Fuel::make($val, 'kg')->toUnit('lbs', 2)
);
$pirep->fuel_used = new Fuel($val, 'kg');
$this->assertEquals(round($pirep->fuel_used), round((new Fuel($val, 'kg'))->toUnit('lbs')));
$this->assertEquals(
$pirep->fuel_used->internal(2),
Fuel::make($val, 'kg')->toUnit('lbs', 2)
);
}
public function testGetUserPireps()
{
$this->user = factory(User::class)->create();
$pirep_done = factory(Pirep::class)->create([
$this->user = User::factory()->create();
$pirep_done = Pirep::factory()->create([
'user_id' => $this->user->id,
'state' => PirepState::ACCEPTED,
]);
$pirep_in_progress = factory(Pirep::class)->create([
$pirep_in_progress = Pirep::factory()->create([
'user_id' => $this->user->id,
'state' => PirepState::IN_PROGRESS,
]);
$pirep_cancelled = factory(Pirep::class)->create([
$pirep_cancelled = Pirep::factory()->create([
'user_id' => $this->user->id,
'state' => PirepState::CANCELLED,
]);
$pireps = $this->get('/api/user/pireps')
->assertStatus(200)
->json();
->assertStatus(200)
->json();
$pirep_ids = collect($pireps['data'])->pluck('id');
@@ -250,7 +270,7 @@ class PIREPTest extends TestCase
public function testPirepNotifications()
{
/** @var User $user */
$user = factory(User::class)->create([
$user = User::factory()->create([
'name' => 'testPirepNotifications user',
'flights' => 0,
'flight_time' => 0,
@@ -259,7 +279,7 @@ class PIREPTest extends TestCase
$admin = $this->createAdminUser(['name' => 'testPirepNotifications Admin']);
$pirep = factory(Pirep::class)->create([
$pirep = Pirep::factory()->create([
'airline_id' => 1,
'user_id' => $user->id,
]);
@@ -280,14 +300,14 @@ class PIREPTest extends TestCase
$this->updateSetting('pilots.count_transfer_hours', false);
/** @var User $user */
$user = factory(User::class)->create([
$user = User::factory()->create([
'flights' => 0,
'flight_time' => 0,
'rank_id' => 1,
]);
// Submit two PIREPs
$pireps = factory(Pirep::class, 2)->create([
$pireps = Pirep::factory()->count(2)->create([
'airline_id' => $user->airline_id,
'aircraft_id' => 1,
'user_id' => $user->id,
@@ -320,7 +340,7 @@ class PIREPTest extends TestCase
// Submit another PIREP, adding another 6 hours
// it should automatically be accepted
//
$pirep = factory(Pirep::class)->create([
$pirep = Pirep::factory()->create([
'airline_id' => 1,
'user_id' => $user->id,
// 120min == 2 hours, currently at 9 hours
@@ -354,7 +374,7 @@ class PIREPTest extends TestCase
public function testPilotDontChangeRank()
{
/** @var Rank $rank */
$rank = factory(Rank::class)->create([
$rank = Rank::factory()->create([
'hours' => 15,
'auto_promote' => false,
]);
@@ -362,14 +382,14 @@ class PIREPTest extends TestCase
// Set the user to the above rank, non-promote, they shouldn't bump down
/** @var User $user */
$user = factory(User::class)->create([
$user = User::factory()->create([
'flights' => 0,
'flight_time' => 0,
'rank_id' => $rank->id,
]);
// Submit two PIREPs
$pirep = factory(Pirep::class)->create([
$pirep = Pirep::factory()->create([
'airline_id' => $user->airline_id,
'aircraft_id' => 1,
'user_id' => $user->id,
@@ -392,7 +412,7 @@ class PIREPTest extends TestCase
{
$this->updateSetting('pilots.count_transfer_hours', true);
$user = factory(User::class)->create([
$user = User::factory()->create([
'flights' => 0,
'flight_time' => 0,
'transfer_time' => 720,
@@ -401,7 +421,7 @@ class PIREPTest extends TestCase
// Submit two PIREPs
// 1 hour flight times, but the rank should bump up because of the transfer hours
$pireps = factory(Pirep::class, 2)->create([
$pireps = Pirep::factory()->count(2)->create([
'airline_id' => $user->airline_id,
'aircraft_id' => 1,
'user_id' => $user->id,
@@ -444,14 +464,14 @@ class PIREPTest extends TestCase
public function testPilotStatusChange()
{
/** @var \App\Models\User $user */
$user = factory(User::class)->create([
$user = User::factory()->create([
'state' => UserState::ON_LEAVE,
]);
// Submit two PIREPs
// 1 hour flight times, but the rank should bump up because of the transfer hours
/** @var Pirep $pirep */
$pirep = factory(Pirep::class)->create([
$pirep = Pirep::factory()->create([
'airline_id' => $user->airline_id,
'user_id' => $user->id,
]);
@@ -469,8 +489,8 @@ class PIREPTest extends TestCase
*/
public function testDuplicatePireps()
{
$user = factory(User::class)->create();
$pirep = factory(Pirep::class)->create([
$user = User::factory()->create();
$pirep = Pirep::factory()->create([
'user_id' => $user->id,
]);
@@ -483,7 +503,7 @@ class PIREPTest extends TestCase
* Create a PIREP outside of the check time interval
*/
$minutes = setting('pireps.duplicate_check_time') + 1;
$pirep = factory(Pirep::class)->create([
$pirep = Pirep::factory()->create([
'created_at' => Carbon::now('UTC')->subMinutes($minutes)->toDateTimeString(),
]);
@@ -501,7 +521,7 @@ class PIREPTest extends TestCase
$pirep_id = $response->json()['data']['id'];
$uri = '/api/pireps/'.$pirep_id.'/acars/position';
$acars = factory(Acars::class)->make()->toArray();
$acars = Acars::factory()->make()->toArray();
$response = $this->post($uri, [
'positions' => [$acars],
]);
@@ -515,7 +535,7 @@ class PIREPTest extends TestCase
// Should get a 400 when posting an ACARS update
$uri = '/api/pireps/'.$pirep_id.'/acars/position';
$acars = factory(Acars::class)->make()->toArray();
$acars = Acars::factory()->make()->toArray();
$response = $this->post($uri, $acars);
$response->assertStatus(400);
@@ -529,18 +549,18 @@ class PIREPTest extends TestCase
$bidSvc = app(BidService::class);
$flightSvc = app(FlightService::class);
$user = factory(User::class)->create([
$user = User::factory()->create([
'flight_time' => 0,
]);
$flight = factory(Flight::class)->create([
$flight = Flight::factory()->create([
'route_code' => null,
'route_leg' => null,
]);
$bidSvc->addBid($flight, $user);
$pirep = factory(Pirep::class)->create([
$pirep = Pirep::factory()->create([
'user_id' => $user->id,
'airline_id' => $flight->airline_id,
'flight_id' => $flight->id,
@@ -557,4 +577,39 @@ class PIREPTest extends TestCase
$this->assertNull($user_bid);
}
/**
* See that the notifications are properly formatted
*/
public function testNotificationFormatting()
{
$this->updateSetting('units.distance', 'km');
/** @var User $user */
$user = User::factory()->create();
/** @var Pirep $pirep */
$pirep = Pirep::factory()->create([
'user_id' => $user->id,
'distance' => 100,
'planned_distance' => 200,
'flight_time' => 60,
'planned_flight_time' => 90,
]);
$discordNotif = new PirepPrefiled($pirep);
$fields = $discordNotif->createFields($pirep);
$this->assertEquals('1h 30m', $fields['Flight Time (Planned)']);
$this->assertEquals('370.4 km', $fields['Distance']);
$discordNotif = new PirepStatusChanged($pirep);
$fields = $discordNotif->createFields($pirep);
$this->assertEquals('1h 0m', $fields['Flight Time']);
$this->assertEquals('185.2/370.4 km', $fields['Distance']);
$discordNotif = new \App\Notifications\Messages\Broadcast\PirepFiled($pirep);
$fields = $discordNotif->createFields($pirep);
$this->assertEquals('1h 0m', $fields['Flight Time']);
$this->assertEquals('185.2 km', $fields['Distance']);
}
}

View File

@@ -27,7 +27,7 @@ class RegistrationTest extends TestCase
$this->updateSetting('pilots.auto_accept', true);
$attrs = factory(User::class)->make()->makeVisible(['api_key', 'name', 'email'])->toArray();
$attrs = User::factory()->make()->makeVisible(['api_key', 'name', 'email'])->toArray();
$attrs['password'] = Hash::make('secret');
$user = $userSvc->createUser($attrs);

View File

@@ -32,7 +32,7 @@ class SimBriefTest extends TestCase
$rank = $this->createRank(2, [$subfleet['subfleet']->id]);
/** @var User $user */
$user = factory(User::class)->create(array_merge([
$user = User::factory()->create(array_merge([
'flight_time' => 1000,
'rank_id' => $rank->id,
'state' => UserState::ACTIVE,
@@ -62,7 +62,7 @@ class SimBriefTest extends TestCase
}
/** @var \App\Models\Flight $flight */
$flight = factory(Flight::class)->create([
$flight = Flight::factory()->create([
'id' => $flight_id,
'dpt_airport_id' => 'OMAA',
'arr_airport_id' => 'OMDB',
@@ -244,7 +244,7 @@ class SimBriefTest extends TestCase
];
/** @var \App\Models\Flight $flight */
$flight = factory(Flight::class)->create();
$flight = Flight::factory()->create();
// Create two briefings and make sure it doesn't leak
$userinfo2 = $this->createUserData();
@@ -285,7 +285,7 @@ class SimBriefTest extends TestCase
$this->user = $userinfo['user'];
/** @var Pirep $pirep */
$pirep = factory(Pirep::class)->create([
$pirep = Pirep::factory()->create([
'user_id' => $this->user->id,
'dpt_airport_id' => 'OMAA',
'arr_airport_id' => 'OMDB',
@@ -332,14 +332,14 @@ class SimBriefTest extends TestCase
$userinfo = $this->createUserData();
$user = $userinfo['user'];
$sb_ignored = factory(SimBrief::class)->create([
$sb_ignored = SimBrief::factory()->create([
'user_id' => $user->id,
'flight_id' => 'a_flight_id',
'pirep_id' => 'a_pirep_id',
'created_at' => Carbon::now('UTC')->subDays(6),
]);
factory(SimBrief::class)->create([
SimBrief::factory()->create([
'user_id' => $user->id,
'flight_id' => 'a_flight_Id',
'created_at' => Carbon::now('UTC')->subDays(6),

View File

@@ -27,7 +27,7 @@ class SubfleetTest extends TestCase
$subfleet = $subfleet_aircraft['subfleet'];
/** @var \App\Models\Fare $fare */
$fare = factory(Fare::class)->create();
$fare = Fare::factory()->create();
$fare_svc->setForSubfleet($subfleet, $fare);
$subfleet_fares = $fare_svc->getForSubfleet($subfleet);

View File

@@ -2,6 +2,7 @@
namespace Tests;
use App\Contracts\Factory;
use App\Contracts\Unit;
use App\Exceptions\Handler;
use App\Repositories\SettingRepository;
@@ -62,6 +63,10 @@ abstract class TestCase extends \Illuminate\Foundation\Testing\TestCase
Notification::fake();
// $this->disableExceptionHandling();
Factory::guessFactoryNamesUsing(function (string $modelName) {
return 'App\\Database\\Factories\\'.class_basename($modelName).'Factory';
});
}
/**
@@ -274,6 +279,8 @@ abstract class TestCase extends \Illuminate\Foundation\Testing\TestCase
$data[$key] = $value->format(DATE_ATOM);
} elseif ($value instanceof Carbon) {
$data[$key] = $value->toIso8601ZuluString();
} elseif ($value instanceof Unit) {
$data[$key] = (float) $value->internal(2);
}
}

View File

@@ -26,7 +26,7 @@ trait TestData
$subfleet = $this->createSubfleetWithAircraft(1);
$rank = $this->createRank(2, [$subfleet['subfleet']->id]);
return factory(User::class)->create(array_merge([
return User::factory()->create(array_merge([
'flight_time' => 1000,
'rank_id' => $rank->id,
'state' => UserState::ACTIVE,
@@ -43,7 +43,7 @@ trait TestData
public function createAdminUser(array $attrs = []): User
{
/** @var User $admin */
$admin = factory(User::class)->create($attrs);
$admin = User::factory()->create($attrs);
/** @var UserService $userSvc */
$userSvc = app(UserService::class);
@@ -69,12 +69,12 @@ trait TestData
$rank = $this->createRank(10, [$subfleet['subfleet']->id]);
/** @var User user */
$this->user = factory(User::class)->create(array_merge([
$this->user = User::factory()->create(array_merge([
'rank_id' => $rank->id,
], $user_attrs));
// Return a Pirep model
return factory(Pirep::class)->make(array_merge([
return Pirep::factory()->make(array_merge([
'user_id' => $this->user->id,
'aircraft_id' => $subfleet['aircraft']->random()->id,
], $pirep_attrs));
@@ -96,7 +96,7 @@ trait TestData
$attrs['hours'] = $hours;
}
$rank = factory(\App\Models\Rank::class)->create($attrs);
$rank = \App\Models\Rank::factory()->create($attrs);
if (!empty($subfleet_ids)) {
$rank->subfleets()->syncWithoutDetaching($subfleet_ids);
}
@@ -118,10 +118,10 @@ trait TestData
'airline_id' => $user->airline_id,
], $flight_properties);
$flight = factory(Flight::class)->create($opts);
$flight = Flight::factory()->create($opts);
$flight->subfleets()->syncWithoutDetaching([
factory(Subfleet::class)->create([
Subfleet::factory()->create([
'airline_id' => $user->airline_id,
])->id,
]);
@@ -139,7 +139,7 @@ trait TestData
*/
public function addFlightsForSubfleet($subfleet, $num_flights)
{
return factory(Flight::class, $num_flights)->create([
return Flight::factory()->count($num_flights)->create([
'airline_id' => $subfleet->airline->id,
])->each(function (Flight $f) use ($subfleet) {
$f->subfleets()->syncWithoutDetaching([$subfleet->id]);
@@ -160,7 +160,7 @@ trait TestData
public function createSubfleetWithAircraft($aircraft_count = null, $airport_id = null)
{
/** @var Subfleet $subfleet */
$subfleet = factory(Subfleet::class)->create([
$subfleet = Subfleet::factory()->create([
'ground_handling_multiplier' => '100',
]);
@@ -168,7 +168,7 @@ trait TestData
$aircraft_count = \random_int(2, 10);
}
$aircraft = factory(Aircraft::class, $aircraft_count)->create([
$aircraft = Aircraft::factory()->count($aircraft_count)->create([
'subfleet_id' => $subfleet->id,
'airport_id' => $airport_id,
]);
@@ -188,6 +188,6 @@ trait TestData
*/
public function createRole(array $attrs = []): Role
{
return factory(Role::class)->create($attrs);
return Role::factory()->create($attrs);
}
}

View File

@@ -43,7 +43,7 @@ class UserTest extends TestCase
$rank = $this->createRank(10, [$subfleetA['subfleet']->id]);
$user = factory(User::class)->create([
$user = User::factory()->create([
'rank_id' => $rank->id,
]);
@@ -100,7 +100,7 @@ class UserTest extends TestCase
$subfleetA = $this->createSubfleetWithAircraft();
$subfleetB = $this->createSubfleetWithAircraft();
$fare = factory(Fare::class)->create([
$fare = Fare::factory()->create([
'price' => 20,
'capacity' => 200,
]);
@@ -119,7 +119,7 @@ class UserTest extends TestCase
$rank = $this->createRank(10, [$subfleetA['subfleet']->id]);
$user = factory(User::class)->create([
$user = User::factory()->create([
'rank_id' => $rank->id,
]);
@@ -175,17 +175,17 @@ class UserTest extends TestCase
{
// Add subfleets and aircraft, but also add another
// set of subfleets
$airport = factory(\App\Models\Airport::class)->create();
$airport = \App\Models\Airport::factory()->create();
$subfleetA = $this->createSubfleetWithAircraft(2, $airport->id);
$subfleetB = $this->createSubfleetWithAircraft(2);
$rank = $this->createRank(10, [$subfleetA['subfleet']->id]);
$user = factory(User::class)->create([
$user = User::factory()->create([
'curr_airport_id' => $airport->id,
'rank_id' => $rank->id,
]);
$flight = factory(\App\Models\Flight::class)->create([
$flight = \App\Models\Flight::factory()->create([
'airline_id' => $user->airline_id,
'dpt_airport_id' => $airport->id,
]);
@@ -240,8 +240,8 @@ class UserTest extends TestCase
public function testUserPilotIdChangeAlreadyExists()
{
$this->expectException(UserPilotIdExists::class);
$user1 = factory(User::class)->create(['id' => 1]);
$user2 = factory(User::class)->create(['id' => 2]);
$user1 = User::factory()->create(['id' => 1]);
$user2 = User::factory()->create(['id' => 2]);
// Now try to change the original user's pilot_id to 2 (should conflict)
$this->userSvc->changePilotId($user1, 2);
@@ -253,7 +253,7 @@ class UserTest extends TestCase
public function testUserPilotIdSplit(): void
{
/** @var User $user */
$user = factory(User::class)->create();
$user = User::factory()->create();
$found_user = $this->userSvc->findUserByPilotId($user->ident);
$this->assertEquals($user->id, $found_user->id);
@@ -268,7 +268,7 @@ class UserTest extends TestCase
public function testUserPilotIdSplitInvalidId(): void
{
/** @var User $user */
$user = factory(User::class)->create();
$user = User::factory()->create();
$this->expectException(PilotIdNotFound::class);
$this->userSvc->findUserByPilotId($user->airline->iata);
@@ -277,10 +277,10 @@ class UserTest extends TestCase
public function testUserPilotIdInvalidIATA(): void
{
/** @var Airline $airline */
$airline = factory(Airline::class)->create(['icao' => 'ABC', 'iata' => null]);
$airline = Airline::factory()->create(['icao' => 'ABC', 'iata' => null]);
/** @var User $user */
$user = factory(User::class)->create(['airline_id' => $airline->id]);
$user = User::factory()->create(['airline_id' => $airline->id]);
$this->expectException(PilotIdNotFound::class);
$this->userSvc->findUserByPilotId('123');
@@ -291,13 +291,13 @@ class UserTest extends TestCase
*/
public function testUserPilotIdAdded()
{
$new_user = factory(User::class)->make()->makeVisible(['api_key', 'name', 'email'])->toArray();
$new_user = User::factory()->make()->makeVisible(['api_key', 'name', 'email'])->toArray();
$new_user['password'] = Hash::make('secret');
$user = $this->userSvc->createUser($new_user);
$this->assertEquals($user->id, $user->pilot_id);
// Add a second user
$new_user = factory(User::class)->make()->makeVisible(['api_key', 'name', 'email'])->toArray();
$new_user = User::factory()->make()->makeVisible(['api_key', 'name', 'email'])->toArray();
$new_user['password'] = Hash::make('secret');
$user2 = $this->userSvc->createUser($new_user);
$this->assertEquals($user2->id, $user2->pilot_id);
@@ -307,17 +307,17 @@ class UserTest extends TestCase
$this->assertEquals(3, $user->pilot_id);
// Create a new user and the pilot_id should be 4
$user3 = factory(User::class)->create();
$user3 = User::factory()->create();
$this->assertEquals(4, $user3->pilot_id);
}
public function testUserPilotDeleted()
{
$new_user = factory(User::class)->make()->makeVisible(['api_key', 'name', 'email'])->toArray();
$new_user = User::factory()->make()->makeVisible(['api_key', 'name', 'email'])->toArray();
$new_user['password'] = Hash::make('secret');
$admin_user = $this->userSvc->createUser($new_user);
$new_user = factory(User::class)->make()->makeVisible(['api_key', 'name', 'email'])->toArray();
$new_user = User::factory()->make()->makeVisible(['api_key', 'name', 'email'])->toArray();
$new_user['password'] = Hash::make('secret');
$user = $this->userSvc->createUser($new_user);
$this->assertEquals($user->id, $user->pilot_id);
@@ -335,17 +335,17 @@ class UserTest extends TestCase
public function testUserPilotDeletedWithPireps()
{
$new_user = factory(User::class)->make()->makeVisible(['api_key', 'name', 'email'])->toArray();
$new_user = User::factory()->make()->makeVisible(['api_key', 'name', 'email'])->toArray();
$new_user['password'] = Hash::make('secret');
$admin_user = $this->userSvc->createUser($new_user);
$new_user = factory(User::class)->make()->makeVisible(['api_key', 'name', 'email'])->toArray();
$new_user = User::factory()->make()->makeVisible(['api_key', 'name', 'email'])->toArray();
$new_user['password'] = Hash::make('secret');
$user = $this->userSvc->createUser($new_user);
$this->assertEquals($user->id, $user->pilot_id);
/** @var Pirep $pirep */
factory(Pirep::class)->create([
Pirep::factory()->create([
'user_id' => $user->id,
]);
@@ -369,7 +369,8 @@ class UserTest extends TestCase
$vals = [
'Firstname' => 'Firstname',
'Firstname Lastname' => 'Firstname L',
'Firstname Middlename Lastname' => 'Firstname L',
'Firstname Middlename Lastname' => 'Firstname Middlename L',
'First Mid1 mid2 last' => 'First Mid1 Mid2 L',
];
foreach ($vals as $input => $expected) {
@@ -401,7 +402,7 @@ class UserTest extends TestCase
// Give that user a new PIREP, still old
/** @var Pirep $pirep */
$pirep = factory(Pirep::class)->create([
$pirep = Pirep::factory()->create([
'user_id' => $user->id,
'created_at' => Carbon::now('UTC')->subDays(5),
'submitted_at' => Carbon::now('UTC')->subDays(5),
@@ -417,7 +418,7 @@ class UserTest extends TestCase
// Create a new PIREP
/** @var Pirep $pirep */
$pirep = factory(Pirep::class)->create([
$pirep = Pirep::factory()->create([
'user_id' => $user->id,
'created_at' => Carbon::now('UTC'),
'submitted_at' => Carbon::now('UTC'),

View File

@@ -4,6 +4,7 @@ namespace Tests;
use App\Repositories\KvpRepository;
use App\Support\ICAO;
use App\Support\Units\Distance;
use App\Support\Units\Time;
use App\Support\Utils;
use Carbon\Carbon;
@@ -16,6 +17,51 @@ class UtilsTest extends TestCase
$this->assertNotNull($carbon);
}
/**
* @throws \PhpUnitsOfMeasure\Exception\NonNumericValue
* @throws \PhpUnitsOfMeasure\Exception\NonStringUnitName
*/
public function testUnitRounding()
{
$this->updateSetting('units.distance', 'km');
$alt = new Distance(1065.3456, 'nmi');
$km = $alt->toUnit('km');
$this->assertEquals(1973.0200512, $km);
$km = $alt->toUnit('km', 2);
$this->assertEquals(1973.02, $km);
$km = $alt->toUnit('km', 0);
$this->assertEquals(1973, $km);
/*
* Test local conversions
*/
$km = $alt->local();
$this->assertEquals(1973.0200512, $km);
$km = $alt->local(0);
$this->assertEquals(1973, $km);
$km = $alt->local(2);
$this->assertEquals(1973.02, $km);
/*
* Internal units, shouldn't do a conversion
*/
$int = $alt->internal();
$this->assertEquals(1065.3456, $int);
$int = $alt->internal(2);
$this->assertEquals(1065.35, $int);
$int = $alt->internal(0);
$this->assertEquals(1065, $int);
}
/**
* Simple test for KVP
*/