Вход Регистрация
Файл: vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithTime.php
Строк: 73
<?php

namespace IlluminateFoundationTestingConcerns;

use 
IlluminateFoundationTestingWormhole;
use 
IlluminateSupportCarbon;

trait 
InteractsWithTime
{
    
/**
     * Freeze time.
     *
     * @param  callable|null  $callback
     * @return mixed
     */
    
public function freezeTime($callback null)
    {
        return 
$this->travelTo(Carbon::now(), $callback);
    }

    
/**
     * Freeze time at the beginning of the current second.
     *
     * @param  callable|null  $callback
     * @return mixed
     */
    
public function freezeSecond($callback null)
    {
        return 
$this->travelTo(Carbon::now()->startOfSecond(), $callback);
    }

    
/**
     * Begin travelling to another time.
     *
     * @param  int  $value
     * @return IlluminateFoundationTestingWormhole
     */
    
public function travel($value)
    {
        return new 
Wormhole($value);
    }

    
/**
     * Travel to another time.
     *
     * @param  DateTimeInterface|Closure|IlluminateSupportCarbon|string|bool|null  $date
     * @param  callable|null  $callback
     * @return mixed
     */
    
public function travelTo($date$callback null)
    {
        
Carbon::setTestNow($date);

        if (
$callback) {
            return 
tap($callback($date), function () {
                
Carbon::setTestNow();
            });
        }
    }

    
/**
     * Travel back to the current time.
     *
     * @return DateTimeInterface
     */
    
public function travelBack()
    {
        return 
Wormhole::back();
    }
}
Онлайн: 1
Реклама