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

namespace IlluminateFoundationTestingConcerns;

use 
IlluminateFoundationTestingWormhole;
use 
IlluminateSupportCarbon;

trait 
InteractsWithTime
{
    
/**
     * @template TReturn of mixed
     *
     * Freeze time.
     *
     * @param  (callable(IlluminateSupportCarbon): TReturn)|null  $callback
     * @return ($callback is null ? IlluminateSupportCarbon : TReturn)
     */
    
public function freezeTime($callback null)
    {
        
$result $this->travelTo($now Carbon::now(), $callback);

        return 
is_null($callback) ? $now $result;
    }

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

        return 
is_null($callback) ? $now $result;
    }

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

    
/**
     * @template TReturn of mixed
     * @template TDate of DateTimeInterface|Closure|IlluminateSupportCarbon|string|bool|null
     *
     * Travel to another time.
     *
     * @param  TDate  $date
     * @param  (callable(TDate): TReturn)|null  $callback
     * @return ($callback is null ? void : TReturn)
     */
    
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();
    }
}
Онлайн: 2
Реклама