Skip to content

Commit 68a51df

Browse files
committed
Fixing unit tests to use modern definitions
1 parent 641f961 commit 68a51df

File tree

7 files changed

+113
-60
lines changed

7 files changed

+113
-60
lines changed

Tests/Fixtures/Record/Definition/Order.php

+21-22
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
* @property ?string $notes MySQL type longtext
1313
* @property string $order_date MySQL type datetime
1414
* @property int $order_id MySQL type integer
15-
* @property \Tests\App\Record\Order $order related record
1615
* @property ?int $order_status_id MySQL type integer
1716
* @property \Tests\App\Record\OrderStatus $order_status related record
1817
* @property ?int $order_tax_status_id MySQL type integer
@@ -38,27 +37,27 @@ abstract class Order extends \PHPFUI\ORM\Record
3837

3938
/** @var array<string, array<mixed>> */
4039
protected static array $fields = [
41-
// MYSQL_TYPE, PHP_TYPE, LENGTH, KEY, ALLOWS_NULL, DEFAULT
42-
'customer_id' => ['integer', 'int', 0, false, true, null, ],
43-
'employee_id' => ['integer', 'int', 0, false, true, null, ],
44-
'notes' => ['longtext', 'string', 4294967295, false, true, 'NULL', ],
45-
'order_date' => ['datetime', 'string', 20, false, false, ],
46-
'order_id' => ['integer', 'int', 0, true, false, ],
47-
'order_status_id' => ['integer', 'int', 0, false, true, 0, ],
48-
'order_tax_status_id' => ['integer', 'int', 0, false, true, null, ],
49-
'paid_date' => ['datetime', 'string', 20, false, true, 'NULL', ],
50-
'payment_type' => ['varchar(50)', 'string', 50, false, true, 'NULL', ],
51-
'ship_address' => ['longtext', 'string', 4294967295, false, true, 'NULL', ],
52-
'ship_city' => ['varchar(50)', 'string', 50, false, true, 'NULL', ],
53-
'ship_country_region' => ['varchar(50)', 'string', 50, false, true, 'NULL', ],
54-
'ship_name' => ['varchar(50)', 'string', 50, false, true, 'NULL', ],
55-
'ship_state_province' => ['varchar(50)', 'string', 50, false, true, 'NULL', ],
56-
'ship_zip_postal_code' => ['varchar(50)', 'string', 50, false, true, 'NULL', ],
57-
'shipped_date' => ['datetime', 'string', 20, false, true, 'NULL', ],
58-
'shipper_id' => ['integer', 'int', 0, false, true, null, ],
59-
'shipping_fee' => ['decimal(19,4)', 'float', 19, false, true, 0, ],
60-
'tax_rate' => ['double', 'float', 0, false, true, 0, ],
61-
'taxes' => ['decimal(19,4)', 'float', 19, false, true, 0, ],
40+
// MYSQL_TYPE, PHP_TYPE, LENGTH, ALLOWS_NULL, DEFAULT
41+
'customer_id' => ['integer', 'int', 0, true, NULL, ],
42+
'employee_id' => ['integer', 'int', 0, true, NULL, ],
43+
'notes' => ['longtext', 'string', 4294967295, true, NULL, ],
44+
'order_date' => ['datetime', 'string', 20, false, NULL, ],
45+
'order_id' => ['integer', 'int', 0, false, ],
46+
'order_status_id' => ['integer', 'int', 0, true, 0, ],
47+
'order_tax_status_id' => ['integer', 'int', 0, true, NULL, ],
48+
'paid_date' => ['datetime', 'string', 20, true, NULL, ],
49+
'payment_type' => ['varchar(50)', 'string', 50, true, NULL, ],
50+
'ship_address' => ['longtext', 'string', 4294967295, true, NULL, ],
51+
'ship_city' => ['varchar(50)', 'string', 50, true, NULL, ],
52+
'ship_country_region' => ['varchar(50)', 'string', 50, true, NULL, ],
53+
'ship_name' => ['varchar(50)', 'string', 50, true, NULL, ],
54+
'ship_state_province' => ['varchar(50)', 'string', 50, true, NULL, ],
55+
'ship_zip_postal_code' => ['varchar(50)', 'string', 50, true, NULL, ],
56+
'shipped_date' => ['datetime', 'string', 20, true, NULL, ],
57+
'shipper_id' => ['integer', 'int', 0, true, NULL, ],
58+
'shipping_fee' => ['decimal(19,4)', 'float', 19, true, 0.0000, ],
59+
'tax_rate' => ['double', 'float', 0, true, 0, ],
60+
'taxes' => ['decimal(19,4)', 'float', 19, true, 0.0000, ],
6261
];
6362

