snipe-it/tests/Unit/Helpers/HelperTest.php
2024-05-21 13:26:29 -07:00

88 lines
3.1 KiB
PHP

<?php
namespace Tests\Unit\Helpers;
use App\Helpers\Helper;
use Illuminate\Http\RedirectResponse;
use Illuminate\Support\Facades\Redirect;
use Illuminate\Support\Facades\Session;
use Tests\TestCase;
class HelperTest extends TestCase
{
public function testDefaultChartColorsMethodHandlesHighValues()
{
$this->assertIsString(Helper::defaultChartColors(1000));
}
public function testDefaultChartColorsMethodHandlesNegativeNumbers()
{
$this->assertIsString(Helper::defaultChartColors(-1));
}
public function testParseCurrencyMethod()
{
$this->settings->set(['default_currency' => 'USD']);
$this->assertSame(12.34, Helper::ParseCurrency('USD 12.34'));
$this->settings->set(['digit_separator' => '1.234,56']);
$this->assertSame(12.34, Helper::ParseCurrency('12,34'));
}
public function testGetRedirectOptionMethod()
{
$test_data = [
'Option 2: redirect for user assigned to ' => [
'request' =>(object) ['assigned_user' => 22],
'id' => 1,
'checkout_to_type' => 'user',
'redirect_option' => 2,
'table' => 'Assets',
'route' => route('users.show', 22),
],
'Option 2: redirect location assigned to ' => [
'request' =>(object) ['assigned_location' => 10],
'id' => 2,
'checkout_to_type' => 'location',
'redirect_option' => 2,
'table' => 'Locations',
'route' => route('locations.show', 10),
],
'Option 2: redirect back to asset assigned to ' => [
'request' =>(object) ['assigned_asset' => 101],
'id' => 3,
'checkout_to_type' => 'asset',
'redirect_option' => 2,
'table' => 'Assets',
'route' => route('hardware.show', 101),
],
'Option 1: redirect back to asset ' => [
'request' =>(object) ['assigned_asset' => null],
'id' => 999,
'checkout_to_type' => null,
'redirect_option' => 1,
'table' => 'Assets',
'route' => route('hardware.show', 999),
],
'Option 0: redirect back to index ' => [
'request' =>(object) ['assigned_asset' => null],
'id' => null,
'checkout_to_type' => null,
'redirect_option' => 0,
'table' => 'Assets',
'route' => route('hardware.index'),
],
];
foreach ($test_data as $scenario => $data ) {
Session::put('redirect_option', $data['redirect_option']);
Session::put('checkout_to_type', $data['checkout_to_type']);
$redirect = Helper::getRedirectOption($data['request'],$data['id'], $data['table']);
$this->assertInstanceOf(RedirectResponse::class, $redirect);
$this->assertEquals($data['route'], $redirect->getTargetUrl(), $scenario.'failed.');
}
}
}