Commit 07bd2004 authored by Jens Segers's avatar Jens Segers

Merge branch 'master' into develop

parents 71786184 9cf8823f
...@@ -8,6 +8,7 @@ use Jenssegers\Mongodb\DatabaseManager as Resolver; ...@@ -8,6 +8,7 @@ use Jenssegers\Mongodb\DatabaseManager as Resolver;
use Jenssegers\Mongodb\Builder as QueryBuilder; use Jenssegers\Mongodb\Builder as QueryBuilder;
use Jenssegers\Mongodb\Relations\BelongsTo; use Jenssegers\Mongodb\Relations\BelongsTo;
use Carbon\Carbon;
use DateTime; use DateTime;
use MongoId; use MongoId;
use MongoDate; use MongoDate;
...@@ -66,19 +67,25 @@ abstract class Model extends \Illuminate\Database\Eloquent\Model { ...@@ -66,19 +67,25 @@ abstract class Model extends \Illuminate\Database\Eloquent\Model {
*/ */
protected function asDateTime($value) protected function asDateTime($value)
{ {
// Convert MongoDate to timestamp // Convert timestamp
if ($value instanceof MongoDate) if (is_numeric($value))
{ {
$value = $value->sec; return Carbon::createFromTimestamp($value);
} }
// Convert timestamp to string for DateTime // Convert string
if (is_int($value)) if (is_string($value))
{
return new Carbon($value);
}
// Convert MongoDate
if ($value instanceof MongoDate)
{ {
$value = "@$value"; return Carbon::createFromTimestamp($value->sec);
} }
return new DateTime($value); return Carbon::instance($value);
} }
/** /**
......
<?php <?php
use Carbon;
class ModelTest extends PHPUnit_Framework_TestCase { class ModelTest extends PHPUnit_Framework_TestCase {
public function setUp() {} public function setUp() {}
...@@ -37,7 +39,7 @@ class ModelTest extends PHPUnit_Framework_TestCase { ...@@ -37,7 +39,7 @@ class ModelTest extends PHPUnit_Framework_TestCase {
$this->assertTrue(isset($user->_id)); $this->assertTrue(isset($user->_id));
$this->assertNotEquals('', (string) $user->_id); $this->assertNotEquals('', (string) $user->_id);
$this->assertNotEquals(0, strlen((string) $user->_id)); $this->assertNotEquals(0, strlen((string) $user->_id));
$this->assertInstanceOf('DateTime', $user->created_at); $this->assertInstanceOf('Carbon\Carbon', $user->created_at);
$this->assertEquals('John Doe', $user->name); $this->assertEquals('John Doe', $user->name);
$this->assertEquals(35, $user->age); $this->assertEquals(35, $user->age);
...@@ -57,8 +59,8 @@ class ModelTest extends PHPUnit_Framework_TestCase { ...@@ -57,8 +59,8 @@ class ModelTest extends PHPUnit_Framework_TestCase {
$check->save(); $check->save();
$this->assertEquals(true, $check->exists); $this->assertEquals(true, $check->exists);
$this->assertInstanceOf('DateTime', $check->created_at); $this->assertInstanceOf('Carbon\Carbon', $check->created_at);
$this->assertInstanceOf('DateTime', $check->updated_at); $this->assertInstanceOf('Carbon\Carbon', $check->updated_at);
$this->assertEquals(1, User::count()); $this->assertEquals(1, User::count());
$this->assertEquals('John Doe', $check->name); $this->assertEquals('John Doe', $check->name);
...@@ -229,7 +231,7 @@ class ModelTest extends PHPUnit_Framework_TestCase { ...@@ -229,7 +231,7 @@ class ModelTest extends PHPUnit_Framework_TestCase {
$this->assertEquals(1, $all->count()); $this->assertEquals(1, $all->count());
$check = $all[0]; $check = $all[0];
$this->assertInstanceOf('DateTime', $check->deleted_at); $this->assertInstanceOf('Carbon\Carbon', $check->deleted_at);
$this->assertEquals(true, $check->trashed()); $this->assertEquals(true, $check->trashed());
$check->restore(); $check->restore();
...@@ -312,11 +314,11 @@ class ModelTest extends PHPUnit_Framework_TestCase { ...@@ -312,11 +314,11 @@ class ModelTest extends PHPUnit_Framework_TestCase {
public function testDates() public function testDates()
{ {
$user = User::create(array('name' => 'John Doe', 'birthday' => new DateTime('1980/1/1'))); $user = User::create(array('name' => 'John Doe', 'birthday' => new DateTime('1980/1/1')));
$this->assertInstanceOf('DateTime', $user->birthday); $this->assertInstanceOf('Carbon\Carbon', $user->birthday);
// Re-fetch to be sure $check = User::find($user->_id);
$user = User::find($user->_id); $this->assertInstanceOf('Carbon\Carbon', $check->birthday);
$this->assertInstanceOf('DateTime', $user->birthday); $this->assertEquals($user->birthday, $check->birthday);
$user = User::where('birthday', '>', new DateTime('1975/1/1'))->first(); $user = User::where('birthday', '>', new DateTime('1975/1/1'))->first();
$this->assertEquals('John Doe', $user->name); $this->assertEquals('John Doe', $user->name);
......
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