6463
/** @var array<string> */

Tests/Fixtures/Record/Definition/OrderDetail.php

+12-13
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,8 @@
1010
* @property ?int $inventory_transaction_id MySQL type integer
1111
* @property \Tests\App\Record\InventoryTransaction $inventory_transaction related record
1212
* @property int $order_detail_id MySQL type integer
13-
* @property \Tests\Fixtures\Record\OrderDetail $order_detail related record
1413
* @property ?int $order_detail_status_id MySQL type integer
15-
* @property \Tests\Fixtures\Record\OrderDetailStatus $order_detail_status related record
14+
* @property \Tests\App\Record\OrderDetailStatus $order_detail_status related record
1615
* @property int $order_id MySQL type integer
1716
* @property \Tests\App\Record\Order $order related record
1817
* @property ?int $product_id MySQL type integer
@@ -28,17 +27,17 @@ abstract class OrderDetail extends \PHPFUI\ORM\Record
2827

2928
/** @var array<string, array<mixed>> */
3029
protected static array $fields = [
31-
// MYSQL_TYPE, PHP_TYPE, LENGTH, KEY, ALLOWS_NULL, DEFAULT
32-
'date_allocated' => ['datetime', 'string', 20, false, true, 'NULL', ],
33-
'discount' => ['double', 'float', 0, false, false, 0, ],
34-
'inventory_transaction_id' => ['integer', 'int', 0, false, true, null, ],
35-
'order_detail_id' => ['integer', 'int', 0, true, false, ],
36-
'order_detail_status_id' => ['integer', 'int', 0, false, true, null, ],
37-
'order_id' => ['integer', 'int', 0, false, false, ],
38-
'product_id' => ['integer', 'int', 0, false, true, null, ],
39-
'purchase_order_id' => ['integer', 'int', 0, false, true, null, ],
40-
'quantity' => ['decimal(18,4)', 'float', 18, false, false, 0, ],
41-
'unit_price' => ['decimal(19,4)', 'float', 19, false, true, 0, ],
30+
// MYSQL_TYPE, PHP_TYPE, LENGTH, ALLOWS_NULL, DEFAULT
31+
'date_allocated' => ['datetime', 'string', 20, true, NULL, ],
32+
'discount' => ['double', 'float', 0, false, 0, ],
33+
'inventory_transaction_id' => ['integer', 'int', 0, true, NULL, ],
34+
'order_detail_id' => ['integer', 'int', 0, false, ],
35+
'order_detail_status_id' => ['integer', 'int', 0, true, NULL, ],
36+
'order_id' => ['integer', 'int', 0, false, ],
37+
'product_id' => ['integer', 'int', 0, true, NULL, ],
38+
'purchase_order_id' => ['integer', 'int', 0, true, NULL, ],
39+
'quantity' => ['decimal(18,4)', 'float', 18, false, 0.0000, ],
40+
'unit_price' => ['decimal(19,4)', 'float', 19, true, 0.0000, ],
4241
];
4342

4443
/** @var array<string> */

Tests/Fixtures/Record/Definition/Product.php

