From 1278ebf0aa0788975ed6e389624bb2f8b1af1f03 Mon Sep 17 00:00:00 2001
From: Jens Segers <segers.jens@gmail.com>
Date: Sat, 19 Oct 2013 10:24:30 +0200
Subject: [PATCH] Adding seeder tests for #52

---
 README.md                          |  2 +-
 src/Jenssegers/Mongodb/Builder.php |  2 +-
 src/Jenssegers/Mongodb/Model.php   |  5 +++--
 tests/SeederTest.php               | 23 +++++++++++++++++++++++
 tests/bootstrap.php                |  3 ++-
 tests/seeds/DatabaseSeeder.php     | 16 ++++++++++++++++
 tests/seeds/UserTableSeeder.php    | 14 ++++++++++++++
 7 files changed, 60 insertions(+), 5 deletions(-)
 create mode 100644 tests/SeederTest.php
 create mode 100644 tests/seeds/DatabaseSeeder.php
 create mode 100644 tests/seeds/UserTableSeeder.php

diff --git a/README.md b/README.md
index 5a9a202..38ac9b8 100644
--- a/README.md
+++ b/README.md
@@ -102,7 +102,7 @@ Supported operations are:
  - create and drop
  - collection
  - hasCollection
- - index and dropIndex
+ - index and dropIndex (compound indexes supported as well)
  - unique
  - background, sparse, expire (MongoDB specific)
 
diff --git a/src/Jenssegers/Mongodb/Builder.php b/src/Jenssegers/Mongodb/Builder.php
index 1c1d0fe..21efbf4 100644
--- a/src/Jenssegers/Mongodb/Builder.php
+++ b/src/Jenssegers/Mongodb/Builder.php
@@ -129,7 +129,7 @@ class Builder extends \Illuminate\Database\Query\Builder {
 
             // Build pipeline
             $pipeline = array();
-            if ($wheres)  $pipeline[] = array('$match' => $wheres);
+            if ($wheres) $pipeline[] = array('$match' => $wheres);
             $pipeline[] = array('$group' => $group);
 
             // Apply order and limit
diff --git a/src/Jenssegers/Mongodb/Model.php b/src/Jenssegers/Mongodb/Model.php
index bbefcc4..f52c875 100644
--- a/src/Jenssegers/Mongodb/Model.php
+++ b/src/Jenssegers/Mongodb/Model.php
@@ -228,7 +228,7 @@ abstract class Model extends \Illuminate\Database\Eloquent\Model {
         {
             $this->__unset($column);
         }
-        
+
         // Perform unset only on current document
         return $query = $this->newQuery()->where($this->getKeyName(), $this->getKey())->unset($columns);
     }
@@ -242,6 +242,7 @@ abstract class Model extends \Illuminate\Database\Eloquent\Model {
      */
     public function __call($method, $parameters)
     {
+        // Unset method
         if ($method == 'unset')
         {
             return call_user_func_array(array($this, 'dropColumn'), $parameters);
@@ -250,4 +251,4 @@ abstract class Model extends \Illuminate\Database\Eloquent\Model {
         return parent::__call($method, $parameters);
     }
 
-}
\ No newline at end of file
+}
diff --git a/tests/SeederTest.php b/tests/SeederTest.php
new file mode 100644
index 0000000..6313a61
--- /dev/null
+++ b/tests/SeederTest.php
@@ -0,0 +1,23 @@
+<?php
+
+use Illuminate\Support\Facades\DB;
+
+class SeederTest extends PHPUnit_Framework_TestCase {
+
+	public function setUp() {}
+
+	public function tearDown()
+	{
+		User::truncate();
+	}
+
+	public function testSeed()
+	{
+		$seeder = new UserTableSeeder;
+		$seeder->run();
+
+		$user = User::where('name', 'John Doe')->first();
+		$this->assertTrue($user->seed);
+	}
+
+}
diff --git a/tests/bootstrap.php b/tests/bootstrap.php
index 76741c8..8979a14 100644
--- a/tests/bootstrap.php
+++ b/tests/bootstrap.php
@@ -1,6 +1,7 @@
 <?php
 $loader = require 'vendor/autoload.php';
 $loader->add('', 'tests/models');
+$loader->add('', 'tests/seeds');
 
 use Jenssegers\Mongodb\Model;
 use Illuminate\Support\Facades\DB;
@@ -42,4 +43,4 @@ $app['db']->extend('mongodb', array($reflection, 'newInstance'));
 
 # Static setup
 Model::setConnectionResolver($app['db']);
-DB::setFacadeApplication($app);
\ No newline at end of file
+DB::setFacadeApplication($app);
diff --git a/tests/seeds/DatabaseSeeder.php b/tests/seeds/DatabaseSeeder.php
new file mode 100644
index 0000000..9df67cd
--- /dev/null
+++ b/tests/seeds/DatabaseSeeder.php
@@ -0,0 +1,16 @@
+<?php
+
+use Illuminate\Database\Seeder;
+
+class DatabaseSeeder extends Seeder {
+
+    /**
+     * Run the database seeds.
+     *
+     * @return void
+     */
+    public function run()
+    {
+        $this->call('UserTableSeeder');
+    }
+}
diff --git a/tests/seeds/UserTableSeeder.php b/tests/seeds/UserTableSeeder.php
new file mode 100644
index 0000000..b708ce9
--- /dev/null
+++ b/tests/seeds/UserTableSeeder.php
@@ -0,0 +1,14 @@
+<?php
+
+use Illuminate\Database\Seeder;
+use Illuminate\Support\Facades\DB;
+
+class UserTableSeeder extends Seeder {
+
+    public function run()
+    {
+        DB::collection('users')->delete();
+
+        DB::collection('users')->insert(array('name' => 'John Doe', 'seed' => true));
+    }
+}
-- 
2.18.1