Commit 8a2c3a26 authored by Jens Segers's avatar Jens Segers

Fixed soft deletion and date bugs

parent 6d9ca96f
......@@ -461,8 +461,7 @@ class Builder extends \Illuminate\Database\Query\Builder {
*/
public function newQuery()
{
$connection = $this->getConnection();
return new Builder($connection);
return new Builder($this->connection);
}
}
<?php namespace Jenssegers\Mongodb;
use Jenssegers\Mongodb\DatabaseManager as Resolver;
use Illuminate\Database\Eloquent\Collection;
use Jenssegers\Mongodb\DatabaseManager as Resolver;
use Jenssegers\Mongodb\Builder as QueryBuilder;
use DateTime;
......@@ -67,6 +67,26 @@ abstract class Model extends \Illuminate\Database\Eloquent\Model {
return new DateTime($value);
}
/**
* Get a fresh timestamp for the model.
*
* @return DateTime
*/
public function freshTimestamp()
{
return new MongoDate;
}
/**
* Get the fully qualified "deleted at" column.
*
* @return string
*/
public function getQualifiedDeletedAtColumn()
{
return $this->getDeletedAtColumn();
}
/**
* Get the table associated with the model.
*
......@@ -86,8 +106,7 @@ abstract class Model extends \Illuminate\Database\Eloquent\Model {
*/
protected function newBaseQueryBuilder()
{
$connection = $this->getConnection();
return new QueryBuilder($connection);
return new QueryBuilder($this->getConnection());
}
}
\ No newline at end of file
<?php
require_once('vendor/autoload.php');
require_once('models/User.php');
require_once('models/Soft.php');
use Jenssegers\Mongodb\Connection;
use Jenssegers\Mongodb\Model;
......@@ -17,11 +18,12 @@ class ModelTest extends PHPUnit_Framework_TestCase {
public function tearDown()
{
User::truncate();
Soft::truncate();
}
public function testNewModel()
{
$user = new User();
$user = new User;
$this->assertInstanceOf('Jenssegers\Mongodb\Model', $user);
$this->assertEquals(false, $user->exists);
$this->assertEquals('users', $user->getTable());
......@@ -31,7 +33,7 @@ class ModelTest extends PHPUnit_Framework_TestCase {
public function testInsert()
{
$user = new User();
$user = new User;
$user->name = "John Doe";
$user->title = "admin";
$user->age = 35;
......@@ -43,6 +45,7 @@ class ModelTest extends PHPUnit_Framework_TestCase {
$this->assertInstanceOf('MongoId', $user->_id);
$this->assertNotEquals('', (string) $user->_id);
$this->assertNotEquals(0, strlen((string) $user->_id));
$this->assertInstanceOf('DateTime', $user->created_at);
$this->assertEquals("John Doe", $user->name);
$this->assertEquals(35, $user->age);
......@@ -50,7 +53,7 @@ class ModelTest extends PHPUnit_Framework_TestCase {
public function testUpdate()
{
$user = new User();
$user = new User;
$user->name = "John Doe";
$user->title = "admin";
$user->age = 35;
......@@ -62,6 +65,8 @@ class ModelTest extends PHPUnit_Framework_TestCase {
$check->save();
$this->assertEquals(true, $check->exists);
$this->assertInstanceOf('DateTime', $user->created_at);
$this->assertInstanceOf('DateTime', $check->updated_at);
$this->assertEquals(1, User::count());
$this->assertEquals("John Doe", $check->name);
......@@ -70,7 +75,7 @@ class ModelTest extends PHPUnit_Framework_TestCase {
public function testDelete()
{
$user = new User();
$user = new User;
$user->name = "John Doe";
$user->title = "admin";
$user->age = 35;
......@@ -86,13 +91,13 @@ class ModelTest extends PHPUnit_Framework_TestCase {
public function testAll()
{
$user = new User();
$user = new User;
$user->name = "John Doe";
$user->title = "admin";
$user->age = 35;
$user->save();
$user = new User();
$user = new User;
$user->name = "Jane Doe";
$user->title = "user";
$user->age = 32;
......@@ -107,7 +112,7 @@ class ModelTest extends PHPUnit_Framework_TestCase {
public function testFind()
{
$user = new User();
$user = new User;
$user->name = "John Doe";
$user->title = "admin";
$user->age = 35;
......@@ -117,6 +122,7 @@ class ModelTest extends PHPUnit_Framework_TestCase {
$this->assertInstanceOf('Jenssegers\Mongodb\Model', $check);
$this->assertEquals(true, $check->exists);
$this->assertEquals($user->_id, $check->_id);
$this->assertEquals("John Doe", $check->name);
$this->assertEquals(35, $check->age);
......@@ -142,7 +148,7 @@ class ModelTest extends PHPUnit_Framework_TestCase {
public function testDestroy()
{
$user = new User();
$user = new User;
$user->name = "John Doe";
$user->title = "admin";
$user->age = 35;
......@@ -155,7 +161,7 @@ class ModelTest extends PHPUnit_Framework_TestCase {
public function testTouch()
{
$user = new User();
$user = new User;
$user->name = "John Doe";
$user->title = "admin";
$user->age = 35;
......@@ -164,11 +170,30 @@ class ModelTest extends PHPUnit_Framework_TestCase {
$old = $user->updated_at;
sleep(1);
$user->touch();
$check = User::find($user->_id);
$this->assertNotEquals($old, $check->updated_at);
}
public function testSoftDelete()
{
$user = new Soft;
$user->name = "Softy";
$user->save();
$this->assertEquals(true, $user->exists);
$user->delete();
$this->assertEquals(false, $user->exists);
$check = Soft::find($user->_id);
$this->assertEquals(null, $check);
$all = Soft::get();
$this->assertEquals(0, $all->count());
$all = Soft::withTrashed()->get();
$this->assertEquals(1, $all->count());
}
}
\ No newline at end of file
......@@ -50,6 +50,9 @@ class QueryTest extends PHPUnit_Framework_TestCase {
$users = User::where('age', 35)->get();
$this->assertEquals(3, count($users));
$users = User::where('age', '=', 35)->get();
$this->assertEquals(3, count($users));
$users = User::where('age', '>=', 35)->get();
$this->assertEquals(4, count($users));
......
<?php
use Jenssegers\Mongodb\Model as Eloquent;
class Soft extends Eloquent {
protected $collection = 'soft';
protected $softDelete = true;
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment