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