Skip to content

Update tests #408

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Apr 12, 2025
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions tests/ActiveQueryTest.php
Original file line number Diff line number Diff line change
@@ -2222,8 +2222,8 @@ public function testIsPropertyChanged(): void
$query = new ActiveQuery(Customer::class);

$customer = $query->findOne(1);
$this->assertEquals(true, $customer->get('bool_status'));
$this->assertEquals(true, $customer->oldValue('bool_status'));
$this->assertTrue($customer->get('bool_status'));
$this->assertTrue($customer->oldValue('bool_status'));

$customer->set('bool_status', 1);

41 changes: 19 additions & 22 deletions tests/ActiveRecordTest.php
Original file line number Diff line number Diff line change
@@ -162,12 +162,12 @@ public function testDefaultValues(): void

$arClass->loadDefaultValues();

$this->assertEquals(1, $arClass->int_col2);
$this->assertEquals('something', $arClass->char_col2);
$this->assertEquals(1.23, $arClass->float_col2);
$this->assertEquals(33.22, $arClass->numeric_col);
$this->assertSame(1, $arClass->int_col2);
$this->assertSame('something', $arClass->char_col2);
$this->assertSame(1.23, $arClass->float_col2);
$this->assertSame(33.22, $arClass->numeric_col);
$this->assertTrue($arClass->bool_col2);
$this->assertEquals('2002-01-01 00:00:00', $arClass->time);
$this->assertSame('2002-01-01 00:00:00', $arClass->time);

if ($this->db()->getDriverName() !== 'mysql') {
$this->assertSame(['a' => 1], $arClass->json_col);
@@ -177,13 +177,13 @@ public function testDefaultValues(): void
$arClass->char_col2 = 'not something';

$arClass->loadDefaultValues();
$this->assertEquals('not something', $arClass->char_col2);
$this->assertSame('not something', $arClass->char_col2);

$arClass = new Type();
$arClass->char_col2 = 'not something';

$arClass->loadDefaultValues(false);
$this->assertEquals('something', $arClass->char_col2);
$this->assertSame('something', $arClass->char_col2);
}

public function testCastValues(): void
@@ -219,8 +219,8 @@ public function testCastValues(): void
$this->assertSame('test123', $query->char_col3);
$this->assertSame(3.742, $query->float_col);
$this->assertSame(42.1337, $query->float_col2);
$this->assertEquals(true, $query->bool_col);
$this->assertEquals(false, $query->bool_col2);
$this->assertTrue($query->bool_col);
$this->assertFalse($query->bool_col2);
$this->assertSame(['a' => 'b', 'c' => null, 'd' => [1, 2, 3]], $query->json_col);
}

@@ -452,12 +452,9 @@ public function testSetProperties(): void
'name' => 'samdark',
'address' => 'rusia',
'status' => 1,
'bool_status' => true,
];

if ($this->db()->getDriverName() === 'pgsql') {
$properties['bool_status'] = true;
}

$properties['profile_id'] = null;

$customer = new Customer();
@@ -564,25 +561,25 @@ public function testBooleanProperty(): void

$customer->setName('boolean customer');
$customer->setEmail('mail@example.com');
$customer->setStatus(1);
$customer->setBoolStatus(true);

$customer->save();
$customer->refresh();
$this->assertEquals(1, $customer->getStatus());
$this->assertTrue($customer->getBoolStatus());

$customer->setStatus(0);
$customer->setBoolStatus(false);
$customer->save();

$customer->refresh();
$this->assertEquals(0, $customer->getStatus());
$this->assertFalse($customer->getBoolStatus());

$customerQuery = new ActiveQuery(Customer::class);
$customers = $customerQuery->where(['status' => 1])->all();
$customers = $customerQuery->where(['bool_status' => true])->all();
$this->assertCount(2, $customers);

$customerQuery = new ActiveQuery(Customer::class);
$customers = $customerQuery->where(['status' => 0])->all();
$this->assertCount(1, $customers);
$customers = $customerQuery->where(['bool_status' => false])->all();
$this->assertCount(2, $customers);
}

public function testPropertyAccess(): void
@@ -823,7 +820,7 @@ public function testGetDirtyValuesOnNewRecord(): void
$customer->set('email', 'adam@example.com');
$customer->set('address', null);

$this->assertEquals([], $customer->newValues([]));
$this->assertSame([], $customer->newValues([]));

