Skip to content

Instantly share code, notes, and snippets.

@stephenfrank
Last active December 15, 2015 11:49
Show Gist options
  • Select an option

  • Save stephenfrank/5255576 to your computer and use it in GitHub Desktop.

Select an option

Save stephenfrank/5255576 to your computer and use it in GitHub Desktop.
WhereExistsRelatedClosureTest
<?php
class WhereExistsRelatedClosureTest extends TestCase {
public function testBelongsToMany()
{
$users = User::whereExistsRelated('roles', 3)->get();
$this->assertEquals(count($users), 1);
$users_2 = User::whereExistsRelated('roles', function ($query, $pivot)
{
$query->where('roles.id', '>', 1);
})->get();
$this->assertEquals(count($users_2), 2);
}
public function testBelongsTo()
{
$users = User::whereExistsRelated('group', 2)->get();
$this->assertEquals(count($users), 2);
$users_2 = User::whereExistsRelated('group', function ($query, $pivot)
{
$query->where('groups.id', '=', 1);
})->get();
$this->assertEquals(count($users_2), 1);
}
public function testHasOne()
{
$users = User::whereExistsRelated('userMeta', function ($query)
{
$query->where('name', '=', 'Joe');
})->get();
$this->assertEquals(count($users), 1);
}
public function testHasMany()
{
$users = Group::whereExistsRelated('users', function ($query)
{
$query->where('username', '=', 'joesoap2');
})->get();
$this->assertEquals(count($users), 1);
}
}
class WhereExistsRelatedTest extends TestCase {
public function testBelongsToMany()
{
$users = User2::whereExistsRelated('roles')->get();
$this->assertEquals(count($users), 3);
}
public function testBelongsTo()
{
$users = User2::whereExistsRelated('group')->get();
$this->assertEquals(count($users), 3);
}
public function testHasOne()
{
$users = User2::whereExistsRelated('userMeta')->get();
$this->assertEquals(count($users), 2);
}
public function testHasMany()
{
$groups = Group2::whereExistsRelated('users')->get();
$this->assertEquals(count($groups), 2);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment