QueryTest.php 1.91 KB
Newer Older
Jens Segers's avatar
Jens Segers committed
1
<?php
2
require_once('tests/app.php');
Jens Segers's avatar
Jens Segers committed
3

Jens Segers's avatar
Jens Segers committed
4
use Jenssegers\Mongodb\Facades\DB;
Jens Segers's avatar
Jens Segers committed
5 6 7

class QueryTest extends PHPUnit_Framework_TestCase {

8
	public function setUp() {}
Jens Segers's avatar
Jens Segers committed
9 10 11

	public function tearDown()
	{
Jens Segers's avatar
Jens Segers committed
12
		DB::collection('users')->truncate();
Jens Segers's avatar
Jens Segers committed
13
		DB::collection('items')->truncate();
Jens Segers's avatar
Jens Segers committed
14 15
	}

Jens Segers's avatar
Jens Segers committed
16
	public function testCollection()
Jens Segers's avatar
Jens Segers committed
17
	{
Jens Segers's avatar
Jens Segers committed
18
		$this->assertInstanceOf('Jenssegers\Mongodb\Builder', DB::collection('users'));
19 20 21 22
	}

	public function testInsert()
	{
Jens Segers's avatar
Jens Segers committed
23
		$user = array('name' => 'John Doe');
Jens Segers's avatar
Jens Segers committed
24
		DB::collection('users')->insert($user);
25

Jens Segers's avatar
Jens Segers committed
26
		$users = DB::collection('users')->get();
Jens Segers's avatar
Jens Segers committed
27
		$this->assertEquals(1, count($users));
28

Jens Segers's avatar
Jens Segers committed
29
		$user = DB::collection('users')->first();
Jens Segers's avatar
Jens Segers committed
30
		$this->assertEquals('John Doe', $user['name']);
31 32
	}

Jens Segers's avatar
Jens Segers committed
33
	public function testFind()
34
	{
Jens Segers's avatar
Jens Segers committed
35
		$user = array('name' => 'John Doe');
Jens Segers's avatar
Jens Segers committed
36
		$id = DB::collection('users')->insertGetId($user);
37 38 39

		$this->assertNotNull($id);
		$this->assertTrue(is_string($id));
Jens Segers's avatar
Jens Segers committed
40

Jens Segers's avatar
Jens Segers committed
41
		$user = DB::collection('users')->find($id);
Jens Segers's avatar
Jens Segers committed
42
		$this->assertEquals('John Doe', $user['name']);
43 44
	}

Jens Segers's avatar
Jens Segers committed
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
	public function testSubKey()
	{
		$user1 = array(
			'name' => 'John Doe',
			'address' => array(
				'country' => 'Belgium',
				'city' => 'Ghent'
				)
			);

		$user2 = array(
			'name' => 'Jane Doe',
			'address' => array(
				'country' => 'France',
				'city' => 'Paris'
				)
			);

		DB::collection('users')->insert(array($user1, $user2));

		$users = DB::collection('users')->where('address.country', 'Belgium')->get();
		$this->assertEquals(1, count($users));
67
		$this->assertEquals('John Doe', $users[0]['name']);
Jens Segers's avatar
Jens Segers committed
68 69
	}

Jens Segers's avatar
Jens Segers committed
70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
	public function testInArray()
	{
		$item1 = array(
			'tags' => array('tag1', 'tag2', 'tag3', 'tag4')
			);

		$item2 = array(
			'tags' => array('tag2')
			);

		DB::collection('items')->insert(array($item1, $item2));

		$items = DB::collection('items')->where('tags', 'tag2')->get();
		$this->assertEquals(2, count($items));

		$items = DB::collection('items')->where('tags', 'tag1')->get();
		$this->assertEquals(1, count($items));
	}

Jens Segers's avatar
Jens Segers committed
89
}