$this->assertEquals(
[
@@ -836,7 +833,7 @@ public function testGetDirtyValuesOnNewRecord(): void
],
$customer->newValues()
);
$this->assertEquals(
$this->assertSame(
[
'email' => 'adam@example.com',
'address' => null,
80 changes: 0 additions & 80 deletions tests/Driver/Oracle/ActiveQueryFindTest.php
Original file line number Diff line number Diff line change
@@ -6,8 +6,6 @@

use Yiisoft\ActiveRecord\ActiveQuery;
use Yiisoft\ActiveRecord\Tests\Driver\Oracle\Stubs\Customer as CustomerWithRownumid;
use Yiisoft\ActiveRecord\Tests\Stubs\ActiveRecord\Customer;
use Yiisoft\ActiveRecord\Tests\Stubs\ActiveRecord\Order;
use Yiisoft\ActiveRecord\Tests\Support\OracleHelper;
use Yiisoft\Db\Connection\ConnectionInterface;

@@ -68,82 +66,4 @@ public function testFindLimit(): void
$customer = $customerQuery->offset(3)->one();
$this->assertNull($customer);
}

public function testFindEager(): void
{
$this->checkFixture($this->db(), 'customer', true);

$customerQuery = new ActiveQuery(Customer::class);
$customers = $customerQuery->with('orders')->indexBy('id')->all();

ksort($customers);
$this->assertCount(3, $customers);
$this->assertTrue($customers[1]->isRelationPopulated('orders'));
$this->assertTrue($customers[2]->isRelationPopulated('orders'));
$this->assertTrue($customers[3]->isRelationPopulated('orders'));
$this->assertCount(1, $customers[1]->getOrders());
$this->assertCount(2, $customers[2]->getOrders());
$this->assertCount(0, $customers[3]->getOrders());

$customers[1]->resetRelation('orders');
$this->assertFalse($customers[1]->isRelationPopulated('orders'));

$customer = $customerQuery->where(['id' => 1])->with('orders')->one();
$this->assertTrue($customer->isRelationPopulated('orders'));
$this->assertCount(1, $customer->getOrders());
$this->assertCount(1, $customer->getRelatedRecords());

/** multiple with() calls */
$orderQuery = new ActiveQuery(Order::class);
$orders = $orderQuery->with('customer', 'items')->all();
$this->assertCount(3, $orders);
$this->assertTrue($orders[0]->isRelationPopulated('customer'));
$this->assertTrue($orders[0]->isRelationPopulated('items'));

$orders = $orderQuery->with('customer')->with('items')->all();
$this->assertCount(3, $orders);
$this->assertTrue($orders[0]->isRelationPopulated('customer'));
$this->assertTrue($orders[0]->isRelationPopulated('items'));
}

public function testFindAsArray(): void
{
$this->checkFixture($this->db(), 'customer');

/** asArray */
$customerQuery = new ActiveQuery(Customer::class);
$customer = $customerQuery->where(['[[id]]' => 2])->asArray()->one();
$this->assertEquals([
'id' => 2,
'email' => 'user2@example.com',
'name' => 'user2',
'address' => 'address2',
'status' => 1,
'profile_id' => null,
'bool_status' => true,
], $customer);

/** find all asArray */
$customerQuery = new ActiveQuery(Customer::class);
$customers = $customerQuery->asArray()->all();
$this->assertCount(3, $customers);
$this->assertArrayHasKey('id', $customers[0]);
$this->assertArrayHasKey('name', $customers[0]);
$this->assertArrayHasKey('email', $customers[0]);
$this->assertArrayHasKey('address', $customers[0]);
$this->assertArrayHasKey('status', $customers[0]);
$this->assertArrayHasKey('bool_status', $customers[0]);
$this->assertArrayHasKey('id', $customers[1]);
$this->assertArrayHasKey('name', $customers[1]);
$this->assertArrayHasKey('email', $customers[1]);
$this->assertArrayHasKey('address', $customers[1]);
$this->assertArrayHasKey('status', $customers[1]);
$this->assertArrayHasKey('bool_status', $customers[1]);
$this->assertArrayHasKey('id', $customers[2]);
$this->assertArrayHasKey('name', $customers[2]);
$this->assertArrayHasKey('email', $customers[2]);
$this->assertArrayHasKey('address', $customers[2]);
$this->assertArrayHasKey('status', $customers[2]);
$this->assertArrayHasKey('bool_status', $customers[2]);
}
}
14 changes: 0 additions & 14 deletions tests/Driver/Oracle/ActiveQueryTest.php
Original file line number Diff line number Diff line change
@@ -7,7 +7,6 @@
use Throwable;
use Yiisoft\ActiveRecord\ActiveQuery;
use Yiisoft\ActiveRecord\Tests\Driver\Oracle\Stubs\Order;
use Yiisoft\ActiveRecord\Tests\Driver\Oracle\Stubs\BitValues;
use Yiisoft\ActiveRecord\Tests\Support\OracleHelper;
use Yiisoft\Db\Connection\ConnectionInterface;
use Yiisoft\Db\Exception\Exception;
@@ -388,17 +387,4 @@ public function testJoinWithSameTable(): void
$this->assertEquals(2, $orders[0]->getId());
$this->assertTrue($orders[0]->isRelationPopulated('itemsIndexed'));
}

