Skip to content

Commit

Permalink
[5.7] add unit tests for CREATED_AT and UPDATED_AT disabling.
Browse files Browse the repository at this point in the history
(cherry picked from commit e856976)
  • Loading branch information
TBlindaruk committed Mar 21, 2018
1 parent ab83fb9 commit cc4f081
Showing 1 changed file with 150 additions and 0 deletions.
150 changes: 150 additions & 0 deletions tests/Database/DatabaseEloquentTimestamps.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,150 @@
<?php

namespace Illuminate\Tests\Database;

use Illuminate\Database\Capsule\Manager as DB;
use Illuminate\Database\Connection;
use Illuminate\Database\Eloquent\Model as Eloquent;
use Illuminate\Support\Carbon;
use PHPUnit\Framework\TestCase;

class DatabaseEloquentTimestamps extends TestCase
{
public function setUp()
{
$db = new DB;

$db->addConnection([
'driver' => 'sqlite',
'database' => ':memory:',
]);

$db->bootEloquent();
$db->setAsGlobal();

$this->createSchema();
}

/**
* Setup the database schema.
*
* @return void
*/
public function createSchema()
{
$this->schema()->create('users', function ($table) {
$table->increments('id');
$table->string('email')->unique();
$table->timestamps();
});

$this->schema()->create('users_created_at', function ($table) {
$table->increments('id');
$table->string('email')->unique();
$table->string('created_at');
});

$this->schema()->create('users_updated_at', function ($table) {
$table->increments('id');
$table->string('email')->unique();
$table->string('updated_at');
});
}

/**
* Tear down the database schema.
*
* @return void
*/
public function tearDown()
{
$this->schema()->drop('users');
}

/**
* Tests...
*/
public function testUserWithCreatedAtAndUpdatedAt()
{
$now = Carbon::now();
$user = UserWithCreatedAndUpdated::create([
'email' => 'test@test.com',
]);

$this->assertEquals($now->toDateTimeString(), $user->created_at->toDateTimeString());
$this->assertEquals($now->toDateTimeString(), $user->updated_at->toDateTimeString());
}


public function testUserWithCreatedAt()
{
$now = Carbon::now();
$user = UserWithCreated::create([
'email' => 'test@test.com',
]);

$this->assertEquals($now->toDateTimeString(), $user->created_at->toDateTimeString());
}

public function testUserWithUpdatedAt()
{
$now = Carbon::now();
$user = UserWithUpdated::create([
'email' => 'test@test.com',
]);

$this->assertEquals($now->toDateTimeString(), $user->updated_at->toDateTimeString());
}

/**
* Get a database connection instance.
*
* @return Connection
*/
protected function connection()
{
return Eloquent::getConnectionResolver()->connection();
}

/**
* Get a schema builder instance.
*
* @return Schema\Builder
*/
protected function schema()
{
return $this->connection()->getSchemaBuilder();
}
}

/**
* Eloquent Models...
*/
class UserWithCreatedAndUpdated extends Eloquent
{
protected $table = 'users';

protected $guarded = [];
}

class UserWithCreated extends Eloquent
{
public const UPDATED_AT = null;

protected $table = 'users_created_at';

protected $guarded = [];

protected $dateFormat = 'U';
}

class UserWithUpdated extends Eloquent
{
public const CREATED_AT = null;

protected $table = 'users_updated_at';

protected $guarded = [];

protected $dateFormat = 'U';
}

0 comments on commit cc4f081

Please sign in to comment.