Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
L
laravel-mongodb
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
sinan
laravel-mongodb
Commits
8a2c3a26
Commit
8a2c3a26
authored
Jun 20, 2013
by
Jens Segers
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fixed soft deletion and date bugs
parent
6d9ca96f
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
71 additions
and
15 deletions
+71
-15
Builder.php
src/Jenssegers/Mongodb/Builder.php
+1
-2
Model.php
src/Jenssegers/Mongodb/Model.php
+22
-3
ModelTest.php
tests/ModelTest.php
+35
-10
QueryTest.php
tests/QueryTest.php
+3
-0
Soft.php
tests/models/Soft.php
+10
-0
No files found.
src/Jenssegers/Mongodb/Builder.php
View file @
8a2c3a26
...
...
@@ -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
);
}
}
src/Jenssegers/Mongodb/Model.php
View file @
8a2c3a26
<?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
tests/ModelTest.php
View file @
8a2c3a26
<?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
tests/QueryTest.php
View file @
8a2c3a26
...
...
@@ -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
));
...
...
tests/models/Soft.php
0 → 100644
View file @
8a2c3a26
<?php
use
Jenssegers\Mongodb\Model
as
Eloquent
;
class
Soft
extends
Eloquent
{
protected
$collection
=
'soft'
;
protected
$softDelete
=
true
;
}
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment