ConnectionTest.php 1.63 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

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

class ConnectionTest extends PHPUnit_Framework_TestCase {

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

11
	public function tearDown() {}
Jens Segers's avatar
Jens Segers committed
12

13
	public function testConnection()
Jens Segers's avatar
Jens Segers committed
14
	{
15 16 17 18 19 20 21 22 23 24
		$connection = DB::connection('mongodb');
		$this->assertInstanceOf('Jenssegers\Mongodb\Connection', $connection);

		$c1 = DB::connection('mongodb');
		$c2 = DB::connection('mongodb');
		$this->assertEquals($c1, $c2);

		$c1 = DB::connection('mongodb');
		$c2 = DB::reconnect('mongodb');
		$this->assertNotEquals($c1, $c2);
Jens Segers's avatar
Jens Segers committed
25 26 27 28
	}

	public function testDb()
	{
29
		$connection = DB::connection('mongodb');
30
		$this->assertInstanceOf('MongoDB', $connection->getMongoDB());
Jens Segers's avatar
Jens Segers committed
31 32 33 34
	}

	public function testCollection()
	{
35
		$collection = DB::connection('mongodb')->getCollection('unittest');
Jens Segers's avatar
Jens Segers committed
36 37
		$this->assertInstanceOf('MongoCollection', $collection);

38
		$collection = DB::connection('mongodb')->collection('unittests');
Jens Segers's avatar
Jens Segers committed
39 40
		$this->assertInstanceOf('Jenssegers\Mongodb\Builder', $collection);

41
		$collection = DB::connection('mongodb')->table('unittests');
Jens Segers's avatar
Jens Segers committed
42 43 44 45 46
		$this->assertInstanceOf('Jenssegers\Mongodb\Builder', $collection);
	}

	public function testDynamic()
	{
47
		$dbs = DB::connection('mongodb')->listCollections();
Jens Segers's avatar
Jens Segers committed
48
		$this->assertTrue(is_array($dbs));
Jens Segers's avatar
Jens Segers committed
49 50
	}

51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
	public function testMultipleConnections()
	{
		global $app;

		# Add fake host
		$db = $app['config']['database.connections']['mongodb'];
		$db['host'] = array($db['host'], '1.2.3.4');

		$connection = new Connection($db);
		$mongoclient = $connection->getMongoClient();

		$hosts = $mongoclient->getHosts();
		$this->assertEquals(1, count($hosts));
	}

Jens Segers's avatar
Jens Segers committed
66
}