Skip to content

Commit a69cb4a

Browse files
committed
Construct a Record from any Record
1 parent 75ea9c9 commit a69cb4a

File tree

4 files changed

+79
-10
lines changed

4 files changed

+79
-10
lines changed

.github/dependabot.yml

-8
This file was deleted.

Tests/Unit/ConstructTest.php

+77
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
<?php
2+
3+
namespace Tests\Unit;
4+
5+
class ConstructTest extends \PHPUnit\Framework\TestCase
6+
{
7+
public function testArrayConstruct() : void
8+
{
9+
$sales_report = new \Tests\App\Record\SalesReport(['group_by' => 'Category', 'title' => 'Sales By Category']);
10+
$this->assertFalse($sales_report->empty());
11+
$this->assertTrue($sales_report->loaded());
12+
$this->assertEquals('SELECT DISTINCT [Category] FROM [products] ORDER BY [Category];', $sales_report->filter_row_source);
13+
}
14+
15+
public function testDataObjectConstruct() : void
16+
{
17+
$order = new \Tests\App\Record\Order(30);
18+
$this->assertFalse($order->empty());
19+
$this->assertTrue($order->loaded());
20+
$this->assertEquals('Karen Toh', $order->ship_name);
21+
$data = $order->toArray();
22+
$this->assertIsArray($data);
23+
$this->assertFalse(empty($data));
24+
$dataObject = new \PHPFUI\ORM\DataObject($data);
25+
$this->assertFalse($dataObject->empty());
26+
$clonedOrder = new \Tests\App\Record\Order($dataObject);
27+
$this->assertFalse($clonedOrder->empty());
28+
$this->assertFalse($clonedOrder->loaded());
29+
$this->assertEquals('Karen Toh', $clonedOrder->ship_name);
30+
$clonedOrder->ship_name = 'Fred Flintstone';
31+
$this->assertEquals('Fred Flintstone', $clonedOrder->ship_name);
32+
$this->assertEquals('Karen Toh', $order->ship_name);
33+
}
34+
35+
public function testEnptyConstruct() : void
36+
{
37+
$order = new \Tests\App\Record\Order();
38+
$this->assertTrue($order->empty());
39+
$this->assertFalse($order->loaded());
40+
$order = new \Tests\App\Record\Order(1);
41+
$this->assertTrue($order->empty());
42+
$this->assertFalse($order->loaded());
43+
}
44+
45+
public function testIntConstruct() : void
46+
{
47+
$order = new \Tests\App\Record\Order(30);
48+
$this->assertFalse($order->empty());
49+
$this->assertTrue($order->loaded());
50+
$this->assertEquals('Karen Toh', $order->ship_name);
51+
//INSERT INTO 'order' ('order_id', 'employee_id', 'customer_id', 'order_date', 'shipped_date', 'shipper_id', 'ship_name', 'ship_address', 'ship_city', 'ship_state_province', 'ship_zip_postal_code', 'ship_country_region', 'shipping_fee', 'taxes', 'payment_type', 'paid_date', 'notes', 'tax_rate', 'order_tax_status_id', 'order_status_id') VALUES
52+
//(30, 9, 27, '2006-01-15 00:00:00', '2006-01-22 00:00:00', 2, 'Karen Toh', '789 27th Street', 'Las Vegas', 'NV', '99999', 'USA', 200, 0, 'Check', '2006-01-15 00:00:00', NULL, 0, NULL, 3);
53+
}
54+
55+
public function testRecordConstruct() : void
56+
{
57+
$order = new \Tests\App\Record\Order(30);
58+
$this->assertFalse($order->empty());
59+
$this->assertTrue($order->loaded());
60+
$this->assertEquals('Karen Toh', $order->ship_name);
61+
$clonedOrder = new \Tests\App\Record\Order($order);
62+
$this->assertFalse($clonedOrder->empty());
63+
$this->assertFalse($clonedOrder->loaded());
64+
$this->assertEquals('Karen Toh', $clonedOrder->ship_name);
65+
$clonedOrder->ship_name = 'Fred Flintstone';
66+
$this->assertEquals('Fred Flintstone', $clonedOrder->ship_name);
67+
$this->assertEquals('Karen Toh', $order->ship_name);
68+
}
69+
70+
public function testStringConstruct() : void
71+
{
72+
$order = new \Tests\App\Record\Order('30');
73+
$this->assertFalse($order->empty());
74+
$this->assertTrue($order->loaded());
75+
$this->assertEquals('Karen Toh', $order->ship_name);
76+
}
77+
}

phpunit.xml.dist

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
processIsolation="false"
66
stopOnFailure="false"
77
failOnWarning="true"
8-
failOnDeprecation="true"
8+
displayDetailsOnTestsThatTriggerDeprecations="true"
99
failOnNotice="true"
1010
bootstrap="./Tests/bootstrap.php"
1111
xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/10.1/phpunit.xsd"

src/PHPFUI/ORM/Record.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ abstract class Record extends DataObject
6161
public function __construct(int|array|null|string|\PHPFUI\ORM\DataObject $parameter = null)
6262
{
6363
$this->setEmpty();
64-
$type = \get_debug_type($parameter);
64+
$type = $parameter instanceof \PHPFUI\ORM\DataObject ? \PHPFUI\ORM\DataObject::class : \get_debug_type($parameter);
6565

6666
switch ($type)
6767
{

0 commit comments

Comments
 (0)