public function testSubqueryIn() { $qs = Group::objects()->filter(['id' => 1]); $users = User::objects()->filter(['groups__pk__in' => $qs->select('id')])->all(); $this->assertEquals(count($users), 1); $this->assertEquals($users[0]->username, 'Max'); }
public function testIssue20() { $qs = User::objects()->with(['addresses'])->asArray(); $this->assertEquals([['customer' => ['id' => 1, 'user_id' => 1, 'address' => 'address'], 'id' => 1, 'username' => 'foo', 'password' => '', 'user_id' => 1], ['customer' => ['id' => null, 'user_id' => null, 'address' => ''], 'id' => 2, 'username' => 'bar', 'password' => '', 'user_id' => '']], $qs->all()); $qs = User::objects()->filter(['addresses__address' => 'address'])->with(['addresses'])->asArray(); $this->assertEquals([['customer' => ['id' => 1, 'user_id' => 1, 'address' => 'address'], 'id' => 1, 'username' => 'foo', 'password' => '', 'user_id' => 1]], $qs->all()); }
public function testIssue25() { $this->assertEquals(2, User::objects()->count()); $qs = User::objects()->filter(['addresses__address' => 'address']); $this->assertEquals(1, $qs->count()); User::objects()->filter(['addresses__address' => 'address'])->delete(); $this->assertEquals(1, User::objects()->count()); }
public function testLookupsClean1() { $filter = ['addresses__address__contains' => 'Anton']; $count = 1; $qs = User::objects()->filter($filter); $this->assertEquals($count, $qs->count()); $this->assertEquals($count, count($qs->all())); }
public function testInit() { $this->assertEquals(5, Product::objects()->count()); $this->assertEquals(1, Category::objects()->count()); $this->assertEquals(1, User::objects()->count()); $this->assertEquals(1, Customer::objects()->count()); $this->assertEquals(1, Order::objects()->count()); $this->assertEquals(5, Order::objects()->get(['pk' => 1])->products->count()); $this->assertEquals(1, ProductList::objects()->count()); }
public function testIssue63() { $this->assertEquals(2, User::objects()->count()); foreach (User::objects()->all() as $i => $user) { $customer = Customer::objects()->get(['pk' => $i + 1]); $customer->user = $user; $customer->save(['user']); } $this->assertEquals(2, Customer::objects()->count()); list($first, $last) = Customer::objects()->order(['pk'])->asArray()->all(); $this->assertEquals(['id' => 1, 'user_id' => 1, 'address' => 'foo'], $first); $this->assertEquals(['id' => 2, 'user_id' => 2, 'address' => 'bar'], $last); $this->assertEquals(1, Customer::objects()->filter(['user__username' => 'foo'])->count()); $this->assertEquals(1, Customer::objects()->filter(['user__username' => 'bar'])->count()); }
public function testIssue19() { $this->assertEquals('SELECT `tests_user_1`.* FROM `tests_user` `tests_user_1` WHERE (`tests_user_1`.`id`=6) LIMIT 1', User::objects()->limit(1)->getSql(['id' => 6])); $this->assertEquals('SELECT `tests_user_1`.* FROM `tests_user` `tests_user_1` WHERE ((`tests_user_1`.`id`=6)) LIMIT 1', User::objects()->filter(['id' => 6])->limit(1)->getSql()); }
public function testSetAttributesIssue65() { list($model, $created) = User::objects()->getOrCreate(['username' => 'Max', 'password' => 'VeryGoodP@ssword']); $this->assertFalse($model->getIsNewRecord()); $this->assertEquals('Max', $model->username); $this->assertEquals('VeryGoodP@ssword', $model->password); $this->assertEquals(1, $model->pk); $model->setAttributes(['username' => 'foo']); $saved = $model->save(['username']); $this->assertTrue($saved); $this->assertEquals('foo', $model->username); // Test $user = User::objects()->get(['pk' => 1]); $this->assertEquals('foo', $user->username); $user->setAttributes(['username' => 'bar']); $this->assertEquals('bar', $user->username); $this->assertEquals(['username' => 'bar'], $user->getDirtyAttributes(['username'])); $saved = $user->save(['username']); $this->assertEquals('bar', $user->username); $this->assertTrue($saved); $user->setAttributes(['password' => 1]); $this->assertEquals(['password' => 1], $user->getDirtyAttributes(['password'])); $user->save(['password']); $this->assertEquals(1, $user->password); $this->assertTrue($saved); }
public function testCreate() { $user = User::objects()->get(['pk' => 1]); Customer::objects()->create(['user' => $user, 'address' => 'Broadway']); Customer::objects()->create(['user_id' => $user->id, 'address' => 'Broadway']); $address1 = Customer::objects()->get(['pk' => 3]); $address2 = Customer::objects()->get(['pk' => 4]); $this->assertEquals($user->id, $address1->user->id); $this->assertEquals($user->id, $address2->user_id); }
public function testManyToManyLookup() { $users = User::objects()->order(['-groups__name'])->all(); $this->assertEquals(count($users), 2); $this->assertEquals($users[0]->username, 'Anton'); $this->assertEquals($users[1]->username, 'Max'); $addresses = User::objects()->order(['groups__name'])->all(); $this->assertEquals(count($users), 2); $this->assertEquals($addresses[0]->username, 'Max'); $this->assertEquals($addresses[1]->username, 'Anton'); }
public function testSum() { $this->assertEquals(User::objects()->sum('id'), 3); $this->assertEquals(User::objects()->filter(['addresses__address__startswith' => 'A'])->sum('addresses__id'), 3); }