+14-15
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
* @property ?int $minimum_reorder_quantity MySQL type integer
1414
* @property ?string $product_code MySQL type varchar(25)
1515
* @property int $product_id MySQL type integer
16-
* @property \Tests\App\Record\Product $product related record
1716
* @property ?string $product_name MySQL type varchar(50)
1817
* @property ?string $quantity_per_unit MySQL type varchar(50)
1918
* @property ?int $reorder_level MySQL type integer
@@ -26,20 +25,20 @@ abstract class Product extends \PHPFUI\ORM\Record
2625

2726
/** @var array<string, array<mixed>> */
2827
protected static array $fields = [
29-
// MYSQL_TYPE, PHP_TYPE, LENGTH, KEY, ALLOWS_NULL, DEFAULT
30-
'attachments' => ['longblob', 'string', 0, false, true, 'NULL', ],
31-
'category' => ['varchar(50)', 'string', 50, false, true, 'NULL', ],
32-
'description' => ['longtext', 'string', 4294967295, false, true, 'NULL', ],
33-
'discontinued' => ['integer', 'int', 0, false, false, 0, ],
34-
'list_price' => ['decimal(19,4)', 'float', 19, false, false, 0, ],
35-
'minimum_reorder_quantity' => ['integer', 'int', 0, false, true, null, ],
36-
'product_code' => ['varchar(25)', 'string', 25, false, true, 'NULL', ],
37-
'product_id' => ['integer', 'int', 0, true, false, ],
38-
'product_name' => ['varchar(50)', 'string', 50, false, true, 'NULL', ],
39-
'quantity_per_unit' => ['varchar(50)', 'string', 50, false, true, 'NULL', ],
40-
'reorder_level' => ['integer', 'int', 0, false, true, null, ],
41-
'standard_cost' => ['decimal(19,4)', 'float', 19, false, true, 0, ],
42-
'target_level' => ['integer', 'int', 0, false, true, null, ],
28+
// MYSQL_TYPE, PHP_TYPE, LENGTH, ALLOWS_NULL, DEFAULT
29+
'attachments' => ['longblob', 'string', 0, true, NULL, ],
30+
'category' => ['varchar(50)', 'string', 50, true, NULL, ],
31+
'description' => ['longtext', 'string', 4294967295, true, NULL, ],
32+
'discontinued' => ['integer', 'int', 0, false, 0, ],
33+
'list_price' => ['decimal(19,4)', 'float', 19, false, 0.0000, ],
34+
'minimum_reorder_quantity' => ['integer', 'int', 0, true, NULL, ],
35+
'product_code' => ['varchar(25)', 'string', 25, true, NULL, ],
36+
'product_id' => ['integer', 'int', 0, false, ],
37+
'product_name' => ['varchar(50)', 'string', 50, true, NULL, ],
38+
'quantity_per_unit' => ['varchar(50)', 'string', 50, true, NULL, ],
39+
'reorder_level' => ['integer', 'int', 0, true, NULL, ],
40+
'standard_cost' => ['decimal(19,4)', 'float', 19, true, 0.0000, ],
41+
'target_level' => ['integer', 'int', 0, true, NULL, ],
4342
];
4443