public function testBit(): void
{
$this->checkFixture($this->db(), 'bit_values');

$bitValueQuery = new ActiveQuery(BitValues::class);
$falseBit = $bitValueQuery->findOne(1);
$this->assertSame('0', $falseBit->val);

$bitValueQuery = new ActiveQuery(BitValues::class);
$trueBit = $bitValueQuery->findOne(2);
$this->assertSame('1', $trueBit->val);
}
}
28 changes: 14 additions & 14 deletions tests/Driver/Oracle/ActiveRecordTest.php
Original file line number Diff line number Diff line change
@@ -29,25 +29,25 @@ public function testDefaultValues(): void

$arClass = new Type();
$arClass->loadDefaultValues();
$this->assertEquals(1, $arClass->int_col2);
$this->assertEquals('something', $arClass->char_col2);
$this->assertEquals(1.23, $arClass->float_col2);
$this->assertEquals(33.22, $arClass->numeric_col);
$this->assertEquals('1', $arClass->bool_col2);
$this->assertSame(1, $arClass->int_col2);
$this->assertSame('something', $arClass->char_col2);
$this->assertSame(1.23, $arClass->float_col2);
$this->assertSame(33.22, $arClass->numeric_col);
$this->assertTrue($arClass->bool_col2);

// not testing $arClass->time, because oci\Schema can't read default value

$arClass = new Type();
$arClass->char_col2 = 'not something';

$arClass->loadDefaultValues();
$this->assertEquals('not something', $arClass->char_col2);
$this->assertSame('not something', $arClass->char_col2);

$arClass = new Type();
$arClass->char_col2 = 'not something';

$arClass->loadDefaultValues(false);
$this->assertEquals('something', $arClass->char_col2);
$this->assertSame('something', $arClass->char_col2);
}

/**
@@ -63,24 +63,24 @@ public function testBooleanProperty(): void

$customer->setName('boolean customer');
$customer->setEmail('mail@example.com');
$customer->setStatus(1);
$customer->setBoolStatus(true);

$customer->save();
$customer->refresh();
$this->assertEquals(1, $customer->getStatus());
$this->assertTrue($customer->getBoolStatus());

$customer->setStatus(0);
$customer->setBoolStatus(false);
$customer->save();

$customer->refresh();
$this->assertEquals(0, $customer->getStatus());
$this->assertFalse($customer->getBoolStatus());

$customerQuery = new ActiveQuery(Customer::class);
$customers = $customerQuery->where(['status' => 1])->all();
$customers = $customerQuery->where(['bool_status' => '1'])->all();
$this->assertCount(2, $customers);

$customerQuery = new ActiveQuery(Customer::class);
$customers = $customerQuery->where(['status' => '0'])->all();
$this->assertCount(1, $customers);
$customers = $customerQuery->where(['bool_status' => '0'])->all();
$this->assertCount(2, $customers);
}
}
45 changes: 0 additions & 45 deletions tests/Driver/Oracle/ArrayableTraitTest.php
Original file line number Diff line number Diff line change
@@ -4,9 +4,6 @@

namespace Yiisoft\ActiveRecord\Tests\Driver\Oracle;

use Yiisoft\ActiveRecord\ActiveQuery;
use Yiisoft\ActiveRecord\Tests\Driver\Oracle\Stubs\Customer;
use Yiisoft\ActiveRecord\Tests\Stubs\ActiveRecord\CustomerClosureField;
use Yiisoft\ActiveRecord\Tests\Support\OracleHelper;
use Yiisoft\Db\Connection\ConnectionInterface;

@@ -16,46 +13,4 @@ protected function createConnection(): ConnectionInterface
{
return (new OracleHelper())->createConnection();
}

public function testToArray(): void
{
$this->checkFixture($this->db(), 'customer', true);

$customerQuery = new ActiveQuery(Customer::class);
$customer = $customerQuery->findOne(1);

$this->assertSame(
[
'id' => 1,
'email' => 'user1@example.com',
'name' => 'user1',
'address' => 'address1',
'status' => 1,
'bool_status' => '1',
'profile_id' => 1,
],
$customer->toArray(),
);
}

public function testToArrayWithClosure(): void
{
$this->checkFixture($this->db(), 'customer', true);

$customerQuery = new ActiveQuery(CustomerClosureField::class);
$customer = $customerQuery->findOne(1);

$this->assertSame(
[
'id' => 1,
'email' => 'user1@example.com',
'name' => 'user1',
'address' => 'address1',
'status' => 'active',
'bool_status' => '1',
'profile_id' => 1,
],
$customer->toArray(),
);
}
}
Loading