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
ac6b3563
Commit
ac6b3563
authored
Apr 27, 2020
by
Giacomo Fabbian
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[GF] Added more tests for dates with different formats
parent
44825e79
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
144 additions
and
10 deletions
+144
-10
ModelTest.php
tests/ModelTest.php
+134
-6
QueryBuilderTest.php
tests/QueryBuilderTest.php
+10
-4
No files found.
tests/ModelTest.php
View file @
ac6b3563
...
...
@@ -4,6 +4,7 @@ declare(strict_types=1);
use
Carbon\Carbon
;
use
Illuminate\Database\Eloquent\Collection
as
EloquentCollection
;
use
Illuminate\Database\Eloquent\ModelNotFoundException
;
use
Illuminate\Support\Facades\Date
;
use
Jenssegers\Mongodb\Collection
;
use
Jenssegers\Mongodb\Connection
;
use
Jenssegers\Mongodb\Eloquent\Model
;
...
...
@@ -385,8 +386,13 @@ class ModelTest extends TestCase
public
function
testDates
()
:
void
{
$birthday
=
new
DateTime
(
'1980/1/1'
);
$user
=
User
::
create
([
'name'
=>
'John Doe'
,
'birthday'
=>
$birthday
]);
$user
=
User
::
create
([
'name'
=>
'John Doe'
,
'birthday'
=>
new
DateTime
(
'1965/1/1'
)]);
$this
->
assertInstanceOf
(
Carbon
::
class
,
$user
->
birthday
);
$user
=
User
::
where
(
'birthday'
,
'<'
,
new
DateTime
(
'1968/1/1'
))
->
first
();
$this
->
assertEquals
(
'John Doe'
,
$user
->
name
);
$user
=
User
::
create
([
'name'
=>
'John Doe'
,
'birthday'
=>
new
DateTime
(
'1980/1/1'
)]);
$this
->
assertInstanceOf
(
Carbon
::
class
,
$user
->
birthday
);
$check
=
User
::
find
(
$user
->
_id
);
...
...
@@ -416,30 +422,152 @@ class ModelTest extends TestCase
$this
->
assertEquals
(
$item
->
created_at
->
format
(
'Y-m-d H:i:s'
),
$json
[
'created_at'
]);
/** @var User $user */
//Test with create and standard property
$user
=
User
::
create
([
'name'
=>
'Jane Doe'
,
'birthday'
=>
time
()]);
$this
->
assertInstanceOf
(
Carbon
::
class
,
$user
->
birthday
);
$user
=
User
::
create
([
'name'
=>
'Jane Doe'
,
'birthday'
=>
Date
::
now
()]);
$this
->
assertInstanceOf
(
Carbon
::
class
,
$user
->
birthday
);
$user
=
User
::
create
([
'name'
=>
'Jane Doe'
,
'birthday'
=>
'Monday 8th of August 2005 03:12:46 PM'
]);
$this
->
assertInstanceOf
(
Carbon
::
class
,
$user
->
birthday
);
$user
=
User
::
create
([
'name'
=>
'Jane Doe'
,
'birthday'
=>
'Monday 8th of August 1960 03:12:46 PM'
]);
$this
->
assertInstanceOf
(
Carbon
::
class
,
$user
->
birthday
);
$user
=
User
::
create
([
'name'
=>
'Jane Doe'
,
'birthday'
=>
'2005-08-08'
]);
$this
->
assertInstanceOf
(
Carbon
::
class
,
$user
->
birthday
);
// test negative dates
$user
=
User
::
create
([
'name'
=>
'Jane Doe'
,
'birthday'
=>
'1965-08-08'
]);
$this
->
assertInstanceOf
(
Carbon
::
class
,
$user
->
birthday
);
$user
=
User
::
create
([
'name'
=>
'Jane Doe'
,
'birthday'
=>
new
DateTime
(
'2010-08-08'
)]);
$this
->
assertInstanceOf
(
Carbon
::
class
,
$user
->
birthday
);
$user
=
User
::
create
([
'name'
=>
'Jane Doe'
,
'birthday'
=>
new
DateTime
(
'1965-08-08'
)]);
$this
->
assertInstanceOf
(
Carbon
::
class
,
$user
->
birthday
);
$user
=
User
::
create
([
'name'
=>
'Jane Doe'
,
'birthday'
=>
new
DateTime
(
'2010-08-08 04.08.37'
)]);
$this
->
assertInstanceOf
(
Carbon
::
class
,
$user
->
birthday
);
$user
=
User
::
create
([
'name'
=>
'Jane Doe'
,
'birthday'
=>
new
DateTime
(
'1965-08-08 04.08.37'
)]);
$this
->
assertInstanceOf
(
Carbon
::
class
,
$user
->
birthday
);
// test millisecond-precision dates after 1970:
$user
=
User
::
create
([
'name'
=>
'Jane Doe'
,
'birthday'
=>
new
DateTime
(
'2010-08-08 04.08.37.324'
)]);
$this
->
assertInstanceOf
(
Carbon
::
class
,
$user
->
birthday
);
// test millisecond-precision dates before 1970:
$user
=
User
::
create
([
'name'
=>
'Jane Doe'
,
'birthday'
=>
new
DateTime
(
'1965-08-08 04.08.37.324'
)]);
$this
->
assertInstanceOf
(
Carbon
::
class
,
$user
->
birthday
);
//Test with setAttribute and standard property
$user
->
setAttribute
(
'birthday'
,
time
());
$this
->
assertInstanceOf
(
Carbon
::
class
,
$user
->
birthday
);
$user
->
setAttribute
(
'birthday'
,
Date
::
now
());
$this
->
assertInstanceOf
(
Carbon
::
class
,
$user
->
birthday
);
$user
->
setAttribute
(
'birthday'
,
'Monday 8th of August 2005 03:12:46 PM'
);
$this
->
assertInstanceOf
(
Carbon
::
class
,
$user
->
birthday
);
$user
->
setAttribute
(
'birthday'
,
'Monday 8th of August 1960 03:12:46 PM'
);
$this
->
assertInstanceOf
(
Carbon
::
class
,
$user
->
birthday
);
$user
->
setAttribute
(
'birthday'
,
'2005-08-08'
);
$this
->
assertInstanceOf
(
Carbon
::
class
,
$user
->
birthday
);
$user
->
setAttribute
(
'birthday'
,
'1965-08-08'
);
$this
->
assertInstanceOf
(
Carbon
::
class
,
$user
->
birthday
);
$user
->
setAttribute
(
'birthday'
,
new
DateTime
(
'2010-08-08'
));
$this
->
assertInstanceOf
(
Carbon
::
class
,
$user
->
birthday
);
$user
->
setAttribute
(
'birthday'
,
new
DateTime
(
'1965-08-08'
));
$this
->
assertInstanceOf
(
Carbon
::
class
,
$user
->
birthday
);
$user
->
setAttribute
(
'birthday'
,
new
DateTime
(
'2010-08-08 04.08.37'
));
$this
->
assertInstanceOf
(
Carbon
::
class
,
$user
->
birthday
);
$user
->
setAttribute
(
'birthday'
,
new
DateTime
(
'1965-08-08 04.08.37'
));
$this
->
assertInstanceOf
(
Carbon
::
class
,
$user
->
birthday
);
$user
->
setAttribute
(
'birthday'
,
new
DateTime
(
'2010-08-08 04.08.37.324'
));
$this
->
assertInstanceOf
(
Carbon
::
class
,
$user
->
birthday
);
$user
->
setAttribute
(
'birthday'
,
new
DateTime
(
'1965-08-08 04.08.37.324'
));
$this
->
assertInstanceOf
(
Carbon
::
class
,
$user
->
birthday
);
//Test with create and array property
$user
=
User
::
create
([
'name'
=>
'Jane Doe'
,
'entry'
=>
[
'date'
=>
time
()]]);
$this
->
assertInstanceOf
(
Carbon
::
class
,
$user
->
getAttribute
(
'entry.date'
));
$user
=
User
::
create
([
'name'
=>
'Jane Doe'
,
'entry'
=>
[
'date'
=>
Date
::
now
()]]);
$this
->
assertInstanceOf
(
Carbon
::
class
,
$user
->
getAttribute
(
'entry.date'
));
$user
=
User
::
create
([
'name'
=>
'Jane Doe'
,
'entry'
=>
[
'date'
=>
'Monday 8th of August 2005 03:12:46 PM'
]]);
$this
->
assertInstanceOf
(
Carbon
::
class
,
$user
->
getAttribute
(
'entry.date'
));
$user
=
User
::
create
([
'name'
=>
'Jane Doe'
,
'entry'
=>
[
'date'
=>
'Monday 8th of August 1960 03:12:46 PM'
]]);
$this
->
assertInstanceOf
(
Carbon
::
class
,
$user
->
getAttribute
(
'entry.date'
));
$user
=
User
::
create
([
'name'
=>
'Jane Doe'
,
'entry'
=>
[
'date'
=>
'2005-08-08'
]]);
$this
->
assertInstanceOf
(
Carbon
::
class
,
$user
->
getAttribute
(
'entry.date'
));
$user
->
setAttribute
(
'entry.date'
,
new
DateTime
);
$user
=
User
::
create
([
'name'
=>
'Jane Doe'
,
'entry'
=>
[
'date'
=>
'1965-08-08'
]]);
$this
->
assertInstanceOf
(
Carbon
::
class
,
$user
->
getAttribute
(
'entry.date'
));
$user
=
User
::
create
([
'name'
=>
'Jane Doe'
,
'entry'
=>
[
'date'
=>
new
DateTime
(
'2010-08-08'
)]]);
$this
->
assertInstanceOf
(
Carbon
::
class
,
$user
->
getAttribute
(
'entry.date'
));
$user
=
User
::
create
([
'name'
=>
'Jane Doe'
,
'entry'
=>
[
'date'
=>
new
DateTime
(
'1965-08-08'
)]]);
$this
->
assertInstanceOf
(
Carbon
::
class
,
$user
->
getAttribute
(
'entry.date'
));
$user
=
User
::
create
([
'name'
=>
'Jane Doe'
,
'entry'
=>
[
'date'
=>
new
DateTime
(
'2010-08-08 04.08.37'
)]]);
$this
->
assertInstanceOf
(
Carbon
::
class
,
$user
->
getAttribute
(
'entry.date'
));
$user
=
User
::
create
([
'name'
=>
'Jane Doe'
,
'entry'
=>
[
'date'
=>
new
DateTime
(
'1965-08-08 04.08.37'
)]]);
$this
->
assertInstanceOf
(
Carbon
::
class
,
$user
->
getAttribute
(
'entry.date'
));
$user
=
User
::
create
([
'name'
=>
'Jane Doe'
,
'entry'
=>
[
'date'
=>
new
DateTime
(
'2010-08-08 04.08.37.324'
)]]);
$this
->
assertInstanceOf
(
Carbon
::
class
,
$user
->
getAttribute
(
'entry.date'
));
$user
=
User
::
create
([
'name'
=>
'Jane Doe'
,
'entry'
=>
[
'date'
=>
new
DateTime
(
'1965-08-08 04.08.37.324'
)]]);
$this
->
assertInstanceOf
(
Carbon
::
class
,
$user
->
getAttribute
(
'entry.date'
));
//Test with setAttribute and array property
$user
->
setAttribute
(
'entry.date'
,
time
());
$this
->
assertInstanceOf
(
Carbon
::
class
,
$user
->
getAttribute
(
'entry.date'
));
$user
->
setAttribute
(
'entry.date'
,
Date
::
now
());
$this
->
assertInstanceOf
(
Carbon
::
class
,
$user
->
getAttribute
(
'entry.date'
));
$user
->
setAttribute
(
'entry.date'
,
'Monday 8th of August 2005 03:12:46 PM'
);
$this
->
assertInstanceOf
(
Carbon
::
class
,
$user
->
getAttribute
(
'entry.date'
));
$user
->
setAttribute
(
'entry.date'
,
'Monday 8th of August 1960 03:12:46 PM'
);
$this
->
assertInstanceOf
(
Carbon
::
class
,
$user
->
getAttribute
(
'entry.date'
));
$user
->
setAttribute
(
'entry.date'
,
'2005-08-08'
);
$this
->
assertInstanceOf
(
Carbon
::
class
,
$user
->
getAttribute
(
'entry.date'
));
$user
->
setAttribute
(
'entry.date'
,
'1965-08-08'
);
$this
->
assertInstanceOf
(
Carbon
::
class
,
$user
->
getAttribute
(
'entry.date'
));
$user
->
setAttribute
(
'entry.date'
,
new
DateTime
(
'2010-08-08'
));
$this
->
assertInstanceOf
(
Carbon
::
class
,
$user
->
getAttribute
(
'entry.date'
));
$user
->
setAttribute
(
'entry.date'
,
new
DateTime
(
'1965-08-08'
));
$this
->
assertInstanceOf
(
Carbon
::
class
,
$user
->
getAttribute
(
'entry.date'
));
$user
->
setAttribute
(
'entry.date'
,
new
DateTime
(
'2010-08-08 04.08.37'
));
$this
->
assertInstanceOf
(
Carbon
::
class
,
$user
->
getAttribute
(
'entry.date'
));
$user
->
setAttribute
(
'entry.date'
,
new
DateTime
(
'1965-08-08 04.08.37'
));
$this
->
assertInstanceOf
(
Carbon
::
class
,
$user
->
getAttribute
(
'entry.date'
));
$user
->
setAttribute
(
'entry.date'
,
new
DateTime
(
'2010-08-08 04.08.37.324'
));
$this
->
assertInstanceOf
(
Carbon
::
class
,
$user
->
getAttribute
(
'entry.date'
));
$user
->
setAttribute
(
'entry.date'
,
new
DateTime
(
'1965-08-08 04.08.37.324'
));
$this
->
assertInstanceOf
(
Carbon
::
class
,
$user
->
getAttribute
(
'entry.date'
));
$data
=
$user
->
toArray
();
...
...
tests/QueryBuilderTest.php
View file @
ac6b3563
...
...
@@ -547,9 +547,9 @@ class QueryBuilderTest extends TestCase
{
DB
::
collection
(
'users'
)
->
insert
([
[
'name'
=>
'John Doe'
,
'birthday'
=>
new
UTCDateTime
(
Date
::
parse
(
"1980-01-01 00:00:00"
)
->
format
(
'Uv'
))],
[
'name'
=>
'Jane Doe'
,
'birthday'
=>
new
UTCDateTime
(
Date
::
parse
(
"1981-01-01 00:00:00"
)
->
format
(
'Uv'
))],
[
'name'
=>
'Robert Roe'
,
'birthday'
=>
new
UTCDateTime
(
Date
::
parse
(
"1982-01-01 00:00:00"
)
->
format
(
'Uv'
))],
[
'name'
=>
'Mark Moe'
,
'birthday'
=>
new
UTCDateTime
(
Date
::
parse
(
"1983-01-01 00:00:00"
)
->
format
(
'Uv'
))],
[
'name'
=>
'Mark Moe'
,
'birthday'
=>
new
UTCDateTime
(
Date
::
parse
(
"1983-01-01 00:00:00.1"
)
->
format
(
'Uv'
))],
[
'name'
=>
'Frank White'
,
'birthday'
=>
new
UTCDateTime
(
Date
::
parse
(
"1960-01-01 12:12:12.1"
)
->
format
(
'Uv'
))]
]);
$user
=
DB
::
collection
(
'users'
)
...
...
@@ -557,11 +557,16 @@ class QueryBuilderTest extends TestCase
->
first
();
$this
->
assertEquals
(
'John Doe'
,
$user
[
'name'
]);
$user
=
DB
::
collection
(
'users'
)
->
where
(
'birthday'
,
new
UTCDateTime
(
Date
::
parse
(
"1960-01-01 12:12:12.1"
)
->
format
(
'Uv'
)))
->
first
();
$this
->
assertEquals
(
'Frank White'
,
$user
[
'name'
]);
$user
=
DB
::
collection
(
'users'
)
->
where
(
'birthday'
,
'='
,
new
DateTime
(
"1980-01-01 00:00:00"
))
->
first
();
$this
->
assertEquals
(
'John Doe'
,
$user
[
'name'
]);
$start
=
new
UTCDateTime
(
1000
*
strtotime
(
"19
81
-01-01 00:00:00"
));
$stop
=
new
UTCDateTime
(
1000
*
strtotime
(
"198
2
-01-01 00:00:00"
));
$start
=
new
UTCDateTime
(
1000
*
strtotime
(
"19
50
-01-01 00:00:00"
));
$stop
=
new
UTCDateTime
(
1000
*
strtotime
(
"198
1
-01-01 00:00:00"
));
$users
=
DB
::
collection
(
'users'
)
->
whereBetween
(
'birthday'
,
[
$start
,
$stop
])
->
get
();
$this
->
assertCount
(
2
,
$users
);
...
...
@@ -778,3 +783,4 @@ class QueryBuilderTest extends TestCase
}
}
}
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