sonarrradarrplexorganizrnginxdashboardmuximuxlandingpagestartpagelandinghtpcserverhomepagesabnzbdheimdallembycouchpotatonzbgetbookmarkapplication-dashboard
		
		
		
		
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							212 lines
						
					
					
						
							4.7 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							212 lines
						
					
					
						
							4.7 KiB
						
					
					
				
								<?php
							 | 
						|
								
							 | 
						|
								/*
							 | 
						|
								 * This file is part of the Prophecy.
							 | 
						|
								 * (c) Konstantin Kudryashov <ever.zet@gmail.com>
							 | 
						|
								 *     Marcello Duarte <marcello.duarte@gmail.com>
							 | 
						|
								 *
							 | 
						|
								 * For the full copyright and license information, please view the LICENSE
							 | 
						|
								 * file that was distributed with this source code.
							 | 
						|
								 */
							 | 
						|
								
							 | 
						|
								namespace Prophecy;
							 | 
						|
								
							 | 
						|
								use Prophecy\Argument\Token;
							 | 
						|
								
							 | 
						|
								/**
							 | 
						|
								 * Argument tokens shortcuts.
							 | 
						|
								 *
							 | 
						|
								 * @author Konstantin Kudryashov <ever.zet@gmail.com>
							 | 
						|
								 */
							 | 
						|
								class Argument
							 | 
						|
								{
							 | 
						|
								    /**
							 | 
						|
								     * Checks that argument is exact value or object.
							 | 
						|
								     *
							 | 
						|
								     * @param mixed $value
							 | 
						|
								     *
							 | 
						|
								     * @return Token\ExactValueToken
							 | 
						|
								     */
							 | 
						|
								    public static function exact($value)
							 | 
						|
								    {
							 | 
						|
								        return new Token\ExactValueToken($value);
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * Checks that argument is of specific type or instance of specific class.
							 | 
						|
								     *
							 | 
						|
								     * @param string $type Type name (`integer`, `string`) or full class name
							 | 
						|
								     *
							 | 
						|
								     * @return Token\TypeToken
							 | 
						|
								     */
							 | 
						|
								    public static function type($type)
							 | 
						|
								    {
							 | 
						|
								        return new Token\TypeToken($type);
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * Checks that argument object has specific state.
							 | 
						|
								     *
							 | 
						|
								     * @param string $methodName
							 | 
						|
								     * @param mixed  $value
							 | 
						|
								     *
							 | 
						|
								     * @return Token\ObjectStateToken
							 | 
						|
								     */
							 | 
						|
								    public static function which($methodName, $value)
							 | 
						|
								    {
							 | 
						|
								        return new Token\ObjectStateToken($methodName, $value);
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * Checks that argument matches provided callback.
							 | 
						|
								     *
							 | 
						|
								     * @param callable $callback
							 | 
						|
								     *
							 | 
						|
								     * @return Token\CallbackToken
							 | 
						|
								     */
							 | 
						|
								    public static function that($callback)
							 | 
						|
								    {
							 | 
						|
								        return new Token\CallbackToken($callback);
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * Matches any single value.
							 | 
						|
								     *
							 | 
						|
								     * @return Token\AnyValueToken
							 | 
						|
								     */
							 | 
						|
								    public static function any()
							 | 
						|
								    {
							 | 
						|
								        return new Token\AnyValueToken;
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * Matches all values to the rest of the signature.
							 | 
						|
								     *
							 | 
						|
								     * @return Token\AnyValuesToken
							 | 
						|
								     */
							 | 
						|
								    public static function cetera()
							 | 
						|
								    {
							 | 
						|
								        return new Token\AnyValuesToken;
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * Checks that argument matches all tokens
							 | 
						|
								     *
							 | 
						|
								     * @param mixed ... a list of tokens
							 | 
						|
								     *
							 | 
						|
								     * @return Token\LogicalAndToken
							 | 
						|
								     */
							 | 
						|
								    public static function allOf()
							 | 
						|
								    {
							 | 
						|
								        return new Token\LogicalAndToken(func_get_args());
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * Checks that argument array or countable object has exact number of elements.
							 | 
						|
								     *
							 | 
						|
								     * @param integer $value array elements count
							 | 
						|
								     *
							 | 
						|
								     * @return Token\ArrayCountToken
							 | 
						|
								     */
							 | 
						|
								    public static function size($value)
							 | 
						|
								    {
							 | 
						|
								        return new Token\ArrayCountToken($value);
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * Checks that argument array contains (key, value) pair
							 | 
						|
								     *
							 | 
						|
								     * @param mixed $key   exact value or token
							 | 
						|
								     * @param mixed $value exact value or token
							 | 
						|
								     *
							 | 
						|
								     * @return Token\ArrayEntryToken
							 | 
						|
								     */
							 | 
						|
								    public static function withEntry($key, $value)
							 | 
						|
								    {
							 | 
						|
								        return new Token\ArrayEntryToken($key, $value);
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * Checks that arguments array entries all match value
							 | 
						|
								     *
							 | 
						|
								     * @param mixed $value
							 | 
						|
								     *
							 | 
						|
								     * @return Token\ArrayEveryEntryToken
							 | 
						|
								     */
							 | 
						|
								    public static function withEveryEntry($value)
							 | 
						|
								    {
							 | 
						|
								        return new Token\ArrayEveryEntryToken($value);
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * Checks that argument array contains value
							 | 
						|
								     *
							 | 
						|
								     * @param mixed $value
							 | 
						|
								     *
							 | 
						|
								     * @return Token\ArrayEntryToken
							 | 
						|
								     */
							 | 
						|
								    public static function containing($value)
							 | 
						|
								    {
							 | 
						|
								        return new Token\ArrayEntryToken(self::any(), $value);
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * Checks that argument array has key
							 | 
						|
								     *
							 | 
						|
								     * @param mixed $key exact value or token
							 | 
						|
								     *
							 | 
						|
								     * @return Token\ArrayEntryToken
							 | 
						|
								     */
							 | 
						|
								    public static function withKey($key)
							 | 
						|
								    {
							 | 
						|
								        return new Token\ArrayEntryToken($key, self::any());
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * Checks that argument does not match the value|token.
							 | 
						|
								     *
							 | 
						|
								     * @param mixed $value either exact value or argument token
							 | 
						|
								     *
							 | 
						|
								     * @return Token\LogicalNotToken
							 | 
						|
								     */
							 | 
						|
								    public static function not($value)
							 | 
						|
								    {
							 | 
						|
								        return new Token\LogicalNotToken($value);
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * @param string $value
							 | 
						|
								     *
							 | 
						|
								     * @return Token\StringContainsToken
							 | 
						|
								     */
							 | 
						|
								    public static function containingString($value)
							 | 
						|
								    {
							 | 
						|
								        return new Token\StringContainsToken($value);
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * Checks that argument is identical value.
							 | 
						|
								     *
							 | 
						|
								     * @param mixed $value
							 | 
						|
								     *
							 | 
						|
								     * @return Token\IdenticalValueToken
							 | 
						|
								     */
							 | 
						|
								    public static function is($value)
							 | 
						|
								    {
							 | 
						|
								        return new Token\IdenticalValueToken($value);
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * Check that argument is same value when rounding to the
							 | 
						|
								     * given precision.
							 | 
						|
								     *
							 | 
						|
								     * @param float $value
							 | 
						|
								     * @param float $precision
							 | 
						|
								     *
							 | 
						|
								     * @return Token\ApproximateValueToken
							 | 
						|
								     */
							 | 
						|
								    public static function approximate($value, $precision = 0)
							 | 
						|
								    {
							 | 
						|
								        return new Token\ApproximateValueToken($value, $precision);
							 | 
						|
								    }
							 | 
						|
								}
							 | 
						|
								
							 |