4544
/** @var array<string> */
+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
<?php
2+
3+
namespace Tests\Fixtures\Record\Validation;
4+
5+
/**
6+
* Autogenerated. File will not be changed by oneOffScripts\generateValidators.php. Delete and rerun if you want.
7+
*/
8+
class Order extends \PHPFUI\ORM\Validator
9+
{
10+
/** @var array<string, string[]> */
11+
public static array $validators = [
12+
'customer_id' => ['integer'],
13+
'employee_id' => ['integer'],
14+
'notes' => ['maxlength'],
15+
'order_date' => ['required', 'maxlength', 'datetime'],
16+
'order_id' => ['integer'],
17+
'order_status_id' => ['integer'],
18+
'order_tax_status_id' => ['integer'],
19+
'paid_date' => ['maxlength', 'datetime'],
20+
'payment_type' => ['maxlength'],
21+
'ship_address' => ['maxlength'],
22+
'ship_city' => ['maxlength'],
23+
'ship_country_region' => ['maxlength'],
24+
'ship_name' => ['maxlength'],
25+
'ship_state_province' => ['maxlength'],
26+
'ship_zip_postal_code' => ['maxlength'],
27+
'shipped_date' => ['maxlength', 'datetime'],
28+
'shipper_id' => ['integer'],
29+
'shipping_fee' => ['number'],
30+
'tax_rate' => ['number'],
31+
'taxes' => ['number'],
32+
];
33+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<?php
2+
3+
namespace Tests\Fixtures\Record\Validation;
4+
5+
/**
6+
* Autogenerated. File will not be changed by oneOffScripts\generateValidators.php. Delete and rerun if you want.
7+
*/
8+
class OrderDetail extends \PHPFUI\ORM\Validator
9+
{
10+
/** @var array<string, string[]> */
11+
public static array $validators = [
12+
'date_allocated' => ['maxlength', 'datetime'],
13+
'discount' => ['required', 'number'],
14+
'inventory_transaction_id' => ['integer'],
15+
'order_detail_id' => ['integer'],
16+
'order_detail_status_id' => ['integer'],
17+
'order_id' => ['required', 'integer'],
18+
'product_id' => ['integer'],
19+
'purchase_order_id' => ['integer'],
20+
'quantity' => ['required', 'number'],
21+
'unit_price' => ['number'],
22+
];
23+
}

Tests/Unit/RecordTest.php

+6-6
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,12 @@ class RecordTest extends \PHPUnit\Framework\TestCase
77
public function testBadField() : void
88
{
99
$order = new \Tests\Fixtures\Record\Order();
10-
$this->assertFalse($order->loaded());
11-
$this->assertFalse(empty($order->ship_address));
12-
$order->ship_address = '';
13-
$this->assertTrue(empty($order->ship_address));
14-
$this->assertTrue(empty($order->fred));
15-
$this->assertFalse(isset($order->fred));
10+
$this->assertFalse($order->loaded(), 'Record should not be loaded');
11+
$this->assertTrue(empty($order->ship_address), 'ship_address should be empty');
12+
$order->ship_address = 'fred';
13+
$this->assertFalse(empty($order->ship_address), 'ship_address should be set');
14+
$this->assertTrue(empty($order->fred), 'fred should be empty');
15+
$this->assertFalse(isset($order->fred), 'fred should not exist');
1616
$this->expectException(\PHPFUI\ORM\Exception::class);
1717
$order->fred = 'Fred';
1818
}

Tests/Unit/ValidationTest.php

+4-4
Original file line numberDiff line numberDiff line change
@@ -1022,16 +1022,16 @@ public function testTime() : void
10221022
public function testUnique() : void
10231023
{
10241024
$crud = new \Tests\Fixtures\Record\Product(90);
1025-
$this->assertEquals('NWTCFV-90', $crud->product_code);
1025+
$this->assertEquals('NWTCFV-90', $crud->product_code, 'product_code should be NWTCFV-90');
10261026
$validator = new \Tests\Fixtures\Record\Validation\Product($crud);
10271027
// empty test
10281028
$validator->validate();
1029-
$this->assertEmpty($validator->getErrors());
1029+
$this->assertEmpty($validator->getErrors(), 'Validation produced errors');
10301030
$crud->product_code = 'NWTCFV-91';
10311031
$validator->validate();
10321032
$errors = $validator->getErrors();
1033-
$this->assertCount(1, $errors);
1034-
$this->assertContains('NWTCFV-91 is not unique', $errors['product_code']);
1033+
$this->assertCount(1, $errors, 'validation should produce one error');
1034+
$this->assertContains('NWTCFV-91 is not unique', $errors['product_code'], 'wrong validation error returned');
10351035
}
10361036

10371037
public function testUrl() : void

0 commit comments

Comments
 (0)