Add unit conversion handling for block_fuel like for fuel_used (#1076)
* Add unit conversion handling for block_fuel like for fuel_used, add further checks in PIREPTest->testUnitFields * Remove accidentially added "use" Co-authored-by: Andreas Palm <ap@ewsp.de>
This commit is contained in:
parent
73f88fce0c
commit
b9e7a2efc9
@ -38,6 +38,13 @@ class Pirep extends Resource
|
|||||||
$distance = new Distance($res['distance'], config('phpvms.internal_units.distance'));
|
$distance = new Distance($res['distance'], config('phpvms.internal_units.distance'));
|
||||||
$res['distance'] = $distance->getResponseUnits();
|
$res['distance'] = $distance->getResponseUnits();
|
||||||
|
|
||||||
|
if (!array_key_exists('block_fuel', $res)) {
|
||||||
|
$res['block_fuel'] = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
$block_fuel = new Fuel($res['block_fuel'], config('phpvms.internal_units.fuel'));
|
||||||
|
$res['block_fuel'] = $block_fuel->getResponseUnits();
|
||||||
|
|
||||||
if (!array_key_exists('fuel_used', $res)) {
|
if (!array_key_exists('fuel_used', $res)) {
|
||||||
$res['fuel_used'] = 0;
|
$res['fuel_used'] = 0;
|
||||||
}
|
}
|
||||||
|
@ -326,6 +326,22 @@ class Pirep extends Model
|
|||||||
return $field_values;
|
return $field_values;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the amount of block fuel
|
||||||
|
*
|
||||||
|
* @param $value
|
||||||
|
*/
|
||||||
|
public function setBlockFuelAttribute($value): void
|
||||||
|
{
|
||||||
|
if ($value instanceof Fuel) {
|
||||||
|
$this->attributes['block_fuel'] = $value->toUnit(
|
||||||
|
config('phpvms.internal_units.fuel')
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
$this->attributes['block_fuel'] = $value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the amount of fuel used
|
* Set the amount of fuel used
|
||||||
*
|
*
|
||||||
|
@ -21,6 +21,7 @@ use App\Services\BidService;
|
|||||||
use App\Services\FlightService;
|
use App\Services\FlightService;
|
||||||
use App\Services\PirepService;
|
use App\Services\PirepService;
|
||||||
use App\Services\UserService;
|
use App\Services\UserService;
|
||||||
|
use App\Support\Units\Fuel;
|
||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
use Illuminate\Support\Facades\Notification;
|
use Illuminate\Support\Facades\Notification;
|
||||||
|
|
||||||
@ -164,6 +165,8 @@ class PIREPTest extends TestCase
|
|||||||
$body = $response->json('data');
|
$body = $response->json('data');
|
||||||
|
|
||||||
// Check that it has the fuel units
|
// Check that it has the fuel units
|
||||||
|
$this->assertHasKeys($body['block_fuel'], ['lbs', 'kg']);
|
||||||
|
$this->assertEquals($pirep->block_fuel, $body['block_fuel']['lbs']);
|
||||||
$this->assertHasKeys($body['fuel_used'], ['lbs', 'kg']);
|
$this->assertHasKeys($body['fuel_used'], ['lbs', 'kg']);
|
||||||
$this->assertEquals($pirep->fuel_used, $body['fuel_used']['lbs']);
|
$this->assertEquals($pirep->fuel_used, $body['fuel_used']['lbs']);
|
||||||
|
|
||||||
@ -174,6 +177,24 @@ class PIREPTest extends TestCase
|
|||||||
// Check the planned_distance field
|
// Check the planned_distance field
|
||||||
$this->assertHasKeys($body['planned_distance'], ['km', 'nmi', 'mi']);
|
$this->assertHasKeys($body['planned_distance'], ['km', 'nmi', 'mi']);
|
||||||
$this->assertEquals($pirep->planned_distance, $body['planned_distance']['nmi']);
|
$this->assertEquals($pirep->planned_distance, $body['planned_distance']['nmi']);
|
||||||
|
|
||||||
|
//Check conversion on save
|
||||||
|
$val = random_int(1000, 9999999);
|
||||||
|
$pirep->block_fuel = $val;
|
||||||
|
$pirep->fuel_used = $val;
|
||||||
|
// no conversion with plain numbers
|
||||||
|
$this->assertEquals($pirep->block_fuel, $val);
|
||||||
|
$this->assertEquals($pirep->fuel_used, $val);
|
||||||
|
// no conversion with lbs
|
||||||
|
$pirep->block_fuel = new Fuel($val, 'lbs');
|
||||||
|
$this->assertEquals($pirep->block_fuel, $val);
|
||||||
|
$pirep->fuel_used = new Fuel($val, 'lbs');
|
||||||
|
$this->assertEquals($pirep->fuel_used, $val);
|
||||||
|
// conversion of kg to lbs
|
||||||
|
$pirep->block_fuel = new Fuel($val, 'kg');
|
||||||
|
$this->assertEquals($pirep->block_fuel, (new Fuel($val, 'kg'))->toUnit('lbs'));
|
||||||
|
$pirep->fuel_used = new Fuel($val, 'kg');
|
||||||
|
$this->assertEquals($pirep->fuel_used, (new Fuel($val, 'kg'))->toUnit('lbs'));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testGetUserPireps()
|
public function testGetUserPireps()
|
||||||
|
Loading…
Reference in New Issue
Block a user