111 lines
3.6 KiB
PHP
111 lines
3.6 KiB
PHP
|
|
<?php
|
||
|
|
|
||
|
|
namespace Tests\Unit\Lookups;
|
||
|
|
|
||
|
|
use CodeIgniter\Test\CIUnitTestCase;
|
||
|
|
use App\Libraries\Lookups;
|
||
|
|
|
||
|
|
class LookupsBackwardCompatibilityTest extends CIUnitTestCase
|
||
|
|
{
|
||
|
|
protected function setUp(): void
|
||
|
|
{
|
||
|
|
parent::setUp();
|
||
|
|
\App\Libraries\ValueSet::clearCache();
|
||
|
|
}
|
||
|
|
|
||
|
|
public function testLookupsGetMethodWorks()
|
||
|
|
{
|
||
|
|
$result = Lookups::get('gender');
|
||
|
|
$this->assertIsArray($result);
|
||
|
|
$this->assertNotEmpty($result);
|
||
|
|
$this->assertArrayHasKey('value', $result[0]);
|
||
|
|
$this->assertArrayHasKey('label', $result[0]);
|
||
|
|
}
|
||
|
|
|
||
|
|
public function testLookupsGetRawMethodWorks()
|
||
|
|
{
|
||
|
|
$result = Lookups::getRaw('gender');
|
||
|
|
$this->assertIsArray($result);
|
||
|
|
$this->assertNotEmpty($result);
|
||
|
|
$this->assertArrayHasKey('key', $result[0]);
|
||
|
|
$this->assertArrayHasKey('value', $result[0]);
|
||
|
|
}
|
||
|
|
|
||
|
|
public function testLookupsGetRawGenderContainsExpectedData()
|
||
|
|
{
|
||
|
|
$result = Lookups::getRaw('gender');
|
||
|
|
$keys = array_column($result, 'key');
|
||
|
|
$values = array_column($result, 'value');
|
||
|
|
|
||
|
|
$genderMap = array_combine($keys, $values);
|
||
|
|
$this->assertEquals('Female', $genderMap['1']);
|
||
|
|
$this->assertEquals('Male', $genderMap['2']);
|
||
|
|
}
|
||
|
|
|
||
|
|
public function testLookupsGetLabelMethodWorks()
|
||
|
|
{
|
||
|
|
$this->assertEquals('Female', Lookups::getLabel('gender', '1'));
|
||
|
|
$this->assertEquals('Male', Lookups::getLabel('gender', '2'));
|
||
|
|
$this->assertEquals('Stat', Lookups::getLabel('order_priority', 'S'));
|
||
|
|
}
|
||
|
|
|
||
|
|
public function testLookupsGetAllMethodWorks()
|
||
|
|
{
|
||
|
|
$result = Lookups::getAll();
|
||
|
|
$this->assertIsArray($result);
|
||
|
|
$this->assertArrayHasKey('gender', $result);
|
||
|
|
$this->assertArrayHasKey('specimen_type', $result);
|
||
|
|
$this->assertArrayHasKey('order_priority', $result);
|
||
|
|
}
|
||
|
|
|
||
|
|
public function testLookupsClearCacheMethodWorks()
|
||
|
|
{
|
||
|
|
Lookups::getAll();
|
||
|
|
$result = Lookups::clearCache();
|
||
|
|
$this->assertTrue($result);
|
||
|
|
}
|
||
|
|
|
||
|
|
public function testLookupsSameAsValueSet()
|
||
|
|
{
|
||
|
|
$lookupResult = Lookups::get('gender');
|
||
|
|
$valueSetResult = \App\Libraries\ValueSet::get('gender');
|
||
|
|
$this->assertEquals($lookupResult, $valueSetResult);
|
||
|
|
}
|
||
|
|
|
||
|
|
public function testLookupsBackwardCompatWithSpecimenStatus()
|
||
|
|
{
|
||
|
|
$result = Lookups::getRaw('specimen_status');
|
||
|
|
$keys = array_column($result, 'key');
|
||
|
|
$values = array_column($result, 'value');
|
||
|
|
|
||
|
|
$statusMap = array_combine($keys, $values);
|
||
|
|
$this->assertEquals('To be collected', $statusMap['STC']);
|
||
|
|
$this->assertEquals('Collected', $statusMap['SCtd']);
|
||
|
|
$this->assertEquals('In-transport', $statusMap['STran']);
|
||
|
|
}
|
||
|
|
|
||
|
|
public function testLookupsBackwardCompatWithMaritalStatus()
|
||
|
|
{
|
||
|
|
$result = Lookups::getRaw('marital_status');
|
||
|
|
$keys = array_column($result, 'key');
|
||
|
|
$values = array_column($result, 'value');
|
||
|
|
|
||
|
|
$statusMap = array_combine($keys, $values);
|
||
|
|
$this->assertEquals('Married', $statusMap['M']);
|
||
|
|
$this->assertEquals('Single', $statusMap['S']);
|
||
|
|
$this->assertEquals('Divorced', $statusMap['D']);
|
||
|
|
}
|
||
|
|
|
||
|
|
public function testLookupsBackwardCompatWithReligion()
|
||
|
|
{
|
||
|
|
$result = Lookups::getRaw('religion');
|
||
|
|
$keys = array_column($result, 'key');
|
||
|
|
$values = array_column($result, 'value');
|
||
|
|
|
||
|
|
$religionMap = array_combine($keys, $values);
|
||
|
|
$this->assertEquals('Islam', $religionMap['ISLAM']);
|
||
|
|
$this->assertEquals('Kristen', $religionMap['KRSTN']);
|
||
|
|
$this->assertEquals('Katolik', $religionMap['KTLIK']);
|
||
|
|
}
|
||
|
|
}
|