Find this useful? Enter your email to receive occasional updates for securing PHP code.
Signing you up...
Thank you for signing up!
PHP Decode
<?php namespace Illuminate\Tests\Database; use Illuminate\Database\Capsule\Manager as DB..
Decoded Output download
<?php
namespace Illuminate\Tests\Database;
use Illuminate\Database\Capsule\Manager as DB;
use Illuminate\Database\Eloquent\Model as Eloquent;
use Illuminate\Support\Carbon;
use PHPUnit\Framework\TestCase;
use RuntimeException;
class DatabaseEloquentTimestampsTest extends TestCase
{
protected function setUp(): void
{
parent::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
*/
protected function tearDown(): void
{
$this->schema()->drop('users');
$this->schema()->drop('users_created_at');
$this->schema()->drop('users_updated_at');
Carbon::setTestNow(null);
}
/**
* Tests...
*/
public function testUserWithCreatedAtAndUpdatedAt()
{
Carbon::setTestNow($now = Carbon::now());
$user = UserWithCreatedAndUpdated::create([
'email' => '[email protected]',
]);
$this->assertEquals($now->toDateTimeString(), $user->created_at->toDateTimeString());
$this->assertEquals($now->toDateTimeString(), $user->updated_at->toDateTimeString());
}
public function testUserWithCreatedAt()
{
Carbon::setTestNow($now = Carbon::now());
$user = UserWithCreated::create([
'email' => '[email protected]',
]);
$this->assertEquals($now->toDateTimeString(), $user->created_at->toDateTimeString());
}
public function testUserWithUpdatedAt()
{
Carbon::setTestNow($now = Carbon::now());
$user = UserWithUpdated::create([
'email' => '[email protected]',
]);
$this->assertEquals($now->toDateTimeString(), $user->updated_at->toDateTimeString());
}
public function testWithoutTimestamp()
{
Carbon::setTestNow($now = Carbon::now()->setYear(1995)->startOfYear());
$user = UserWithCreatedAndUpdated::create(['email' => '[email protected]']);
Carbon::setTestNow(Carbon::now()->addHour());
$this->assertTrue($user->usesTimestamps());
$user->withoutTimestamps(function () use ($user) {
$this->assertFalse($user->usesTimestamps());
$user->update([
'email' => '[email protected]',
]);
});
$this->assertTrue($user->usesTimestamps());
$this->assertTrue($now->equalTo($user->updated_at));
$this->assertSame('[email protected]', $user->email);
}
public function testWithoutTimestampWhenAlreadyIgnoringTimestamps()
{
Carbon::setTestNow($now = Carbon::now()->setYear(1995)->startOfYear());
$user = UserWithCreatedAndUpdated::create(['email' => '[email protected]']);
Carbon::setTestNow(Carbon::now()->addHour());
$user->timestamps = false;
$this->assertFalse($user->usesTimestamps());
$user->withoutTimestamps(function () use ($user) {
$this->assertFalse($user->usesTimestamps());
$user->update([
'email' => '[email protected]',
]);
});
$this->assertFalse($user->usesTimestamps());
$this->assertTrue($now->equalTo($user->updated_at));
$this->assertSame('[email protected]', $user->email);
}
public function testWithoutTimestampRestoresWhenClosureThrowsException()
{
$user = UserWithCreatedAndUpdated::create(['email' => '[email protected]']);
$user->timestamps = true;
try {
$user->withoutTimestamps(function () use ($user) {
$this->assertFalse($user->usesTimestamps());
throw new RuntimeException();
});
$this->fail();
} catch (RuntimeException) {
//
}
$this->assertTrue($user->timestamps);
}
public function testWithoutTimestampsRespectsClasses()
{
$a = new UserWithCreatedAndUpdated();
$b = new UserWithCreatedAndUpdated();
$z = new UserWithUpdated();
$this->assertTrue($a->usesTimestamps());
$this->assertTrue($b->usesTimestamps());
$this->assertTrue($z->usesTimestamps());
$this->assertFalse(Eloquent::isIgnoringTimestamps(UserWithCreatedAndUpdated::class));
$this->assertFalse(Eloquent::isIgnoringTimestamps(UserWithUpdated::class));
Eloquent::withoutTimestamps(function () use ($a, $b, $z) {
$this->assertFalse($a->usesTimestamps());
$this->assertFalse($b->usesTimestamps());
$this->assertFalse($z->usesTimestamps());
$this->assertTrue(Eloquent::isIgnoringTimestamps(UserWithCreatedAndUpdated::class));
$this->assertTrue(Eloquent::isIgnoringTimestamps(UserWithUpdated::class));
});
$this->assertTrue($a->usesTimestamps());
$this->assertTrue($b->usesTimestamps());
$this->assertTrue($z->usesTimestamps());
$this->assertFalse(Eloquent::isIgnoringTimestamps(UserWithCreatedAndUpdated::class));
$this->assertFalse(Eloquent::isIgnoringTimestamps(UserWithUpdated::class));
UserWithCreatedAndUpdated::withoutTimestamps(function () use ($a, $b, $z) {
$this->assertFalse($a->usesTimestamps());
$this->assertFalse($b->usesTimestamps());
$this->assertTrue($z->usesTimestamps());
$this->assertTrue(Eloquent::isIgnoringTimestamps(UserWithCreatedAndUpdated::class));
$this->assertFalse(Eloquent::isIgnoringTimestamps(UserWithUpdated::class));
});
$this->assertTrue($a->usesTimestamps());
$this->assertTrue($b->usesTimestamps());
$this->assertTrue($z->usesTimestamps());
$this->assertFalse(Eloquent::isIgnoringTimestamps(UserWithCreatedAndUpdated::class));
$this->assertFalse(Eloquent::isIgnoringTimestamps(UserWithUpdated::class));
UserWithUpdated::withoutTimestamps(function () use ($a, $b, $z) {
$this->assertTrue($a->usesTimestamps());
$this->assertTrue($b->usesTimestamps());
$this->assertFalse($z->usesTimestamps());
$this->assertFalse(Eloquent::isIgnoringTimestamps(UserWithCreatedAndUpdated::class));
$this->assertTrue(Eloquent::isIgnoringTimestamps(UserWithUpdated::class));
});
$this->assertTrue($a->usesTimestamps());
$this->assertTrue($b->usesTimestamps());
$this->assertTrue($z->usesTimestamps());
$this->assertFalse(Eloquent::isIgnoringTimestamps(UserWithCreatedAndUpdated::class));
$this->assertFalse(Eloquent::isIgnoringTimestamps(UserWithUpdated::class));
Eloquent::withoutTimestampsOn([], function () use ($a, $b, $z) {
$this->assertTrue($a->usesTimestamps());
$this->assertTrue($b->usesTimestamps());
$this->assertTrue($z->usesTimestamps());
$this->assertFalse(Eloquent::isIgnoringTimestamps(UserWithCreatedAndUpdated::class));
$this->assertFalse(Eloquent::isIgnoringTimestamps(UserWithUpdated::class));
});
$this->assertTrue($a->usesTimestamps());
$this->assertTrue($b->usesTimestamps());
$this->assertTrue($z->usesTimestamps());
$this->assertFalse(Eloquent::isIgnoringTimestamps(UserWithCreatedAndUpdated::class));
$this->assertFalse(Eloquent::isIgnoringTimestamps(UserWithUpdated::class));
Eloquent::withoutTimestampsOn([UserWithCreatedAndUpdated::class], function () use ($a, $b, $z) {
$this->assertFalse($a->usesTimestamps());
$this->assertFalse($b->usesTimestamps());
$this->assertTrue($z->usesTimestamps());
$this->assertTrue(Eloquent::isIgnoringTimestamps(UserWithCreatedAndUpdated::class));
$this->assertFalse(Eloquent::isIgnoringTimestamps(UserWithUpdated::class));
});
$this->assertTrue($a->usesTimestamps());
$this->assertTrue($b->usesTimestamps());
$this->assertTrue($z->usesTimestamps());
$this->assertFalse(Eloquent::isIgnoringTimestamps(UserWithCreatedAndUpdated::class));
$this->assertFalse(Eloquent::isIgnoringTimestamps(UserWithUpdated::class));
Eloquent::withoutTimestampsOn([UserWithUpdated::class], function () use ($a, $b, $z) {
$this->assertTrue($a->usesTimestamps());
$this->assertTrue($b->usesTimestamps());
$this->assertFalse($z->usesTimestamps());
$this->assertFalse(Eloquent::isIgnoringTimestamps(UserWithCreatedAndUpdated::class));
$this->assertTrue(Eloquent::isIgnoringTimestamps(UserWithUpdated::class));
});
$this->assertTrue($a->usesTimestamps());
$this->assertTrue($b->usesTimestamps());
$this->assertTrue($z->usesTimestamps());
$this->assertFalse(Eloquent::isIgnoringTimestamps(UserWithCreatedAndUpdated::class));
$this->assertFalse(Eloquent::isIgnoringTimestamps(UserWithUpdated::class));
Eloquent::withoutTimestampsOn([UserWithCreatedAndUpdated::class, UserWithUpdated::class], function () use ($a, $b, $z) {
$this->assertFalse($a->usesTimestamps());
$this->assertFalse($b->usesTimestamps());
$this->assertFalse($z->usesTimestamps());
$this->assertTrue(Eloquent::isIgnoringTimestamps(UserWithCreatedAndUpdated::class));
$this->assertTrue(Eloquent::isIgnoringTimestamps(UserWithUpdated::class));
});
$this->assertTrue($a->usesTimestamps());
$this->assertTrue($b->usesTimestamps());
$this->assertTrue($z->usesTimestamps());
$this->assertFalse(Eloquent::isIgnoringTimestamps(UserWithCreatedAndUpdated::class));
$this->assertFalse(Eloquent::isIgnoringTimestamps(UserWithUpdated::class));
}
/**
* Get a database connection instance.
*
* @return \Illuminate\Database\Connection
*/
protected function connection()
{
return Eloquent::getConnectionResolver()->connection();
}
/**
* Get a schema builder instance.
*
* @return \Illuminate\Database\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';
}
?>
Did this file decode correctly?
Original Code
<?php
namespace Illuminate\Tests\Database;
use Illuminate\Database\Capsule\Manager as DB;
use Illuminate\Database\Eloquent\Model as Eloquent;
use Illuminate\Support\Carbon;
use PHPUnit\Framework\TestCase;
use RuntimeException;
class DatabaseEloquentTimestampsTest extends TestCase
{
protected function setUp(): void
{
parent::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
*/
protected function tearDown(): void
{
$this->schema()->drop('users');
$this->schema()->drop('users_created_at');
$this->schema()->drop('users_updated_at');
Carbon::setTestNow(null);
}
/**
* Tests...
*/
public function testUserWithCreatedAtAndUpdatedAt()
{
Carbon::setTestNow($now = Carbon::now());
$user = UserWithCreatedAndUpdated::create([
'email' => '[email protected]',
]);
$this->assertEquals($now->toDateTimeString(), $user->created_at->toDateTimeString());
$this->assertEquals($now->toDateTimeString(), $user->updated_at->toDateTimeString());
}
public function testUserWithCreatedAt()
{
Carbon::setTestNow($now = Carbon::now());
$user = UserWithCreated::create([
'email' => '[email protected]',
]);
$this->assertEquals($now->toDateTimeString(), $user->created_at->toDateTimeString());
}
public function testUserWithUpdatedAt()
{
Carbon::setTestNow($now = Carbon::now());
$user = UserWithUpdated::create([
'email' => '[email protected]',
]);
$this->assertEquals($now->toDateTimeString(), $user->updated_at->toDateTimeString());
}
public function testWithoutTimestamp()
{
Carbon::setTestNow($now = Carbon::now()->setYear(1995)->startOfYear());
$user = UserWithCreatedAndUpdated::create(['email' => '[email protected]']);
Carbon::setTestNow(Carbon::now()->addHour());
$this->assertTrue($user->usesTimestamps());
$user->withoutTimestamps(function () use ($user) {
$this->assertFalse($user->usesTimestamps());
$user->update([
'email' => '[email protected]',
]);
});
$this->assertTrue($user->usesTimestamps());
$this->assertTrue($now->equalTo($user->updated_at));
$this->assertSame('[email protected]', $user->email);
}
public function testWithoutTimestampWhenAlreadyIgnoringTimestamps()
{
Carbon::setTestNow($now = Carbon::now()->setYear(1995)->startOfYear());
$user = UserWithCreatedAndUpdated::create(['email' => '[email protected]']);
Carbon::setTestNow(Carbon::now()->addHour());
$user->timestamps = false;
$this->assertFalse($user->usesTimestamps());
$user->withoutTimestamps(function () use ($user) {
$this->assertFalse($user->usesTimestamps());
$user->update([
'email' => '[email protected]',
]);
});
$this->assertFalse($user->usesTimestamps());
$this->assertTrue($now->equalTo($user->updated_at));
$this->assertSame('[email protected]', $user->email);
}
public function testWithoutTimestampRestoresWhenClosureThrowsException()
{
$user = UserWithCreatedAndUpdated::create(['email' => '[email protected]']);
$user->timestamps = true;
try {
$user->withoutTimestamps(function () use ($user) {
$this->assertFalse($user->usesTimestamps());
throw new RuntimeException();
});
$this->fail();
} catch (RuntimeException) {
//
}
$this->assertTrue($user->timestamps);
}
public function testWithoutTimestampsRespectsClasses()
{
$a = new UserWithCreatedAndUpdated();
$b = new UserWithCreatedAndUpdated();
$z = new UserWithUpdated();
$this->assertTrue($a->usesTimestamps());
$this->assertTrue($b->usesTimestamps());
$this->assertTrue($z->usesTimestamps());
$this->assertFalse(Eloquent::isIgnoringTimestamps(UserWithCreatedAndUpdated::class));
$this->assertFalse(Eloquent::isIgnoringTimestamps(UserWithUpdated::class));
Eloquent::withoutTimestamps(function () use ($a, $b, $z) {
$this->assertFalse($a->usesTimestamps());
$this->assertFalse($b->usesTimestamps());
$this->assertFalse($z->usesTimestamps());
$this->assertTrue(Eloquent::isIgnoringTimestamps(UserWithCreatedAndUpdated::class));
$this->assertTrue(Eloquent::isIgnoringTimestamps(UserWithUpdated::class));
});
$this->assertTrue($a->usesTimestamps());
$this->assertTrue($b->usesTimestamps());
$this->assertTrue($z->usesTimestamps());
$this->assertFalse(Eloquent::isIgnoringTimestamps(UserWithCreatedAndUpdated::class));
$this->assertFalse(Eloquent::isIgnoringTimestamps(UserWithUpdated::class));
UserWithCreatedAndUpdated::withoutTimestamps(function () use ($a, $b, $z) {
$this->assertFalse($a->usesTimestamps());
$this->assertFalse($b->usesTimestamps());
$this->assertTrue($z->usesTimestamps());
$this->assertTrue(Eloquent::isIgnoringTimestamps(UserWithCreatedAndUpdated::class));
$this->assertFalse(Eloquent::isIgnoringTimestamps(UserWithUpdated::class));
});
$this->assertTrue($a->usesTimestamps());
$this->assertTrue($b->usesTimestamps());
$this->assertTrue($z->usesTimestamps());
$this->assertFalse(Eloquent::isIgnoringTimestamps(UserWithCreatedAndUpdated::class));
$this->assertFalse(Eloquent::isIgnoringTimestamps(UserWithUpdated::class));
UserWithUpdated::withoutTimestamps(function () use ($a, $b, $z) {
$this->assertTrue($a->usesTimestamps());
$this->assertTrue($b->usesTimestamps());
$this->assertFalse($z->usesTimestamps());
$this->assertFalse(Eloquent::isIgnoringTimestamps(UserWithCreatedAndUpdated::class));
$this->assertTrue(Eloquent::isIgnoringTimestamps(UserWithUpdated::class));
});
$this->assertTrue($a->usesTimestamps());
$this->assertTrue($b->usesTimestamps());
$this->assertTrue($z->usesTimestamps());
$this->assertFalse(Eloquent::isIgnoringTimestamps(UserWithCreatedAndUpdated::class));
$this->assertFalse(Eloquent::isIgnoringTimestamps(UserWithUpdated::class));
Eloquent::withoutTimestampsOn([], function () use ($a, $b, $z) {
$this->assertTrue($a->usesTimestamps());
$this->assertTrue($b->usesTimestamps());
$this->assertTrue($z->usesTimestamps());
$this->assertFalse(Eloquent::isIgnoringTimestamps(UserWithCreatedAndUpdated::class));
$this->assertFalse(Eloquent::isIgnoringTimestamps(UserWithUpdated::class));
});
$this->assertTrue($a->usesTimestamps());
$this->assertTrue($b->usesTimestamps());
$this->assertTrue($z->usesTimestamps());
$this->assertFalse(Eloquent::isIgnoringTimestamps(UserWithCreatedAndUpdated::class));
$this->assertFalse(Eloquent::isIgnoringTimestamps(UserWithUpdated::class));
Eloquent::withoutTimestampsOn([UserWithCreatedAndUpdated::class], function () use ($a, $b, $z) {
$this->assertFalse($a->usesTimestamps());
$this->assertFalse($b->usesTimestamps());
$this->assertTrue($z->usesTimestamps());
$this->assertTrue(Eloquent::isIgnoringTimestamps(UserWithCreatedAndUpdated::class));
$this->assertFalse(Eloquent::isIgnoringTimestamps(UserWithUpdated::class));
});
$this->assertTrue($a->usesTimestamps());
$this->assertTrue($b->usesTimestamps());
$this->assertTrue($z->usesTimestamps());
$this->assertFalse(Eloquent::isIgnoringTimestamps(UserWithCreatedAndUpdated::class));
$this->assertFalse(Eloquent::isIgnoringTimestamps(UserWithUpdated::class));
Eloquent::withoutTimestampsOn([UserWithUpdated::class], function () use ($a, $b, $z) {
$this->assertTrue($a->usesTimestamps());
$this->assertTrue($b->usesTimestamps());
$this->assertFalse($z->usesTimestamps());
$this->assertFalse(Eloquent::isIgnoringTimestamps(UserWithCreatedAndUpdated::class));
$this->assertTrue(Eloquent::isIgnoringTimestamps(UserWithUpdated::class));
});
$this->assertTrue($a->usesTimestamps());
$this->assertTrue($b->usesTimestamps());
$this->assertTrue($z->usesTimestamps());
$this->assertFalse(Eloquent::isIgnoringTimestamps(UserWithCreatedAndUpdated::class));
$this->assertFalse(Eloquent::isIgnoringTimestamps(UserWithUpdated::class));
Eloquent::withoutTimestampsOn([UserWithCreatedAndUpdated::class, UserWithUpdated::class], function () use ($a, $b, $z) {
$this->assertFalse($a->usesTimestamps());
$this->assertFalse($b->usesTimestamps());
$this->assertFalse($z->usesTimestamps());
$this->assertTrue(Eloquent::isIgnoringTimestamps(UserWithCreatedAndUpdated::class));
$this->assertTrue(Eloquent::isIgnoringTimestamps(UserWithUpdated::class));
});
$this->assertTrue($a->usesTimestamps());
$this->assertTrue($b->usesTimestamps());
$this->assertTrue($z->usesTimestamps());
$this->assertFalse(Eloquent::isIgnoringTimestamps(UserWithCreatedAndUpdated::class));
$this->assertFalse(Eloquent::isIgnoringTimestamps(UserWithUpdated::class));
}
/**
* Get a database connection instance.
*
* @return \Illuminate\Database\Connection
*/
protected function connection()
{
return Eloquent::getConnectionResolver()->connection();
}
/**
* Get a schema builder instance.
*
* @return \Illuminate\Database\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';
}
Function Calls
None |
Stats
MD5 | 5e1aafa9902113dcccb41f2ab9ec694b |
Eval Count | 0 |
Decode Time | 98 ms |