Added Laravel project
This commit is contained in:
1
Laravel/vendor/hamcrest/hamcrest-php/.coveralls.yml
vendored
Normal file
1
Laravel/vendor/hamcrest/hamcrest-php/.coveralls.yml
vendored
Normal file
@@ -0,0 +1 @@
|
||||
src_dir: hamcrest
|
2
Laravel/vendor/hamcrest/hamcrest-php/.gitignore
vendored
Normal file
2
Laravel/vendor/hamcrest/hamcrest-php/.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
vendor
|
||||
composer.lock
|
7
Laravel/vendor/hamcrest/hamcrest-php/.gush.yml
vendored
Normal file
7
Laravel/vendor/hamcrest/hamcrest-php/.gush.yml
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
adapter: github
|
||||
issue_tracker: github
|
||||
meta-header: "Copyright (c) 2009-2015 hamcrest.org"
|
||||
table-pr:
|
||||
fixed_tickets: ['Fixed Tickets', '']
|
||||
license: ['License', MIT]
|
||||
base: master
|
18
Laravel/vendor/hamcrest/hamcrest-php/.travis.yml
vendored
Normal file
18
Laravel/vendor/hamcrest/hamcrest-php/.travis.yml
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
language: php
|
||||
php:
|
||||
- 5.4
|
||||
- 5.3
|
||||
|
||||
install:
|
||||
- composer install
|
||||
|
||||
script:
|
||||
- mkdir -p build/logs
|
||||
- cd tests
|
||||
- phpunit --coverage-clover=../build/logs/clover.xml .
|
||||
- cd ../
|
||||
|
||||
after_script:
|
||||
- php vendor/bin/coveralls -v
|
||||
- wget https://scrutinizer-ci.com/ocular.phar
|
||||
- php ocular.phar code-coverage:upload --format=php-clover build/logs/clover.xml
|
163
Laravel/vendor/hamcrest/hamcrest-php/CHANGES.txt
vendored
Normal file
163
Laravel/vendor/hamcrest/hamcrest-php/CHANGES.txt
vendored
Normal file
@@ -0,0 +1,163 @@
|
||||
== Version 1.1.0: Released Feb 2 2012 ==
|
||||
|
||||
Issues Fixed: 121, 138, 147
|
||||
|
||||
* Added non-empty matchers to complement the emptiness-matching forms.
|
||||
|
||||
- nonEmptyString()
|
||||
- nonEmptyArray()
|
||||
- nonEmptyTraversable()
|
||||
|
||||
* Added ability to pass variable arguments to several array-based matcher
|
||||
factory methods so they work like allOf() et al.
|
||||
|
||||
- anArray()
|
||||
- arrayContainingInAnyOrder(), containsInAnyOrder()
|
||||
- arrayContaining(), contains()
|
||||
- stringContainsInOrder()
|
||||
|
||||
* Matchers that accept an array of matchers now also accept variable arguments.
|
||||
Any non-matcher arguments are wrapped by IsEqual.
|
||||
|
||||
* Added noneOf() as a shortcut for not(anyOf()).
|
||||
|
||||
|
||||
== Version 1.0.0: Released Jan 20 2012 ==
|
||||
|
||||
Issues Fixed: 119, 136, 139, 141, 148, 149, 172
|
||||
|
||||
* Moved hamcrest.php into Hamcrest folder and renamed to Hamcrest.php.
|
||||
This is more in line with PEAR packaging standards.
|
||||
|
||||
* Renamed callable() to callableValue() for compatibility with PHP 5.4.
|
||||
|
||||
* Added Hamcrest_Text_StringContainsIgnoringCase to assert using stripos().
|
||||
|
||||
assertThat('fOObAr', containsStringIgnoringCase('oba'));
|
||||
assertThat('fOObAr', containsString('oba')->ignoringCase());
|
||||
|
||||
* Fixed Hamcrest_Core_IsInstanceOf to return false for native types.
|
||||
|
||||
* Moved string-based matchers to Hamcrest_Text package.
|
||||
StringContains, StringEndsWith, StringStartsWith, and SubstringMatcher
|
||||
|
||||
* Hamcrest.php and Hamcrest_Matchers.php are now built from @factory doctags.
|
||||
Added @factory doctag to every static factory method.
|
||||
|
||||
* Hamcrest_Matchers and Hamcrest.php now import each matcher as-needed
|
||||
and Hamcrest.php calls the matchers directly instead of Hamcrest_Matchers.
|
||||
|
||||
|
||||
== Version 0.3.0: Released Jul 26 2010 ==
|
||||
|
||||
* Added running count to Hamcrest_MatcherAssert with methods to get and reset it.
|
||||
This can be used by unit testing frameworks for reporting.
|
||||
|
||||
* Added Hamcrest_Core_HasToString to assert return value of toString() or __toString().
|
||||
|
||||
assertThat($anObject, hasToString('foo'));
|
||||
|
||||
* Added Hamcrest_Type_IsScalar to assert is_scalar().
|
||||
Matches values of type bool, int, float, double, and string.
|
||||
|
||||
assertThat($count, scalarValue());
|
||||
assertThat('foo', scalarValue());
|
||||
|
||||
* Added Hamcrest_Collection package.
|
||||
|
||||
- IsEmptyTraversable
|
||||
- IsTraversableWithSize
|
||||
|
||||
assertThat($iterator, emptyTraversable());
|
||||
assertThat($iterator, traversableWithSize(5));
|
||||
|
||||
* Added Hamcrest_Xml_HasXPath to assert XPath expressions or the content of nodes in an XML/HTML DOM.
|
||||
|
||||
assertThat($dom, hasXPath('books/book/title'));
|
||||
assertThat($dom, hasXPath('books/book[contains(title, "Alice")]', 3));
|
||||
assertThat($dom, hasXPath('books/book/title', 'Alice in Wonderland'));
|
||||
assertThat($dom, hasXPath('count(books/book)', greaterThan(10)));
|
||||
|
||||
* Added aliases to match the Java API.
|
||||
|
||||
hasEntry() -> hasKeyValuePair()
|
||||
hasValue() -> hasItemInArray()
|
||||
contains() -> arrayContaining()
|
||||
containsInAnyOrder() -> arrayContainingInAnyOrder()
|
||||
|
||||
* Added optional subtype to Hamcrest_TypeSafeMatcher to enforce object class or resource type.
|
||||
|
||||
* Hamcrest_TypeSafeDiagnosingMatcher now extends Hamcrest_TypeSafeMatcher.
|
||||
|
||||
|
||||
== Version 0.2.0: Released Jul 14 2010 ==
|
||||
|
||||
Issues Fixed: 109, 111, 114, 115
|
||||
|
||||
* Description::appendValues() and appendValueList() accept Iterator and IteratorAggregate. [111]
|
||||
BaseDescription::appendValue() handles IteratorAggregate.
|
||||
|
||||
* assertThat() accepts a single boolean parameter and
|
||||
wraps any non-Matcher third parameter with equalTo().
|
||||
|
||||
* Removed null return value from assertThat(). [114]
|
||||
|
||||
* Fixed wrong variable name in contains(). [109]
|
||||
|
||||
* Added Hamcrest_Core_IsSet to assert isset().
|
||||
|
||||
assertThat(array('foo' => 'bar'), set('foo'));
|
||||
assertThat(array('foo' => 'bar'), notSet('bar'));
|
||||
|
||||
* Added Hamcrest_Core_IsTypeOf to assert built-in types with gettype(). [115]
|
||||
Types: array, boolean, double, integer, null, object, resource, and string.
|
||||
Note that gettype() returns "double" for float values.
|
||||
|
||||
assertThat($count, typeOf('integer'));
|
||||
assertThat(3.14159, typeOf('double'));
|
||||
assertThat(array('foo', 'bar'), typeOf('array'));
|
||||
assertThat(new stdClass(), typeOf('object'));
|
||||
|
||||
* Added type-specific matchers in new Hamcrest_Type package.
|
||||
|
||||
- IsArray
|
||||
- IsBoolean
|
||||
- IsDouble (includes float values)
|
||||
- IsInteger
|
||||
- IsObject
|
||||
- IsResource
|
||||
- IsString
|
||||
|
||||
assertThat($count, integerValue());
|
||||
assertThat(3.14159, floatValue());
|
||||
assertThat('foo', stringValue());
|
||||
|
||||
* Added Hamcrest_Type_IsNumeric to assert is_numeric().
|
||||
Matches values of type int and float/double or strings that are formatted as numbers.
|
||||
|
||||
assertThat(5, numericValue());
|
||||
assertThat('-5e+3', numericValue());
|
||||
|
||||
* Added Hamcrest_Type_IsCallable to assert is_callable().
|
||||
|
||||
assertThat('preg_match', callable());
|
||||
assertThat(array('SomeClass', 'SomeMethod'), callable());
|
||||
assertThat(array($object, 'SomeMethod'), callable());
|
||||
assertThat($object, callable());
|
||||
assertThat(function ($x, $y) { return $x + $y; }, callable());
|
||||
|
||||
* Added Hamcrest_Text_MatchesPattern for regex matching with preg_match().
|
||||
|
||||
assertThat('foobar', matchesPattern('/o+b/'));
|
||||
|
||||
* Added aliases:
|
||||
- atLeast() for greaterThanOrEqualTo()
|
||||
- atMost() for lessThanOrEqualTo()
|
||||
|
||||
|
||||
== Version 0.1.0: Released Jul 7 2010 ==
|
||||
|
||||
* Created PEAR package
|
||||
|
||||
* Core matchers
|
||||
|
27
Laravel/vendor/hamcrest/hamcrest-php/LICENSE.txt
vendored
Normal file
27
Laravel/vendor/hamcrest/hamcrest-php/LICENSE.txt
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
BSD License
|
||||
|
||||
Copyright (c) 2000-2014, www.hamcrest.org
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
Redistributions of source code must retain the above copyright notice, this list of
|
||||
conditions and the following disclaimer. Redistributions in binary form must reproduce
|
||||
the above copyright notice, this list of conditions and the following disclaimer in
|
||||
the documentation and/or other materials provided with the distribution.
|
||||
|
||||
Neither the name of Hamcrest nor the names of its contributors may be used to endorse
|
||||
or promote products derived from this software without specific prior written
|
||||
permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
|
||||
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
|
||||
SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
|
||||
TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
|
||||
WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
|
||||
DAMAGE.
|
51
Laravel/vendor/hamcrest/hamcrest-php/README.md
vendored
Normal file
51
Laravel/vendor/hamcrest/hamcrest-php/README.md
vendored
Normal file
@@ -0,0 +1,51 @@
|
||||
This is the PHP port of Hamcrest Matchers
|
||||
=========================================
|
||||
|
||||
[](https://scrutinizer-ci.com/g/hamcrest/hamcrest-php/)
|
||||
[](https://travis-ci.org/hamcrest/hamcrest-php)
|
||||
[](https://coveralls.io/r/hamcrest/hamcrest-php)
|
||||
|
||||
Hamcrest is a matching library originally written for Java, but
|
||||
subsequently ported to many other languages. hamcrest-php is the
|
||||
official PHP port of Hamcrest and essentially follows a literal
|
||||
translation of the original Java API for Hamcrest, with a few
|
||||
Exceptions, mostly down to PHP language barriers:
|
||||
|
||||
1. `instanceOf($theClass)` is actually `anInstanceOf($theClass)`
|
||||
|
||||
2. `both(containsString('a'))->and(containsString('b'))`
|
||||
is actually `both(containsString('a'))->andAlso(containsString('b'))`
|
||||
|
||||
3. `either(containsString('a'))->or(containsString('b'))`
|
||||
is actually `either(containsString('a'))->orElse(containsString('b'))`
|
||||
|
||||
4. Unless it would be non-semantic for a matcher to do so, hamcrest-php
|
||||
allows dynamic typing for it's input, in "the PHP way". Exception are
|
||||
where semantics surrounding the type itself would suggest otherwise,
|
||||
such as stringContains() and greaterThan().
|
||||
|
||||
5. Several official matchers have not been ported because they don't
|
||||
make sense or don't apply in PHP:
|
||||
|
||||
- `typeCompatibleWith($theClass)`
|
||||
- `eventFrom($source)`
|
||||
- `hasProperty($name)` **
|
||||
- `samePropertyValuesAs($obj)` **
|
||||
|
||||
6. When most of the collections matchers are finally ported, PHP-specific
|
||||
aliases will probably be created due to a difference in naming
|
||||
conventions between Java's Arrays, Collections, Sets and Maps compared
|
||||
with PHP's Arrays.
|
||||
|
||||
Usage
|
||||
-----
|
||||
|
||||
Hamcrest matchers are easy to use as:
|
||||
|
||||
```php
|
||||
Hamcrest_MatcherAssert::assertThat('a', Hamcrest_Matchers::equalToIgnoringCase('A'));
|
||||
```
|
||||
|
||||
** [Unless we consider POPO's (Plain Old PHP Objects) akin to JavaBeans]
|
||||
- The POPO thing is a joke. Java devs coin the term POJO's (Plain Old
|
||||
Java Objects).
|
22
Laravel/vendor/hamcrest/hamcrest-php/TODO.txt
vendored
Normal file
22
Laravel/vendor/hamcrest/hamcrest-php/TODO.txt
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
Still TODO Before Complete for PHP
|
||||
----------------------------------
|
||||
|
||||
Port:
|
||||
|
||||
- Hamcrest_Collection_*
|
||||
- IsCollectionWithSize
|
||||
- IsEmptyCollection
|
||||
- IsIn
|
||||
- IsTraversableContainingInAnyOrder
|
||||
- IsTraversableContainingInOrder
|
||||
- IsMapContaining (aliases)
|
||||
|
||||
Aliasing/Deprecation (questionable):
|
||||
|
||||
- Find and fix any factory methods that start with "is".
|
||||
|
||||
Namespaces:
|
||||
|
||||
- Investigate adding PHP 5.3+ namespace support in a way that still permits
|
||||
use in PHP 5.2.
|
||||
- Other than a parallel codebase, I don't see how this could be possible.
|
32
Laravel/vendor/hamcrest/hamcrest-php/composer.json
vendored
Normal file
32
Laravel/vendor/hamcrest/hamcrest-php/composer.json
vendored
Normal file
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"name": "hamcrest/hamcrest-php",
|
||||
"type": "library",
|
||||
"description": "This is the PHP port of Hamcrest Matchers",
|
||||
"keywords": ["test"],
|
||||
"license": "BSD",
|
||||
"authors": [
|
||||
],
|
||||
|
||||
"autoload": {
|
||||
"classmap": ["hamcrest"],
|
||||
"files": ["hamcrest/Hamcrest.php"]
|
||||
},
|
||||
"autoload-dev": {
|
||||
"classmap": ["tests", "generator"]
|
||||
},
|
||||
|
||||
"require": {
|
||||
"php": ">=5.3.2"
|
||||
},
|
||||
|
||||
"require-dev": {
|
||||
"satooshi/php-coveralls": "dev-master",
|
||||
"phpunit/php-file-iterator": "1.3.3"
|
||||
},
|
||||
|
||||
"replace": {
|
||||
"kodova/hamcrest-php": "*",
|
||||
"davedevelopment/hamcrest-php": "*",
|
||||
"cordoval/hamcrest-php": "*"
|
||||
}
|
||||
}
|
41
Laravel/vendor/hamcrest/hamcrest-php/generator/FactoryCall.php
vendored
Normal file
41
Laravel/vendor/hamcrest/hamcrest-php/generator/FactoryCall.php
vendored
Normal file
@@ -0,0 +1,41 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
|
||||
class FactoryCall
|
||||
{
|
||||
/**
|
||||
* Hamcrest standard is two spaces for each level of indentation.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const INDENT = ' ';
|
||||
|
||||
/**
|
||||
* @var FactoryMethod
|
||||
*/
|
||||
private $method;
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
private $name;
|
||||
|
||||
public function __construct(FactoryMethod $method, $name)
|
||||
{
|
||||
$this->method = $method;
|
||||
$this->name = $name;
|
||||
}
|
||||
|
||||
public function getMethod()
|
||||
{
|
||||
return $this->method;
|
||||
}
|
||||
|
||||
public function getName()
|
||||
{
|
||||
return $this->name;
|
||||
}
|
||||
}
|
72
Laravel/vendor/hamcrest/hamcrest-php/generator/FactoryClass.php
vendored
Normal file
72
Laravel/vendor/hamcrest/hamcrest-php/generator/FactoryClass.php
vendored
Normal file
@@ -0,0 +1,72 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
|
||||
class FactoryClass
|
||||
{
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
private $file;
|
||||
|
||||
/**
|
||||
* @var ReflectionClass
|
||||
*/
|
||||
private $reflector;
|
||||
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
private $methods;
|
||||
|
||||
public function __construct($file, ReflectionClass $class)
|
||||
{
|
||||
$this->file = $file;
|
||||
$this->reflector = $class;
|
||||
$this->extractFactoryMethods();
|
||||
}
|
||||
|
||||
public function extractFactoryMethods()
|
||||
{
|
||||
$this->methods = array();
|
||||
foreach ($this->getPublicStaticMethods() as $method) {
|
||||
if ($method->isFactory()) {
|
||||
// echo $this->getName() . '::' . $method->getName() . ' : ' . count($method->getCalls()) . PHP_EOL;
|
||||
$this->methods[] = $method;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function getPublicStaticMethods()
|
||||
{
|
||||
$methods = array();
|
||||
foreach ($this->reflector->getMethods(ReflectionMethod::IS_STATIC) as $method) {
|
||||
if ($method->isPublic() && $method->getDeclaringClass() == $this->reflector) {
|
||||
$methods[] = new FactoryMethod($this, $method);
|
||||
}
|
||||
}
|
||||
return $methods;
|
||||
}
|
||||
|
||||
public function getFile()
|
||||
{
|
||||
return $this->file;
|
||||
}
|
||||
|
||||
public function getName()
|
||||
{
|
||||
return $this->reflector->name;
|
||||
}
|
||||
|
||||
public function isFactory()
|
||||
{
|
||||
return !empty($this->methods);
|
||||
}
|
||||
|
||||
public function getMethods()
|
||||
{
|
||||
return $this->methods;
|
||||
}
|
||||
}
|
122
Laravel/vendor/hamcrest/hamcrest-php/generator/FactoryFile.php
vendored
Normal file
122
Laravel/vendor/hamcrest/hamcrest-php/generator/FactoryFile.php
vendored
Normal file
@@ -0,0 +1,122 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
|
||||
abstract class FactoryFile
|
||||
{
|
||||
/**
|
||||
* Hamcrest standard is two spaces for each level of indentation.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const INDENT = ' ';
|
||||
|
||||
private $indent;
|
||||
|
||||
private $file;
|
||||
|
||||
private $code;
|
||||
|
||||
public function __construct($file, $indent)
|
||||
{
|
||||
$this->file = $file;
|
||||
$this->indent = $indent;
|
||||
}
|
||||
|
||||
abstract public function addCall(FactoryCall $call);
|
||||
|
||||
abstract public function build();
|
||||
|
||||
public function addFileHeader()
|
||||
{
|
||||
$this->code = '';
|
||||
$this->addPart('file_header');
|
||||
}
|
||||
|
||||
public function addPart($name)
|
||||
{
|
||||
$this->addCode($this->readPart($name));
|
||||
}
|
||||
|
||||
public function addCode($code)
|
||||
{
|
||||
$this->code .= $code;
|
||||
}
|
||||
|
||||
public function readPart($name)
|
||||
{
|
||||
return file_get_contents(__DIR__ . "/parts/$name.txt");
|
||||
}
|
||||
|
||||
public function generateFactoryCall(FactoryCall $call)
|
||||
{
|
||||
$method = $call->getMethod();
|
||||
$code = $method->getComment($this->indent) . PHP_EOL;
|
||||
$code .= $this->generateDeclaration($call->getName(), $method);
|
||||
// $code .= $this->generateImport($method);
|
||||
$code .= $this->generateCall($method);
|
||||
$code .= $this->generateClosing();
|
||||
return $code;
|
||||
}
|
||||
|
||||
public function generateDeclaration($name, FactoryMethod $method)
|
||||
{
|
||||
$code = $this->indent . $this->getDeclarationModifiers()
|
||||
. 'function ' . $name . '('
|
||||
. $this->generateDeclarationArguments($method)
|
||||
. ')' . PHP_EOL . $this->indent . '{' . PHP_EOL;
|
||||
return $code;
|
||||
}
|
||||
|
||||
public function getDeclarationModifiers()
|
||||
{
|
||||
return '';
|
||||
}
|
||||
|
||||
public function generateDeclarationArguments(FactoryMethod $method)
|
||||
{
|
||||
if ($method->acceptsVariableArguments()) {
|
||||
return '/* args... */';
|
||||
} else {
|
||||
return $method->getParameterDeclarations();
|
||||
}
|
||||
}
|
||||
|
||||
public function generateImport(FactoryMethod $method)
|
||||
{
|
||||
return $this->indent . self::INDENT . "require_once '" . $method->getClass()->getFile() . "';" . PHP_EOL;
|
||||
}
|
||||
|
||||
public function generateCall(FactoryMethod $method)
|
||||
{
|
||||
$code = '';
|
||||
if ($method->acceptsVariableArguments()) {
|
||||
$code .= $this->indent . self::INDENT . '$args = func_get_args();' . PHP_EOL;
|
||||
}
|
||||
|
||||
$code .= $this->indent . self::INDENT . 'return ';
|
||||
if ($method->acceptsVariableArguments()) {
|
||||
$code .= 'call_user_func_array(array(\''
|
||||
. '\\' . $method->getClassName() . '\', \''
|
||||
. $method->getName() . '\'), $args);' . PHP_EOL;
|
||||
} else {
|
||||
$code .= '\\' . $method->getClassName() . '::'
|
||||
. $method->getName() . '('
|
||||
. $method->getParameterInvocations() . ');' . PHP_EOL;
|
||||
}
|
||||
|
||||
return $code;
|
||||
}
|
||||
|
||||
public function generateClosing()
|
||||
{
|
||||
return $this->indent . '}' . PHP_EOL;
|
||||
}
|
||||
|
||||
public function write()
|
||||
{
|
||||
file_put_contents($this->file, $this->code);
|
||||
}
|
||||
}
|
115
Laravel/vendor/hamcrest/hamcrest-php/generator/FactoryGenerator.php
vendored
Normal file
115
Laravel/vendor/hamcrest/hamcrest-php/generator/FactoryGenerator.php
vendored
Normal file
@@ -0,0 +1,115 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
|
||||
/**
|
||||
* Controls the process of extracting @factory doctags
|
||||
* and generating factory method files.
|
||||
*
|
||||
* Uses File_Iterator to scan for PHP files.
|
||||
*/
|
||||
class FactoryGenerator
|
||||
{
|
||||
/**
|
||||
* Path to the Hamcrest PHP files to process.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
private $path;
|
||||
|
||||
/**
|
||||
* @var array of FactoryFile
|
||||
*/
|
||||
private $factoryFiles;
|
||||
|
||||
public function __construct($path)
|
||||
{
|
||||
$this->path = $path;
|
||||
$this->factoryFiles = array();
|
||||
}
|
||||
|
||||
public function addFactoryFile(FactoryFile $factoryFile)
|
||||
{
|
||||
$this->factoryFiles[] = $factoryFile;
|
||||
}
|
||||
|
||||
public function generate()
|
||||
{
|
||||
$classes = $this->getClassesWithFactoryMethods();
|
||||
foreach ($classes as $class) {
|
||||
foreach ($class->getMethods() as $method) {
|
||||
foreach ($method->getCalls() as $call) {
|
||||
foreach ($this->factoryFiles as $file) {
|
||||
$file->addCall($call);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function write()
|
||||
{
|
||||
foreach ($this->factoryFiles as $file) {
|
||||
$file->build();
|
||||
$file->write();
|
||||
}
|
||||
}
|
||||
|
||||
public function getClassesWithFactoryMethods()
|
||||
{
|
||||
$classes = array();
|
||||
$files = $this->getSortedFiles();
|
||||
foreach ($files as $file) {
|
||||
$class = $this->getFactoryClass($file);
|
||||
if ($class !== null) {
|
||||
$classes[] = $class;
|
||||
}
|
||||
}
|
||||
|
||||
return $classes;
|
||||
}
|
||||
|
||||
public function getSortedFiles()
|
||||
{
|
||||
$iter = \File_Iterator_Factory::getFileIterator($this->path, '.php');
|
||||
$files = array();
|
||||
foreach ($iter as $file) {
|
||||
$files[] = $file;
|
||||
}
|
||||
sort($files, SORT_STRING);
|
||||
|
||||
return $files;
|
||||
}
|
||||
|
||||
public function getFactoryClass($file)
|
||||
{
|
||||
$name = $this->getFactoryClassName($file);
|
||||
if ($name !== null) {
|
||||
require_once $file;
|
||||
|
||||
if (class_exists($name)) {
|
||||
$class = new FactoryClass(substr($file, strpos($file, 'Hamcrest/')), new ReflectionClass($name));
|
||||
if ($class->isFactory()) {
|
||||
return $class;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public function getFactoryClassName($file)
|
||||
{
|
||||
$content = file_get_contents($file);
|
||||
if (preg_match('/namespace\s+(.+);/', $content, $namespace)
|
||||
&& preg_match('/\n\s*class\s+(\w+)\s+extends\b/', $content, $className)
|
||||
&& preg_match('/@factory\b/', $content)
|
||||
) {
|
||||
return $namespace[1] . '\\' . $className[1];
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
231
Laravel/vendor/hamcrest/hamcrest-php/generator/FactoryMethod.php
vendored
Normal file
231
Laravel/vendor/hamcrest/hamcrest-php/generator/FactoryMethod.php
vendored
Normal file
@@ -0,0 +1,231 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
|
||||
/**
|
||||
* Represents a single static factory method from a {@link Matcher} class.
|
||||
*
|
||||
* @todo Search method in file contents for func_get_args() to replace factoryVarArgs.
|
||||
*/
|
||||
class FactoryMethod
|
||||
{
|
||||
/**
|
||||
* @var FactoryClass
|
||||
*/
|
||||
private $class;
|
||||
|
||||
/**
|
||||
* @var ReflectionMethod
|
||||
*/
|
||||
private $reflector;
|
||||
|
||||
/**
|
||||
* @var array of string
|
||||
*/
|
||||
private $comment;
|
||||
|
||||
/**
|
||||
* @var bool
|
||||
*/
|
||||
private $isVarArgs;
|
||||
|
||||
/**
|
||||
* @var array of FactoryCall
|
||||
*/
|
||||
private $calls;
|
||||
|
||||
/**
|
||||
* @var array FactoryParameter
|
||||
*/
|
||||
private $parameters;
|
||||
|
||||
public function __construct(FactoryClass $class, ReflectionMethod $reflector)
|
||||
{
|
||||
$this->class = $class;
|
||||
$this->reflector = $reflector;
|
||||
$this->extractCommentWithoutLeadingShashesAndStars();
|
||||
$this->extractFactoryNamesFromComment();
|
||||
$this->extractParameters();
|
||||
}
|
||||
|
||||
public function extractCommentWithoutLeadingShashesAndStars()
|
||||
{
|
||||
$this->comment = explode("\n", $this->reflector->getDocComment());
|
||||
foreach ($this->comment as &$line) {
|
||||
$line = preg_replace('#^\s*(/\\*+|\\*+/|\\*)\s?#', '', $line);
|
||||
}
|
||||
$this->trimLeadingBlankLinesFromComment();
|
||||
$this->trimTrailingBlankLinesFromComment();
|
||||
}
|
||||
|
||||
public function trimLeadingBlankLinesFromComment()
|
||||
{
|
||||
while (count($this->comment) > 0) {
|
||||
$line = array_shift($this->comment);
|
||||
if (trim($line) != '') {
|
||||
array_unshift($this->comment, $line);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function trimTrailingBlankLinesFromComment()
|
||||
{
|
||||
while (count($this->comment) > 0) {
|
||||
$line = array_pop($this->comment);
|
||||
if (trim($line) != '') {
|
||||
array_push($this->comment, $line);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function extractFactoryNamesFromComment()
|
||||
{
|
||||
$this->calls = array();
|
||||
for ($i = 0; $i < count($this->comment); $i++) {
|
||||
if ($this->extractFactoryNamesFromLine($this->comment[$i])) {
|
||||
unset($this->comment[$i]);
|
||||
}
|
||||
}
|
||||
$this->trimTrailingBlankLinesFromComment();
|
||||
}
|
||||
|
||||
public function extractFactoryNamesFromLine($line)
|
||||
{
|
||||
if (preg_match('/^\s*@factory(\s+(.+))?$/', $line, $match)) {
|
||||
$this->createCalls(
|
||||
$this->extractFactoryNamesFromAnnotation(
|
||||
isset($match[2]) ? trim($match[2]) : null
|
||||
)
|
||||
);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public function extractFactoryNamesFromAnnotation($value)
|
||||
{
|
||||
$primaryName = $this->reflector->getName();
|
||||
if (empty($value)) {
|
||||
return array($primaryName);
|
||||
}
|
||||
preg_match_all('/(\.{3}|-|[a-zA-Z_][a-zA-Z_0-9]*)/', $value, $match);
|
||||
$names = $match[0];
|
||||
if (in_array('...', $names)) {
|
||||
$this->isVarArgs = true;
|
||||
}
|
||||
if (!in_array('-', $names) && !in_array($primaryName, $names)) {
|
||||
array_unshift($names, $primaryName);
|
||||
}
|
||||
return $names;
|
||||
}
|
||||
|
||||
public function createCalls(array $names)
|
||||
{
|
||||
$names = array_unique($names);
|
||||
foreach ($names as $name) {
|
||||
if ($name != '-' && $name != '...') {
|
||||
$this->calls[] = new FactoryCall($this, $name);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function extractParameters()
|
||||
{
|
||||
$this->parameters = array();
|
||||
if (!$this->isVarArgs) {
|
||||
foreach ($this->reflector->getParameters() as $parameter) {
|
||||
$this->parameters[] = new FactoryParameter($this, $parameter);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function getParameterDeclarations()
|
||||
{
|
||||
if ($this->isVarArgs || !$this->hasParameters()) {
|
||||
return '';
|
||||
}
|
||||
$params = array();
|
||||
foreach ($this->parameters as /** @var $parameter FactoryParameter */
|
||||
$parameter) {
|
||||
$params[] = $parameter->getDeclaration();
|
||||
}
|
||||
return implode(', ', $params);
|
||||
}
|
||||
|
||||
public function getParameterInvocations()
|
||||
{
|
||||
if ($this->isVarArgs) {
|
||||
return '';
|
||||
}
|
||||
$params = array();
|
||||
foreach ($this->parameters as $parameter) {
|
||||
$params[] = $parameter->getInvocation();
|
||||
}
|
||||
return implode(', ', $params);
|
||||
}
|
||||
|
||||
|
||||
public function getClass()
|
||||
{
|
||||
return $this->class;
|
||||
}
|
||||
|
||||
public function getClassName()
|
||||
{
|
||||
return $this->class->getName();
|
||||
}
|
||||
|
||||
public function getName()
|
||||
{
|
||||
return $this->reflector->name;
|
||||
}
|
||||
|
||||
public function isFactory()
|
||||
{
|
||||
return count($this->calls) > 0;
|
||||
}
|
||||
|
||||
public function getCalls()
|
||||
{
|
||||
return $this->calls;
|
||||
}
|
||||
|
||||
public function acceptsVariableArguments()
|
||||
{
|
||||
return $this->isVarArgs;
|
||||
}
|
||||
|
||||
public function hasParameters()
|
||||
{
|
||||
return !empty($this->parameters);
|
||||
}
|
||||
|
||||
public function getParameters()
|
||||
{
|
||||
return $this->parameters;
|
||||
}
|
||||
|
||||
public function getFullName()
|
||||
{
|
||||
return $this->getClassName() . '::' . $this->getName();
|
||||
}
|
||||
|
||||
public function getCommentText()
|
||||
{
|
||||
return implode(PHP_EOL, $this->comment);
|
||||
}
|
||||
|
||||
public function getComment($indent = '')
|
||||
{
|
||||
$comment = $indent . '/**';
|
||||
foreach ($this->comment as $line) {
|
||||
$comment .= PHP_EOL . rtrim($indent . ' * ' . $line);
|
||||
}
|
||||
$comment .= PHP_EOL . $indent . ' */';
|
||||
return $comment;
|
||||
}
|
||||
}
|
69
Laravel/vendor/hamcrest/hamcrest-php/generator/FactoryParameter.php
vendored
Normal file
69
Laravel/vendor/hamcrest/hamcrest-php/generator/FactoryParameter.php
vendored
Normal file
@@ -0,0 +1,69 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
|
||||
class FactoryParameter
|
||||
{
|
||||
/**
|
||||
* @var FactoryMethod
|
||||
*/
|
||||
private $method;
|
||||
|
||||
/**
|
||||
* @var ReflectionParameter
|
||||
*/
|
||||
private $reflector;
|
||||
|
||||
public function __construct(FactoryMethod $method, ReflectionParameter $reflector)
|
||||
{
|
||||
$this->method = $method;
|
||||
$this->reflector = $reflector;
|
||||
}
|
||||
|
||||
public function getDeclaration()
|
||||
{
|
||||
if ($this->reflector->isArray()) {
|
||||
$code = 'array ';
|
||||
} else {
|
||||
$class = $this->reflector->getClass();
|
||||
if ($class !== null) {
|
||||
$code = '\\' . $class->name . ' ';
|
||||
} else {
|
||||
$code = '';
|
||||
}
|
||||
}
|
||||
$code .= '$' . $this->reflector->name;
|
||||
if ($this->reflector->isOptional()) {
|
||||
$default = $this->reflector->getDefaultValue();
|
||||
if (is_null($default)) {
|
||||
$default = 'null';
|
||||
} elseif (is_bool($default)) {
|
||||
$default = $default ? 'true' : 'false';
|
||||
} elseif (is_string($default)) {
|
||||
$default = "'" . $default . "'";
|
||||
} elseif (is_numeric($default)) {
|
||||
$default = strval($default);
|
||||
} elseif (is_array($default)) {
|
||||
$default = 'array()';
|
||||
} else {
|
||||
echo 'Warning: unknown default type for ' . $this->getMethod()->getFullName() . PHP_EOL;
|
||||
var_dump($default);
|
||||
$default = 'null';
|
||||
}
|
||||
$code .= ' = ' . $default;
|
||||
}
|
||||
return $code;
|
||||
}
|
||||
|
||||
public function getInvocation()
|
||||
{
|
||||
return '$' . $this->reflector->name;
|
||||
}
|
||||
|
||||
public function getMethod()
|
||||
{
|
||||
return $this->method;
|
||||
}
|
||||
}
|
42
Laravel/vendor/hamcrest/hamcrest-php/generator/GlobalFunctionFile.php
vendored
Normal file
42
Laravel/vendor/hamcrest/hamcrest-php/generator/GlobalFunctionFile.php
vendored
Normal file
@@ -0,0 +1,42 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
|
||||
class GlobalFunctionFile extends FactoryFile
|
||||
{
|
||||
/**
|
||||
* @var string containing function definitions
|
||||
*/
|
||||
private $functions;
|
||||
|
||||
public function __construct($file)
|
||||
{
|
||||
parent::__construct($file, ' ');
|
||||
$this->functions = '';
|
||||
}
|
||||
|
||||
public function addCall(FactoryCall $call)
|
||||
{
|
||||
$this->functions .= PHP_EOL . $this->generateFactoryCall($call);
|
||||
}
|
||||
|
||||
public function build()
|
||||
{
|
||||
$this->addFileHeader();
|
||||
$this->addPart('functions_imports');
|
||||
$this->addPart('functions_header');
|
||||
$this->addCode($this->functions);
|
||||
$this->addPart('functions_footer');
|
||||
}
|
||||
|
||||
public function generateFactoryCall(FactoryCall $call)
|
||||
{
|
||||
$code = "if (!function_exists('{$call->getName()}')) {";
|
||||
$code.= parent::generateFactoryCall($call);
|
||||
$code.= "}\n";
|
||||
|
||||
return $code;
|
||||
}
|
||||
}
|
38
Laravel/vendor/hamcrest/hamcrest-php/generator/StaticMethodFile.php
vendored
Normal file
38
Laravel/vendor/hamcrest/hamcrest-php/generator/StaticMethodFile.php
vendored
Normal file
@@ -0,0 +1,38 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
|
||||
class StaticMethodFile extends FactoryFile
|
||||
{
|
||||
/**
|
||||
* @var string containing method definitions
|
||||
*/
|
||||
private $methods;
|
||||
|
||||
public function __construct($file)
|
||||
{
|
||||
parent::__construct($file, ' ');
|
||||
$this->methods = '';
|
||||
}
|
||||
|
||||
public function addCall(FactoryCall $call)
|
||||
{
|
||||
$this->methods .= PHP_EOL . $this->generateFactoryCall($call);
|
||||
}
|
||||
|
||||
public function getDeclarationModifiers()
|
||||
{
|
||||
return 'public static ';
|
||||
}
|
||||
|
||||
public function build()
|
||||
{
|
||||
$this->addFileHeader();
|
||||
$this->addPart('matchers_imports');
|
||||
$this->addPart('matchers_header');
|
||||
$this->addCode($this->methods);
|
||||
$this->addPart('matchers_footer');
|
||||
}
|
||||
}
|
7
Laravel/vendor/hamcrest/hamcrest-php/generator/parts/file_header.txt
vendored
Normal file
7
Laravel/vendor/hamcrest/hamcrest-php/generator/parts/file_header.txt
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
Copyright (c) 2009-2010 hamcrest.org
|
||||
*/
|
||||
|
||||
// This file is generated from the static method @factory doctags.
|
0
Laravel/vendor/hamcrest/hamcrest-php/generator/parts/functions_footer.txt
vendored
Normal file
0
Laravel/vendor/hamcrest/hamcrest-php/generator/parts/functions_footer.txt
vendored
Normal file
24
Laravel/vendor/hamcrest/hamcrest-php/generator/parts/functions_header.txt
vendored
Normal file
24
Laravel/vendor/hamcrest/hamcrest-php/generator/parts/functions_header.txt
vendored
Normal file
@@ -0,0 +1,24 @@
|
||||
|
||||
if (!function_exists('assertThat')) {
|
||||
/**
|
||||
* Make an assertion and throw {@link Hamcrest_AssertionError} if it fails.
|
||||
*
|
||||
* Example:
|
||||
* <pre>
|
||||
* //With an identifier
|
||||
* assertThat("assertion identifier", $apple->flavour(), equalTo("tasty"));
|
||||
* //Without an identifier
|
||||
* assertThat($apple->flavour(), equalTo("tasty"));
|
||||
* //Evaluating a boolean expression
|
||||
* assertThat("some error", $a > $b);
|
||||
* </pre>
|
||||
*/
|
||||
function assertThat()
|
||||
{
|
||||
$args = func_get_args();
|
||||
call_user_func_array(
|
||||
array('Hamcrest\MatcherAssert', 'assertThat'),
|
||||
$args
|
||||
);
|
||||
}
|
||||
}
|
0
Laravel/vendor/hamcrest/hamcrest-php/generator/parts/functions_imports.txt
vendored
Normal file
0
Laravel/vendor/hamcrest/hamcrest-php/generator/parts/functions_imports.txt
vendored
Normal file
1
Laravel/vendor/hamcrest/hamcrest-php/generator/parts/matchers_footer.txt
vendored
Normal file
1
Laravel/vendor/hamcrest/hamcrest-php/generator/parts/matchers_footer.txt
vendored
Normal file
@@ -0,0 +1 @@
|
||||
}
|
7
Laravel/vendor/hamcrest/hamcrest-php/generator/parts/matchers_header.txt
vendored
Normal file
7
Laravel/vendor/hamcrest/hamcrest-php/generator/parts/matchers_header.txt
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
|
||||
|
||||
/**
|
||||
* A series of static factories for all hamcrest matchers.
|
||||
*/
|
||||
class Matchers
|
||||
{
|
2
Laravel/vendor/hamcrest/hamcrest-php/generator/parts/matchers_imports.txt
vendored
Normal file
2
Laravel/vendor/hamcrest/hamcrest-php/generator/parts/matchers_imports.txt
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
|
||||
namespace Hamcrest;
|
37
Laravel/vendor/hamcrest/hamcrest-php/generator/run.php
vendored
Normal file
37
Laravel/vendor/hamcrest/hamcrest-php/generator/run.php
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
require __DIR__ . '/../vendor/autoload.php';
|
||||
|
||||
/*
|
||||
* Generates the Hamcrest\Matchers factory class and factory functions
|
||||
* from the @factory doctags in the various matchers.
|
||||
*/
|
||||
|
||||
define('GENERATOR_BASE', __DIR__);
|
||||
define('HAMCREST_BASE', realpath(dirname(GENERATOR_BASE) . DIRECTORY_SEPARATOR . 'hamcrest'));
|
||||
|
||||
define('GLOBAL_FUNCTIONS_FILE', HAMCREST_BASE . DIRECTORY_SEPARATOR . 'Hamcrest.php');
|
||||
define('STATIC_MATCHERS_FILE', HAMCREST_BASE . DIRECTORY_SEPARATOR . 'Hamcrest' . DIRECTORY_SEPARATOR . 'Matchers.php');
|
||||
|
||||
set_include_path(
|
||||
implode(
|
||||
PATH_SEPARATOR,
|
||||
array(
|
||||
GENERATOR_BASE,
|
||||
HAMCREST_BASE,
|
||||
get_include_path()
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
@unlink(GLOBAL_FUNCTIONS_FILE);
|
||||
@unlink(STATIC_MATCHERS_FILE);
|
||||
|
||||
$generator = new FactoryGenerator(HAMCREST_BASE . DIRECTORY_SEPARATOR . 'Hamcrest');
|
||||
$generator->addFactoryFile(new StaticMethodFile(STATIC_MATCHERS_FILE));
|
||||
$generator->addFactoryFile(new GlobalFunctionFile(GLOBAL_FUNCTIONS_FILE));
|
||||
$generator->generate();
|
||||
$generator->write();
|
805
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest.php
vendored
Normal file
805
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest.php
vendored
Normal file
@@ -0,0 +1,805 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
Copyright (c) 2009-2010 hamcrest.org
|
||||
*/
|
||||
|
||||
// This file is generated from the static method @factory doctags.
|
||||
|
||||
if (!function_exists('assertThat')) {
|
||||
/**
|
||||
* Make an assertion and throw {@link Hamcrest_AssertionError} if it fails.
|
||||
*
|
||||
* Example:
|
||||
* <pre>
|
||||
* //With an identifier
|
||||
* assertThat("assertion identifier", $apple->flavour(), equalTo("tasty"));
|
||||
* //Without an identifier
|
||||
* assertThat($apple->flavour(), equalTo("tasty"));
|
||||
* //Evaluating a boolean expression
|
||||
* assertThat("some error", $a > $b);
|
||||
* </pre>
|
||||
*/
|
||||
function assertThat()
|
||||
{
|
||||
$args = func_get_args();
|
||||
call_user_func_array(
|
||||
array('Hamcrest\MatcherAssert', 'assertThat'),
|
||||
$args
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('anArray')) { /**
|
||||
* Evaluates to true only if each $matcher[$i] is satisfied by $array[$i].
|
||||
*/
|
||||
function anArray(/* args... */)
|
||||
{
|
||||
$args = func_get_args();
|
||||
return call_user_func_array(array('\Hamcrest\Arrays\IsArray', 'anArray'), $args);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('hasItemInArray')) { /**
|
||||
* Evaluates to true if any item in an array satisfies the given matcher.
|
||||
*
|
||||
* @param mixed $item as a {@link Hamcrest\Matcher} or a value.
|
||||
*
|
||||
* @return \Hamcrest\Arrays\IsArrayContaining
|
||||
*/
|
||||
function hasItemInArray($item)
|
||||
{
|
||||
return \Hamcrest\Arrays\IsArrayContaining::hasItemInArray($item);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('hasValue')) { /**
|
||||
* Evaluates to true if any item in an array satisfies the given matcher.
|
||||
*
|
||||
* @param mixed $item as a {@link Hamcrest\Matcher} or a value.
|
||||
*
|
||||
* @return \Hamcrest\Arrays\IsArrayContaining
|
||||
*/
|
||||
function hasValue($item)
|
||||
{
|
||||
return \Hamcrest\Arrays\IsArrayContaining::hasItemInArray($item);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('arrayContainingInAnyOrder')) { /**
|
||||
* An array with elements that match the given matchers.
|
||||
*/
|
||||
function arrayContainingInAnyOrder(/* args... */)
|
||||
{
|
||||
$args = func_get_args();
|
||||
return call_user_func_array(array('\Hamcrest\Arrays\IsArrayContainingInAnyOrder', 'arrayContainingInAnyOrder'), $args);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('containsInAnyOrder')) { /**
|
||||
* An array with elements that match the given matchers.
|
||||
*/
|
||||
function containsInAnyOrder(/* args... */)
|
||||
{
|
||||
$args = func_get_args();
|
||||
return call_user_func_array(array('\Hamcrest\Arrays\IsArrayContainingInAnyOrder', 'arrayContainingInAnyOrder'), $args);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('arrayContaining')) { /**
|
||||
* An array with elements that match the given matchers in the same order.
|
||||
*/
|
||||
function arrayContaining(/* args... */)
|
||||
{
|
||||
$args = func_get_args();
|
||||
return call_user_func_array(array('\Hamcrest\Arrays\IsArrayContainingInOrder', 'arrayContaining'), $args);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('contains')) { /**
|
||||
* An array with elements that match the given matchers in the same order.
|
||||
*/
|
||||
function contains(/* args... */)
|
||||
{
|
||||
$args = func_get_args();
|
||||
return call_user_func_array(array('\Hamcrest\Arrays\IsArrayContainingInOrder', 'arrayContaining'), $args);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('hasKeyInArray')) { /**
|
||||
* Evaluates to true if any key in an array matches the given matcher.
|
||||
*
|
||||
* @param mixed $key as a {@link Hamcrest\Matcher} or a value.
|
||||
*
|
||||
* @return \Hamcrest\Arrays\IsArrayContainingKey
|
||||
*/
|
||||
function hasKeyInArray($key)
|
||||
{
|
||||
return \Hamcrest\Arrays\IsArrayContainingKey::hasKeyInArray($key);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('hasKey')) { /**
|
||||
* Evaluates to true if any key in an array matches the given matcher.
|
||||
*
|
||||
* @param mixed $key as a {@link Hamcrest\Matcher} or a value.
|
||||
*
|
||||
* @return \Hamcrest\Arrays\IsArrayContainingKey
|
||||
*/
|
||||
function hasKey($key)
|
||||
{
|
||||
return \Hamcrest\Arrays\IsArrayContainingKey::hasKeyInArray($key);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('hasKeyValuePair')) { /**
|
||||
* Test if an array has both an key and value in parity with each other.
|
||||
*/
|
||||
function hasKeyValuePair($key, $value)
|
||||
{
|
||||
return \Hamcrest\Arrays\IsArrayContainingKeyValuePair::hasKeyValuePair($key, $value);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('hasEntry')) { /**
|
||||
* Test if an array has both an key and value in parity with each other.
|
||||
*/
|
||||
function hasEntry($key, $value)
|
||||
{
|
||||
return \Hamcrest\Arrays\IsArrayContainingKeyValuePair::hasKeyValuePair($key, $value);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('arrayWithSize')) { /**
|
||||
* Does array size satisfy a given matcher?
|
||||
*
|
||||
* @param \Hamcrest\Matcher|int $size as a {@link Hamcrest\Matcher} or a value.
|
||||
*
|
||||
* @return \Hamcrest\Arrays\IsArrayWithSize
|
||||
*/
|
||||
function arrayWithSize($size)
|
||||
{
|
||||
return \Hamcrest\Arrays\IsArrayWithSize::arrayWithSize($size);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('emptyArray')) { /**
|
||||
* Matches an empty array.
|
||||
*/
|
||||
function emptyArray()
|
||||
{
|
||||
return \Hamcrest\Arrays\IsArrayWithSize::emptyArray();
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('nonEmptyArray')) { /**
|
||||
* Matches an empty array.
|
||||
*/
|
||||
function nonEmptyArray()
|
||||
{
|
||||
return \Hamcrest\Arrays\IsArrayWithSize::nonEmptyArray();
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('emptyTraversable')) { /**
|
||||
* Returns true if traversable is empty.
|
||||
*/
|
||||
function emptyTraversable()
|
||||
{
|
||||
return \Hamcrest\Collection\IsEmptyTraversable::emptyTraversable();
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('nonEmptyTraversable')) { /**
|
||||
* Returns true if traversable is not empty.
|
||||
*/
|
||||
function nonEmptyTraversable()
|
||||
{
|
||||
return \Hamcrest\Collection\IsEmptyTraversable::nonEmptyTraversable();
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('traversableWithSize')) { /**
|
||||
* Does traversable size satisfy a given matcher?
|
||||
*/
|
||||
function traversableWithSize($size)
|
||||
{
|
||||
return \Hamcrest\Collection\IsTraversableWithSize::traversableWithSize($size);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('allOf')) { /**
|
||||
* Evaluates to true only if ALL of the passed in matchers evaluate to true.
|
||||
*/
|
||||
function allOf(/* args... */)
|
||||
{
|
||||
$args = func_get_args();
|
||||
return call_user_func_array(array('\Hamcrest\Core\AllOf', 'allOf'), $args);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('anyOf')) { /**
|
||||
* Evaluates to true if ANY of the passed in matchers evaluate to true.
|
||||
*/
|
||||
function anyOf(/* args... */)
|
||||
{
|
||||
$args = func_get_args();
|
||||
return call_user_func_array(array('\Hamcrest\Core\AnyOf', 'anyOf'), $args);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('noneOf')) { /**
|
||||
* Evaluates to false if ANY of the passed in matchers evaluate to true.
|
||||
*/
|
||||
function noneOf(/* args... */)
|
||||
{
|
||||
$args = func_get_args();
|
||||
return call_user_func_array(array('\Hamcrest\Core\AnyOf', 'noneOf'), $args);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('both')) { /**
|
||||
* This is useful for fluently combining matchers that must both pass.
|
||||
* For example:
|
||||
* <pre>
|
||||
* assertThat($string, both(containsString("a"))->andAlso(containsString("b")));
|
||||
* </pre>
|
||||
*/
|
||||
function both(\Hamcrest\Matcher $matcher)
|
||||
{
|
||||
return \Hamcrest\Core\CombinableMatcher::both($matcher);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('either')) { /**
|
||||
* This is useful for fluently combining matchers where either may pass,
|
||||
* for example:
|
||||
* <pre>
|
||||
* assertThat($string, either(containsString("a"))->orElse(containsString("b")));
|
||||
* </pre>
|
||||
*/
|
||||
function either(\Hamcrest\Matcher $matcher)
|
||||
{
|
||||
return \Hamcrest\Core\CombinableMatcher::either($matcher);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('describedAs')) { /**
|
||||
* Wraps an existing matcher and overrides the description when it fails.
|
||||
*/
|
||||
function describedAs(/* args... */)
|
||||
{
|
||||
$args = func_get_args();
|
||||
return call_user_func_array(array('\Hamcrest\Core\DescribedAs', 'describedAs'), $args);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('everyItem')) { /**
|
||||
* @param Matcher $itemMatcher
|
||||
* A matcher to apply to every element in an array.
|
||||
*
|
||||
* @return \Hamcrest\Core\Every
|
||||
* Evaluates to TRUE for a collection in which every item matches $itemMatcher
|
||||
*/
|
||||
function everyItem(\Hamcrest\Matcher $itemMatcher)
|
||||
{
|
||||
return \Hamcrest\Core\Every::everyItem($itemMatcher);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('hasToString')) { /**
|
||||
* Does array size satisfy a given matcher?
|
||||
*/
|
||||
function hasToString($matcher)
|
||||
{
|
||||
return \Hamcrest\Core\HasToString::hasToString($matcher);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('is')) { /**
|
||||
* Decorates another Matcher, retaining the behavior but allowing tests
|
||||
* to be slightly more expressive.
|
||||
*
|
||||
* For example: assertThat($cheese, equalTo($smelly))
|
||||
* vs. assertThat($cheese, is(equalTo($smelly)))
|
||||
*/
|
||||
function is($value)
|
||||
{
|
||||
return \Hamcrest\Core\Is::is($value);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('anything')) { /**
|
||||
* This matcher always evaluates to true.
|
||||
*
|
||||
* @param string $description A meaningful string used when describing itself.
|
||||
*
|
||||
* @return \Hamcrest\Core\IsAnything
|
||||
*/
|
||||
function anything($description = 'ANYTHING')
|
||||
{
|
||||
return \Hamcrest\Core\IsAnything::anything($description);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('hasItem')) { /**
|
||||
* Test if the value is an array containing this matcher.
|
||||
*
|
||||
* Example:
|
||||
* <pre>
|
||||
* assertThat(array('a', 'b'), hasItem(equalTo('b')));
|
||||
* //Convenience defaults to equalTo()
|
||||
* assertThat(array('a', 'b'), hasItem('b'));
|
||||
* </pre>
|
||||
*/
|
||||
function hasItem(/* args... */)
|
||||
{
|
||||
$args = func_get_args();
|
||||
return call_user_func_array(array('\Hamcrest\Core\IsCollectionContaining', 'hasItem'), $args);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('hasItems')) { /**
|
||||
* Test if the value is an array containing elements that match all of these
|
||||
* matchers.
|
||||
*
|
||||
* Example:
|
||||
* <pre>
|
||||
* assertThat(array('a', 'b', 'c'), hasItems(equalTo('a'), equalTo('b')));
|
||||
* </pre>
|
||||
*/
|
||||
function hasItems(/* args... */)
|
||||
{
|
||||
$args = func_get_args();
|
||||
return call_user_func_array(array('\Hamcrest\Core\IsCollectionContaining', 'hasItems'), $args);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('equalTo')) { /**
|
||||
* Is the value equal to another value, as tested by the use of the "=="
|
||||
* comparison operator?
|
||||
*/
|
||||
function equalTo($item)
|
||||
{
|
||||
return \Hamcrest\Core\IsEqual::equalTo($item);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('identicalTo')) { /**
|
||||
* Tests of the value is identical to $value as tested by the "===" operator.
|
||||
*/
|
||||
function identicalTo($value)
|
||||
{
|
||||
return \Hamcrest\Core\IsIdentical::identicalTo($value);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('anInstanceOf')) { /**
|
||||
* Is the value an instance of a particular type?
|
||||
* This version assumes no relationship between the required type and
|
||||
* the signature of the method that sets it up, for example in
|
||||
* <code>assertThat($anObject, anInstanceOf('Thing'));</code>
|
||||
*/
|
||||
function anInstanceOf($theClass)
|
||||
{
|
||||
return \Hamcrest\Core\IsInstanceOf::anInstanceOf($theClass);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('any')) { /**
|
||||
* Is the value an instance of a particular type?
|
||||
* This version assumes no relationship between the required type and
|
||||
* the signature of the method that sets it up, for example in
|
||||
* <code>assertThat($anObject, anInstanceOf('Thing'));</code>
|
||||
*/
|
||||
function any($theClass)
|
||||
{
|
||||
return \Hamcrest\Core\IsInstanceOf::anInstanceOf($theClass);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('not')) { /**
|
||||
* Matches if value does not match $value.
|
||||
*/
|
||||
function not($value)
|
||||
{
|
||||
return \Hamcrest\Core\IsNot::not($value);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('nullValue')) { /**
|
||||
* Matches if value is null.
|
||||
*/
|
||||
function nullValue()
|
||||
{
|
||||
return \Hamcrest\Core\IsNull::nullValue();
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('notNullValue')) { /**
|
||||
* Matches if value is not null.
|
||||
*/
|
||||
function notNullValue()
|
||||
{
|
||||
return \Hamcrest\Core\IsNull::notNullValue();
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('sameInstance')) { /**
|
||||
* Creates a new instance of IsSame.
|
||||
*
|
||||
* @param mixed $object
|
||||
* The predicate evaluates to true only when the argument is
|
||||
* this object.
|
||||
*
|
||||
* @return \Hamcrest\Core\IsSame
|
||||
*/
|
||||
function sameInstance($object)
|
||||
{
|
||||
return \Hamcrest\Core\IsSame::sameInstance($object);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('typeOf')) { /**
|
||||
* Is the value a particular built-in type?
|
||||
*/
|
||||
function typeOf($theType)
|
||||
{
|
||||
return \Hamcrest\Core\IsTypeOf::typeOf($theType);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('set')) { /**
|
||||
* Matches if value (class, object, or array) has named $property.
|
||||
*/
|
||||
function set($property)
|
||||
{
|
||||
return \Hamcrest\Core\Set::set($property);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('notSet')) { /**
|
||||
* Matches if value (class, object, or array) does not have named $property.
|
||||
*/
|
||||
function notSet($property)
|
||||
{
|
||||
return \Hamcrest\Core\Set::notSet($property);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('closeTo')) { /**
|
||||
* Matches if value is a number equal to $value within some range of
|
||||
* acceptable error $delta.
|
||||
*/
|
||||
function closeTo($value, $delta)
|
||||
{
|
||||
return \Hamcrest\Number\IsCloseTo::closeTo($value, $delta);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('comparesEqualTo')) { /**
|
||||
* The value is not > $value, nor < $value.
|
||||
*/
|
||||
function comparesEqualTo($value)
|
||||
{
|
||||
return \Hamcrest\Number\OrderingComparison::comparesEqualTo($value);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('greaterThan')) { /**
|
||||
* The value is > $value.
|
||||
*/
|
||||
function greaterThan($value)
|
||||
{
|
||||
return \Hamcrest\Number\OrderingComparison::greaterThan($value);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('greaterThanOrEqualTo')) { /**
|
||||
* The value is >= $value.
|
||||
*/
|
||||
function greaterThanOrEqualTo($value)
|
||||
{
|
||||
return \Hamcrest\Number\OrderingComparison::greaterThanOrEqualTo($value);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('atLeast')) { /**
|
||||
* The value is >= $value.
|
||||
*/
|
||||
function atLeast($value)
|
||||
{
|
||||
return \Hamcrest\Number\OrderingComparison::greaterThanOrEqualTo($value);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('lessThan')) { /**
|
||||
* The value is < $value.
|
||||
*/
|
||||
function lessThan($value)
|
||||
{
|
||||
return \Hamcrest\Number\OrderingComparison::lessThan($value);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('lessThanOrEqualTo')) { /**
|
||||
* The value is <= $value.
|
||||
*/
|
||||
function lessThanOrEqualTo($value)
|
||||
{
|
||||
return \Hamcrest\Number\OrderingComparison::lessThanOrEqualTo($value);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('atMost')) { /**
|
||||
* The value is <= $value.
|
||||
*/
|
||||
function atMost($value)
|
||||
{
|
||||
return \Hamcrest\Number\OrderingComparison::lessThanOrEqualTo($value);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('isEmptyString')) { /**
|
||||
* Matches if value is a zero-length string.
|
||||
*/
|
||||
function isEmptyString()
|
||||
{
|
||||
return \Hamcrest\Text\IsEmptyString::isEmptyString();
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('emptyString')) { /**
|
||||
* Matches if value is a zero-length string.
|
||||
*/
|
||||
function emptyString()
|
||||
{
|
||||
return \Hamcrest\Text\IsEmptyString::isEmptyString();
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('isEmptyOrNullString')) { /**
|
||||
* Matches if value is null or a zero-length string.
|
||||
*/
|
||||
function isEmptyOrNullString()
|
||||
{
|
||||
return \Hamcrest\Text\IsEmptyString::isEmptyOrNullString();
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('nullOrEmptyString')) { /**
|
||||
* Matches if value is null or a zero-length string.
|
||||
*/
|
||||
function nullOrEmptyString()
|
||||
{
|
||||
return \Hamcrest\Text\IsEmptyString::isEmptyOrNullString();
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('isNonEmptyString')) { /**
|
||||
* Matches if value is a non-zero-length string.
|
||||
*/
|
||||
function isNonEmptyString()
|
||||
{
|
||||
return \Hamcrest\Text\IsEmptyString::isNonEmptyString();
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('nonEmptyString')) { /**
|
||||
* Matches if value is a non-zero-length string.
|
||||
*/
|
||||
function nonEmptyString()
|
||||
{
|
||||
return \Hamcrest\Text\IsEmptyString::isNonEmptyString();
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('equalToIgnoringCase')) { /**
|
||||
* Matches if value is a string equal to $string, regardless of the case.
|
||||
*/
|
||||
function equalToIgnoringCase($string)
|
||||
{
|
||||
return \Hamcrest\Text\IsEqualIgnoringCase::equalToIgnoringCase($string);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('equalToIgnoringWhiteSpace')) { /**
|
||||
* Matches if value is a string equal to $string, regardless of whitespace.
|
||||
*/
|
||||
function equalToIgnoringWhiteSpace($string)
|
||||
{
|
||||
return \Hamcrest\Text\IsEqualIgnoringWhiteSpace::equalToIgnoringWhiteSpace($string);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('matchesPattern')) { /**
|
||||
* Matches if value is a string that matches regular expression $pattern.
|
||||
*/
|
||||
function matchesPattern($pattern)
|
||||
{
|
||||
return \Hamcrest\Text\MatchesPattern::matchesPattern($pattern);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('containsString')) { /**
|
||||
* Matches if value is a string that contains $substring.
|
||||
*/
|
||||
function containsString($substring)
|
||||
{
|
||||
return \Hamcrest\Text\StringContains::containsString($substring);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('containsStringIgnoringCase')) { /**
|
||||
* Matches if value is a string that contains $substring regardless of the case.
|
||||
*/
|
||||
function containsStringIgnoringCase($substring)
|
||||
{
|
||||
return \Hamcrest\Text\StringContainsIgnoringCase::containsStringIgnoringCase($substring);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('stringContainsInOrder')) { /**
|
||||
* Matches if value contains $substrings in a constrained order.
|
||||
*/
|
||||
function stringContainsInOrder(/* args... */)
|
||||
{
|
||||
$args = func_get_args();
|
||||
return call_user_func_array(array('\Hamcrest\Text\StringContainsInOrder', 'stringContainsInOrder'), $args);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('endsWith')) { /**
|
||||
* Matches if value is a string that ends with $substring.
|
||||
*/
|
||||
function endsWith($substring)
|
||||
{
|
||||
return \Hamcrest\Text\StringEndsWith::endsWith($substring);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('startsWith')) { /**
|
||||
* Matches if value is a string that starts with $substring.
|
||||
*/
|
||||
function startsWith($substring)
|
||||
{
|
||||
return \Hamcrest\Text\StringStartsWith::startsWith($substring);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('arrayValue')) { /**
|
||||
* Is the value an array?
|
||||
*/
|
||||
function arrayValue()
|
||||
{
|
||||
return \Hamcrest\Type\IsArray::arrayValue();
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('booleanValue')) { /**
|
||||
* Is the value a boolean?
|
||||
*/
|
||||
function booleanValue()
|
||||
{
|
||||
return \Hamcrest\Type\IsBoolean::booleanValue();
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('boolValue')) { /**
|
||||
* Is the value a boolean?
|
||||
*/
|
||||
function boolValue()
|
||||
{
|
||||
return \Hamcrest\Type\IsBoolean::booleanValue();
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('callableValue')) { /**
|
||||
* Is the value callable?
|
||||
*/
|
||||
function callableValue()
|
||||
{
|
||||
return \Hamcrest\Type\IsCallable::callableValue();
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('doubleValue')) { /**
|
||||
* Is the value a float/double?
|
||||
*/
|
||||
function doubleValue()
|
||||
{
|
||||
return \Hamcrest\Type\IsDouble::doubleValue();
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('floatValue')) { /**
|
||||
* Is the value a float/double?
|
||||
*/
|
||||
function floatValue()
|
||||
{
|
||||
return \Hamcrest\Type\IsDouble::doubleValue();
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('integerValue')) { /**
|
||||
* Is the value an integer?
|
||||
*/
|
||||
function integerValue()
|
||||
{
|
||||
return \Hamcrest\Type\IsInteger::integerValue();
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('intValue')) { /**
|
||||
* Is the value an integer?
|
||||
*/
|
||||
function intValue()
|
||||
{
|
||||
return \Hamcrest\Type\IsInteger::integerValue();
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('numericValue')) { /**
|
||||
* Is the value a numeric?
|
||||
*/
|
||||
function numericValue()
|
||||
{
|
||||
return \Hamcrest\Type\IsNumeric::numericValue();
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('objectValue')) { /**
|
||||
* Is the value an object?
|
||||
*/
|
||||
function objectValue()
|
||||
{
|
||||
return \Hamcrest\Type\IsObject::objectValue();
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('anObject')) { /**
|
||||
* Is the value an object?
|
||||
*/
|
||||
function anObject()
|
||||
{
|
||||
return \Hamcrest\Type\IsObject::objectValue();
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('resourceValue')) { /**
|
||||
* Is the value a resource?
|
||||
*/
|
||||
function resourceValue()
|
||||
{
|
||||
return \Hamcrest\Type\IsResource::resourceValue();
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('scalarValue')) { /**
|
||||
* Is the value a scalar (boolean, integer, double, or string)?
|
||||
*/
|
||||
function scalarValue()
|
||||
{
|
||||
return \Hamcrest\Type\IsScalar::scalarValue();
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('stringValue')) { /**
|
||||
* Is the value a string?
|
||||
*/
|
||||
function stringValue()
|
||||
{
|
||||
return \Hamcrest\Type\IsString::stringValue();
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('hasXPath')) { /**
|
||||
* Wraps <code>$matcher</code> with {@link Hamcrest\Core\IsEqual)
|
||||
* if it's not a matcher and the XPath in <code>count()</code>
|
||||
* if it's an integer.
|
||||
*/
|
||||
function hasXPath($xpath, $matcher = null)
|
||||
{
|
||||
return \Hamcrest\Xml\HasXPath::hasXPath($xpath, $matcher);
|
||||
}
|
||||
}
|
118
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArray.php
vendored
Normal file
118
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArray.php
vendored
Normal file
@@ -0,0 +1,118 @@
|
||||
<?php
|
||||
namespace Hamcrest\Arrays;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
|
||||
// NOTE: This class is not exactly a direct port of Java's since Java handles
|
||||
// arrays quite differently than PHP
|
||||
|
||||
// TODO: Allow this to take matchers or values within the array
|
||||
use Hamcrest\Description;
|
||||
use Hamcrest\TypeSafeMatcher;
|
||||
use Hamcrest\Util;
|
||||
|
||||
/**
|
||||
* Matcher for array whose elements satisfy a sequence of matchers.
|
||||
* The array size must equal the number of element matchers.
|
||||
*/
|
||||
class IsArray extends TypeSafeMatcher
|
||||
{
|
||||
|
||||
private $_elementMatchers;
|
||||
|
||||
public function __construct(array $elementMatchers)
|
||||
{
|
||||
parent::__construct(self::TYPE_ARRAY);
|
||||
|
||||
Util::checkAllAreMatchers($elementMatchers);
|
||||
|
||||
$this->_elementMatchers = $elementMatchers;
|
||||
}
|
||||
|
||||
protected function matchesSafely($array)
|
||||
{
|
||||
if (array_keys($array) != array_keys($this->_elementMatchers)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
/** @var $matcher \Hamcrest\Matcher */
|
||||
foreach ($this->_elementMatchers as $k => $matcher) {
|
||||
if (!$matcher->matches($array[$k])) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
protected function describeMismatchSafely($actual, Description $mismatchDescription)
|
||||
{
|
||||
if (count($actual) != count($this->_elementMatchers)) {
|
||||
$mismatchDescription->appendText('array length was ' . count($actual));
|
||||
|
||||
return;
|
||||
} elseif (array_keys($actual) != array_keys($this->_elementMatchers)) {
|
||||
$mismatchDescription->appendText('array keys were ')
|
||||
->appendValueList(
|
||||
$this->descriptionStart(),
|
||||
$this->descriptionSeparator(),
|
||||
$this->descriptionEnd(),
|
||||
array_keys($actual)
|
||||
)
|
||||
;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
/** @var $matcher \Hamcrest\Matcher */
|
||||
foreach ($this->_elementMatchers as $k => $matcher) {
|
||||
if (!$matcher->matches($actual[$k])) {
|
||||
$mismatchDescription->appendText('element ')->appendValue($k)
|
||||
->appendText(' was ')->appendValue($actual[$k]);
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function describeTo(Description $description)
|
||||
{
|
||||
$description->appendList(
|
||||
$this->descriptionStart(),
|
||||
$this->descriptionSeparator(),
|
||||
$this->descriptionEnd(),
|
||||
$this->_elementMatchers
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Evaluates to true only if each $matcher[$i] is satisfied by $array[$i].
|
||||
*
|
||||
* @factory ...
|
||||
*/
|
||||
public static function anArray(/* args... */)
|
||||
{
|
||||
$args = func_get_args();
|
||||
|
||||
return new self(Util::createMatcherArray($args));
|
||||
}
|
||||
|
||||
// -- Protected Methods
|
||||
|
||||
protected function descriptionStart()
|
||||
{
|
||||
return '[';
|
||||
}
|
||||
|
||||
protected function descriptionSeparator()
|
||||
{
|
||||
return ', ';
|
||||
}
|
||||
|
||||
protected function descriptionEnd()
|
||||
{
|
||||
return ']';
|
||||
}
|
||||
}
|
63
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContaining.php
vendored
Normal file
63
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContaining.php
vendored
Normal file
@@ -0,0 +1,63 @@
|
||||
<?php
|
||||
namespace Hamcrest\Arrays;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
use Hamcrest\Description;
|
||||
use Hamcrest\Matcher;
|
||||
use Hamcrest\TypeSafeMatcher;
|
||||
use Hamcrest\Util;
|
||||
|
||||
/**
|
||||
* Matches if an array contains an item satisfying a nested matcher.
|
||||
*/
|
||||
class IsArrayContaining extends TypeSafeMatcher
|
||||
{
|
||||
|
||||
private $_elementMatcher;
|
||||
|
||||
public function __construct(Matcher $elementMatcher)
|
||||
{
|
||||
parent::__construct(self::TYPE_ARRAY);
|
||||
|
||||
$this->_elementMatcher = $elementMatcher;
|
||||
}
|
||||
|
||||
protected function matchesSafely($array)
|
||||
{
|
||||
foreach ($array as $element) {
|
||||
if ($this->_elementMatcher->matches($element)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
protected function describeMismatchSafely($array, Description $mismatchDescription)
|
||||
{
|
||||
$mismatchDescription->appendText('was ')->appendValue($array);
|
||||
}
|
||||
|
||||
public function describeTo(Description $description)
|
||||
{
|
||||
$description
|
||||
->appendText('an array containing ')
|
||||
->appendDescriptionOf($this->_elementMatcher)
|
||||
;
|
||||
}
|
||||
|
||||
/**
|
||||
* Evaluates to true if any item in an array satisfies the given matcher.
|
||||
*
|
||||
* @param mixed $item as a {@link Hamcrest\Matcher} or a value.
|
||||
*
|
||||
* @return \Hamcrest\Arrays\IsArrayContaining
|
||||
* @factory hasValue
|
||||
*/
|
||||
public static function hasItemInArray($item)
|
||||
{
|
||||
return new self(Util::wrapValueWithIsEqual($item));
|
||||
}
|
||||
}
|
59
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingInAnyOrder.php
vendored
Normal file
59
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingInAnyOrder.php
vendored
Normal file
@@ -0,0 +1,59 @@
|
||||
<?php
|
||||
namespace Hamcrest\Arrays;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
use Hamcrest\Description;
|
||||
use Hamcrest\TypeSafeDiagnosingMatcher;
|
||||
use Hamcrest\Util;
|
||||
|
||||
/**
|
||||
* Matches if an array contains a set of items satisfying nested matchers.
|
||||
*/
|
||||
class IsArrayContainingInAnyOrder extends TypeSafeDiagnosingMatcher
|
||||
{
|
||||
|
||||
private $_elementMatchers;
|
||||
|
||||
public function __construct(array $elementMatchers)
|
||||
{
|
||||
parent::__construct(self::TYPE_ARRAY);
|
||||
|
||||
Util::checkAllAreMatchers($elementMatchers);
|
||||
|
||||
$this->_elementMatchers = $elementMatchers;
|
||||
}
|
||||
|
||||
protected function matchesSafelyWithDiagnosticDescription($array, Description $mismatchDescription)
|
||||
{
|
||||
$matching = new MatchingOnce($this->_elementMatchers, $mismatchDescription);
|
||||
|
||||
foreach ($array as $element) {
|
||||
if (!$matching->matches($element)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return $matching->isFinished($array);
|
||||
}
|
||||
|
||||
public function describeTo(Description $description)
|
||||
{
|
||||
$description->appendList('[', ', ', ']', $this->_elementMatchers)
|
||||
->appendText(' in any order')
|
||||
;
|
||||
}
|
||||
|
||||
/**
|
||||
* An array with elements that match the given matchers.
|
||||
*
|
||||
* @factory containsInAnyOrder ...
|
||||
*/
|
||||
public static function arrayContainingInAnyOrder(/* args... */)
|
||||
{
|
||||
$args = func_get_args();
|
||||
|
||||
return new self(Util::createMatcherArray($args));
|
||||
}
|
||||
}
|
57
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingInOrder.php
vendored
Normal file
57
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingInOrder.php
vendored
Normal file
@@ -0,0 +1,57 @@
|
||||
<?php
|
||||
namespace Hamcrest\Arrays;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
use Hamcrest\Description;
|
||||
use Hamcrest\TypeSafeDiagnosingMatcher;
|
||||
use Hamcrest\Util;
|
||||
|
||||
/**
|
||||
* Matches if an array contains a set of items satisfying nested matchers.
|
||||
*/
|
||||
class IsArrayContainingInOrder extends TypeSafeDiagnosingMatcher
|
||||
{
|
||||
|
||||
private $_elementMatchers;
|
||||
|
||||
public function __construct(array $elementMatchers)
|
||||
{
|
||||
parent::__construct(self::TYPE_ARRAY);
|
||||
|
||||
Util::checkAllAreMatchers($elementMatchers);
|
||||
|
||||
$this->_elementMatchers = $elementMatchers;
|
||||
}
|
||||
|
||||
protected function matchesSafelyWithDiagnosticDescription($array, Description $mismatchDescription)
|
||||
{
|
||||
$series = new SeriesMatchingOnce($this->_elementMatchers, $mismatchDescription);
|
||||
|
||||
foreach ($array as $element) {
|
||||
if (!$series->matches($element)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return $series->isFinished();
|
||||
}
|
||||
|
||||
public function describeTo(Description $description)
|
||||
{
|
||||
$description->appendList('[', ', ', ']', $this->_elementMatchers);
|
||||
}
|
||||
|
||||
/**
|
||||
* An array with elements that match the given matchers in the same order.
|
||||
*
|
||||
* @factory contains ...
|
||||
*/
|
||||
public static function arrayContaining(/* args... */)
|
||||
{
|
||||
$args = func_get_args();
|
||||
|
||||
return new self(Util::createMatcherArray($args));
|
||||
}
|
||||
}
|
75
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingKey.php
vendored
Normal file
75
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingKey.php
vendored
Normal file
@@ -0,0 +1,75 @@
|
||||
<?php
|
||||
namespace Hamcrest\Arrays;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
use Hamcrest\Description;
|
||||
use Hamcrest\Matcher;
|
||||
use Hamcrest\TypeSafeMatcher;
|
||||
use Hamcrest\Util;
|
||||
|
||||
/**
|
||||
* Matches if an array contains the specified key.
|
||||
*/
|
||||
class IsArrayContainingKey extends TypeSafeMatcher
|
||||
{
|
||||
|
||||
private $_keyMatcher;
|
||||
|
||||
public function __construct(Matcher $keyMatcher)
|
||||
{
|
||||
parent::__construct(self::TYPE_ARRAY);
|
||||
|
||||
$this->_keyMatcher = $keyMatcher;
|
||||
}
|
||||
|
||||
protected function matchesSafely($array)
|
||||
{
|
||||
foreach ($array as $key => $element) {
|
||||
if ($this->_keyMatcher->matches($key)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
protected function describeMismatchSafely($array, Description $mismatchDescription)
|
||||
{
|
||||
//Not using appendValueList() so that keys can be shown
|
||||
$mismatchDescription->appendText('array was ')
|
||||
->appendText('[')
|
||||
;
|
||||
$loop = false;
|
||||
foreach ($array as $key => $value) {
|
||||
if ($loop) {
|
||||
$mismatchDescription->appendText(', ');
|
||||
}
|
||||
$mismatchDescription->appendValue($key)->appendText(' => ')->appendValue($value);
|
||||
$loop = true;
|
||||
}
|
||||
$mismatchDescription->appendText(']');
|
||||
}
|
||||
|
||||
public function describeTo(Description $description)
|
||||
{
|
||||
$description
|
||||
->appendText('array with key ')
|
||||
->appendDescriptionOf($this->_keyMatcher)
|
||||
;
|
||||
}
|
||||
|
||||
/**
|
||||
* Evaluates to true if any key in an array matches the given matcher.
|
||||
*
|
||||
* @param mixed $key as a {@link Hamcrest\Matcher} or a value.
|
||||
*
|
||||
* @return \Hamcrest\Arrays\IsArrayContainingKey
|
||||
* @factory hasKey
|
||||
*/
|
||||
public static function hasKeyInArray($key)
|
||||
{
|
||||
return new self(Util::wrapValueWithIsEqual($key));
|
||||
}
|
||||
}
|
80
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingKeyValuePair.php
vendored
Normal file
80
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingKeyValuePair.php
vendored
Normal file
@@ -0,0 +1,80 @@
|
||||
<?php
|
||||
namespace Hamcrest\Arrays;
|
||||
|
||||
/**
|
||||
* Tests for the presence of both a key and value inside an array.
|
||||
*/
|
||||
use Hamcrest\Description;
|
||||
use Hamcrest\Matcher;
|
||||
use Hamcrest\TypeSafeMatcher;
|
||||
use Hamcrest\Util;
|
||||
|
||||
/**
|
||||
* @namespace
|
||||
*/
|
||||
|
||||
class IsArrayContainingKeyValuePair extends TypeSafeMatcher
|
||||
{
|
||||
|
||||
private $_keyMatcher;
|
||||
private $_valueMatcher;
|
||||
|
||||
public function __construct(Matcher $keyMatcher, Matcher $valueMatcher)
|
||||
{
|
||||
parent::__construct(self::TYPE_ARRAY);
|
||||
|
||||
$this->_keyMatcher = $keyMatcher;
|
||||
$this->_valueMatcher = $valueMatcher;
|
||||
}
|
||||
|
||||
protected function matchesSafely($array)
|
||||
{
|
||||
foreach ($array as $key => $value) {
|
||||
if ($this->_keyMatcher->matches($key) && $this->_valueMatcher->matches($value)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
protected function describeMismatchSafely($array, Description $mismatchDescription)
|
||||
{
|
||||
//Not using appendValueList() so that keys can be shown
|
||||
$mismatchDescription->appendText('array was ')
|
||||
->appendText('[')
|
||||
;
|
||||
$loop = false;
|
||||
foreach ($array as $key => $value) {
|
||||
if ($loop) {
|
||||
$mismatchDescription->appendText(', ');
|
||||
}
|
||||
$mismatchDescription->appendValue($key)->appendText(' => ')->appendValue($value);
|
||||
$loop = true;
|
||||
}
|
||||
$mismatchDescription->appendText(']');
|
||||
}
|
||||
|
||||
public function describeTo(Description $description)
|
||||
{
|
||||
$description->appendText('array containing [')
|
||||
->appendDescriptionOf($this->_keyMatcher)
|
||||
->appendText(' => ')
|
||||
->appendDescriptionOf($this->_valueMatcher)
|
||||
->appendText(']')
|
||||
;
|
||||
}
|
||||
|
||||
/**
|
||||
* Test if an array has both an key and value in parity with each other.
|
||||
*
|
||||
* @factory hasEntry
|
||||
*/
|
||||
public static function hasKeyValuePair($key, $value)
|
||||
{
|
||||
return new self(
|
||||
Util::wrapValueWithIsEqual($key),
|
||||
Util::wrapValueWithIsEqual($value)
|
||||
);
|
||||
}
|
||||
}
|
73
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayWithSize.php
vendored
Normal file
73
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayWithSize.php
vendored
Normal file
@@ -0,0 +1,73 @@
|
||||
<?php
|
||||
namespace Hamcrest\Arrays;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
use Hamcrest\Core\DescribedAs;
|
||||
use Hamcrest\Core\IsNot;
|
||||
use Hamcrest\FeatureMatcher;
|
||||
use Hamcrest\Matcher;
|
||||
use Hamcrest\Util;
|
||||
|
||||
/**
|
||||
* Matches if array size satisfies a nested matcher.
|
||||
*/
|
||||
class IsArrayWithSize extends FeatureMatcher
|
||||
{
|
||||
|
||||
public function __construct(Matcher $sizeMatcher)
|
||||
{
|
||||
parent::__construct(
|
||||
self::TYPE_ARRAY,
|
||||
null,
|
||||
$sizeMatcher,
|
||||
'an array with size',
|
||||
'array size'
|
||||
);
|
||||
}
|
||||
|
||||
protected function featureValueOf($array)
|
||||
{
|
||||
return count($array);
|
||||
}
|
||||
|
||||
/**
|
||||
* Does array size satisfy a given matcher?
|
||||
*
|
||||
* @param \Hamcrest\Matcher|int $size as a {@link Hamcrest\Matcher} or a value.
|
||||
*
|
||||
* @return \Hamcrest\Arrays\IsArrayWithSize
|
||||
* @factory
|
||||
*/
|
||||
public static function arrayWithSize($size)
|
||||
{
|
||||
return new self(Util::wrapValueWithIsEqual($size));
|
||||
}
|
||||
|
||||
/**
|
||||
* Matches an empty array.
|
||||
*
|
||||
* @factory
|
||||
*/
|
||||
public static function emptyArray()
|
||||
{
|
||||
return DescribedAs::describedAs(
|
||||
'an empty array',
|
||||
self::arrayWithSize(0)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Matches an empty array.
|
||||
*
|
||||
* @factory
|
||||
*/
|
||||
public static function nonEmptyArray()
|
||||
{
|
||||
return DescribedAs::describedAs(
|
||||
'a non-empty array',
|
||||
self::arrayWithSize(IsNot::not(0))
|
||||
);
|
||||
}
|
||||
}
|
69
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/MatchingOnce.php
vendored
Normal file
69
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/MatchingOnce.php
vendored
Normal file
@@ -0,0 +1,69 @@
|
||||
<?php
|
||||
namespace Hamcrest\Arrays;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
|
||||
use Hamcrest\Description;
|
||||
|
||||
class MatchingOnce
|
||||
{
|
||||
|
||||
private $_elementMatchers;
|
||||
private $_mismatchDescription;
|
||||
|
||||
public function __construct(array $elementMatchers, Description $mismatchDescription)
|
||||
{
|
||||
$this->_elementMatchers = $elementMatchers;
|
||||
$this->_mismatchDescription = $mismatchDescription;
|
||||
}
|
||||
|
||||
public function matches($item)
|
||||
{
|
||||
return $this->_isNotSurplus($item) && $this->_isMatched($item);
|
||||
}
|
||||
|
||||
public function isFinished($items)
|
||||
{
|
||||
if (empty($this->_elementMatchers)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
$this->_mismatchDescription
|
||||
->appendText('No item matches: ')->appendList('', ', ', '', $this->_elementMatchers)
|
||||
->appendText(' in ')->appendValueList('[', ', ', ']', $items)
|
||||
;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
// -- Private Methods
|
||||
|
||||
private function _isNotSurplus($item)
|
||||
{
|
||||
if (empty($this->_elementMatchers)) {
|
||||
$this->_mismatchDescription->appendText('Not matched: ')->appendValue($item);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private function _isMatched($item)
|
||||
{
|
||||
/** @var $matcher \Hamcrest\Matcher */
|
||||
foreach ($this->_elementMatchers as $i => $matcher) {
|
||||
if ($matcher->matches($item)) {
|
||||
unset($this->_elementMatchers[$i]);
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
$this->_mismatchDescription->appendText('Not matched: ')->appendValue($item);
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
75
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/SeriesMatchingOnce.php
vendored
Normal file
75
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/SeriesMatchingOnce.php
vendored
Normal file
@@ -0,0 +1,75 @@
|
||||
<?php
|
||||
namespace Hamcrest\Arrays;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
|
||||
use Hamcrest\Description;
|
||||
use Hamcrest\Matcher;
|
||||
|
||||
class SeriesMatchingOnce
|
||||
{
|
||||
|
||||
private $_elementMatchers;
|
||||
private $_keys;
|
||||
private $_mismatchDescription;
|
||||
private $_nextMatchKey;
|
||||
|
||||
public function __construct(array $elementMatchers, Description $mismatchDescription)
|
||||
{
|
||||
$this->_elementMatchers = $elementMatchers;
|
||||
$this->_keys = array_keys($elementMatchers);
|
||||
$this->_mismatchDescription = $mismatchDescription;
|
||||
}
|
||||
|
||||
public function matches($item)
|
||||
{
|
||||
return $this->_isNotSurplus($item) && $this->_isMatched($item);
|
||||
}
|
||||
|
||||
public function isFinished()
|
||||
{
|
||||
if (!empty($this->_elementMatchers)) {
|
||||
$nextMatcher = current($this->_elementMatchers);
|
||||
$this->_mismatchDescription->appendText('No item matched: ')->appendDescriptionOf($nextMatcher);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
// -- Private Methods
|
||||
|
||||
private function _isNotSurplus($item)
|
||||
{
|
||||
if (empty($this->_elementMatchers)) {
|
||||
$this->_mismatchDescription->appendText('Not matched: ')->appendValue($item);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private function _isMatched($item)
|
||||
{
|
||||
$this->_nextMatchKey = array_shift($this->_keys);
|
||||
$nextMatcher = array_shift($this->_elementMatchers);
|
||||
|
||||
if (!$nextMatcher->matches($item)) {
|
||||
$this->_describeMismatch($nextMatcher, $item);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private function _describeMismatch(Matcher $matcher, $item)
|
||||
{
|
||||
$this->_mismatchDescription->appendText('item with key ' . $this->_nextMatchKey . ': ');
|
||||
$matcher->describeMismatch($item, $this->_mismatchDescription);
|
||||
}
|
||||
}
|
10
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/AssertionError.php
vendored
Normal file
10
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/AssertionError.php
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
namespace Hamcrest;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
|
||||
class AssertionError extends \RuntimeException
|
||||
{
|
||||
}
|
132
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/BaseDescription.php
vendored
Normal file
132
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/BaseDescription.php
vendored
Normal file
@@ -0,0 +1,132 @@
|
||||
<?php
|
||||
namespace Hamcrest;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
use Hamcrest\Internal\SelfDescribingValue;
|
||||
|
||||
/**
|
||||
* A {@link Hamcrest\Description} that is stored as a string.
|
||||
*/
|
||||
abstract class BaseDescription implements Description
|
||||
{
|
||||
|
||||
public function appendText($text)
|
||||
{
|
||||
$this->append($text);
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function appendDescriptionOf(SelfDescribing $value)
|
||||
{
|
||||
$value->describeTo($this);
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function appendValue($value)
|
||||
{
|
||||
if (is_null($value)) {
|
||||
$this->append('null');
|
||||
} elseif (is_string($value)) {
|
||||
$this->_toPhpSyntax($value);
|
||||
} elseif (is_float($value)) {
|
||||
$this->append('<');
|
||||
$this->append($value);
|
||||
$this->append('F>');
|
||||
} elseif (is_bool($value)) {
|
||||
$this->append('<');
|
||||
$this->append($value ? 'true' : 'false');
|
||||
$this->append('>');
|
||||
} elseif (is_array($value) || $value instanceof \Iterator || $value instanceof \IteratorAggregate) {
|
||||
$this->appendValueList('[', ', ', ']', $value);
|
||||
} elseif (is_object($value) && !method_exists($value, '__toString')) {
|
||||
$this->append('<');
|
||||
$this->append(get_class($value));
|
||||
$this->append('>');
|
||||
} else {
|
||||
$this->append('<');
|
||||
$this->append($value);
|
||||
$this->append('>');
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function appendValueList($start, $separator, $end, $values)
|
||||
{
|
||||
$list = array();
|
||||
foreach ($values as $v) {
|
||||
$list[] = new SelfDescribingValue($v);
|
||||
}
|
||||
|
||||
$this->appendList($start, $separator, $end, $list);
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function appendList($start, $separator, $end, $values)
|
||||
{
|
||||
$this->append($start);
|
||||
|
||||
$separate = false;
|
||||
|
||||
foreach ($values as $value) {
|
||||
/*if (!($value instanceof Hamcrest\SelfDescribing)) {
|
||||
$value = new Hamcrest\Internal\SelfDescribingValue($value);
|
||||
}*/
|
||||
|
||||
if ($separate) {
|
||||
$this->append($separator);
|
||||
}
|
||||
|
||||
$this->appendDescriptionOf($value);
|
||||
|
||||
$separate = true;
|
||||
}
|
||||
|
||||
$this->append($end);
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
// -- Protected Methods
|
||||
|
||||
/**
|
||||
* Append the String <var>$str</var> to the description.
|
||||
*/
|
||||
abstract protected function append($str);
|
||||
|
||||
// -- Private Methods
|
||||
|
||||
private function _toPhpSyntax($value)
|
||||
{
|
||||
$str = '"';
|
||||
for ($i = 0, $len = strlen($value); $i < $len; ++$i) {
|
||||
switch ($value[$i]) {
|
||||
case '"':
|
||||
$str .= '\\"';
|
||||
break;
|
||||
|
||||
case "\t":
|
||||
$str .= '\\t';
|
||||
break;
|
||||
|
||||
case "\r":
|
||||
$str .= '\\r';
|
||||
break;
|
||||
|
||||
case "\n":
|
||||
$str .= '\\n';
|
||||
break;
|
||||
|
||||
default:
|
||||
$str .= $value[$i];
|
||||
}
|
||||
}
|
||||
$str .= '"';
|
||||
$this->append($str);
|
||||
}
|
||||
}
|
25
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/BaseMatcher.php
vendored
Normal file
25
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/BaseMatcher.php
vendored
Normal file
@@ -0,0 +1,25 @@
|
||||
<?php
|
||||
namespace Hamcrest;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
|
||||
/**
|
||||
* BaseClass for all Matcher implementations.
|
||||
*
|
||||
* @see Hamcrest\Matcher
|
||||
*/
|
||||
abstract class BaseMatcher implements Matcher
|
||||
{
|
||||
|
||||
public function describeMismatch($item, Description $description)
|
||||
{
|
||||
$description->appendText('was ')->appendValue($item);
|
||||
}
|
||||
|
||||
public function __toString()
|
||||
{
|
||||
return StringDescription::toString($this);
|
||||
}
|
||||
}
|
71
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Collection/IsEmptyTraversable.php
vendored
Normal file
71
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Collection/IsEmptyTraversable.php
vendored
Normal file
@@ -0,0 +1,71 @@
|
||||
<?php
|
||||
namespace Hamcrest\Collection;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
use Hamcrest\BaseMatcher;
|
||||
use Hamcrest\Description;
|
||||
|
||||
/**
|
||||
* Matches if traversable is empty or non-empty.
|
||||
*/
|
||||
class IsEmptyTraversable extends BaseMatcher
|
||||
{
|
||||
|
||||
private static $_INSTANCE;
|
||||
private static $_NOT_INSTANCE;
|
||||
|
||||
private $_empty;
|
||||
|
||||
public function __construct($empty = true)
|
||||
{
|
||||
$this->_empty = $empty;
|
||||
}
|
||||
|
||||
public function matches($item)
|
||||
{
|
||||
if (!$item instanceof \Traversable) {
|
||||
return false;
|
||||
}
|
||||
|
||||
foreach ($item as $value) {
|
||||
return !$this->_empty;
|
||||
}
|
||||
|
||||
return $this->_empty;
|
||||
}
|
||||
|
||||
public function describeTo(Description $description)
|
||||
{
|
||||
$description->appendText($this->_empty ? 'an empty traversable' : 'a non-empty traversable');
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if traversable is empty.
|
||||
*
|
||||
* @factory
|
||||
*/
|
||||
public static function emptyTraversable()
|
||||
{
|
||||
if (!self::$_INSTANCE) {
|
||||
self::$_INSTANCE = new self;
|
||||
}
|
||||
|
||||
return self::$_INSTANCE;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if traversable is not empty.
|
||||
*
|
||||
* @factory
|
||||
*/
|
||||
public static function nonEmptyTraversable()
|
||||
{
|
||||
if (!self::$_NOT_INSTANCE) {
|
||||
self::$_NOT_INSTANCE = new self(false);
|
||||
}
|
||||
|
||||
return self::$_NOT_INSTANCE;
|
||||
}
|
||||
}
|
47
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Collection/IsTraversableWithSize.php
vendored
Normal file
47
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Collection/IsTraversableWithSize.php
vendored
Normal file
@@ -0,0 +1,47 @@
|
||||
<?php
|
||||
namespace Hamcrest\Collection;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
use Hamcrest\FeatureMatcher;
|
||||
use Hamcrest\Matcher;
|
||||
use Hamcrest\Util;
|
||||
|
||||
/**
|
||||
* Matches if traversable size satisfies a nested matcher.
|
||||
*/
|
||||
class IsTraversableWithSize extends FeatureMatcher
|
||||
{
|
||||
|
||||
public function __construct(Matcher $sizeMatcher)
|
||||
{
|
||||
parent::__construct(
|
||||
self::TYPE_OBJECT,
|
||||
'Traversable',
|
||||
$sizeMatcher,
|
||||
'a traversable with size',
|
||||
'traversable size'
|
||||
);
|
||||
}
|
||||
|
||||
protected function featureValueOf($actual)
|
||||
{
|
||||
$size = 0;
|
||||
foreach ($actual as $value) {
|
||||
$size++;
|
||||
}
|
||||
|
||||
return $size;
|
||||
}
|
||||
|
||||
/**
|
||||
* Does traversable size satisfy a given matcher?
|
||||
*
|
||||
* @factory
|
||||
*/
|
||||
public static function traversableWithSize($size)
|
||||
{
|
||||
return new self(Util::wrapValueWithIsEqual($size));
|
||||
}
|
||||
}
|
59
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/AllOf.php
vendored
Normal file
59
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/AllOf.php
vendored
Normal file
@@ -0,0 +1,59 @@
|
||||
<?php
|
||||
namespace Hamcrest\Core;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
use Hamcrest\Description;
|
||||
use Hamcrest\DiagnosingMatcher;
|
||||
use Hamcrest\Util;
|
||||
|
||||
/**
|
||||
* Calculates the logical conjunction of multiple matchers. Evaluation is
|
||||
* shortcut, so subsequent matchers are not called if an earlier matcher
|
||||
* returns <code>false</code>.
|
||||
*/
|
||||
class AllOf extends DiagnosingMatcher
|
||||
{
|
||||
|
||||
private $_matchers;
|
||||
|
||||
public function __construct(array $matchers)
|
||||
{
|
||||
Util::checkAllAreMatchers($matchers);
|
||||
|
||||
$this->_matchers = $matchers;
|
||||
}
|
||||
|
||||
public function matchesWithDiagnosticDescription($item, Description $mismatchDescription)
|
||||
{
|
||||
/** @var $matcher \Hamcrest\Matcher */
|
||||
foreach ($this->_matchers as $matcher) {
|
||||
if (!$matcher->matches($item)) {
|
||||
$mismatchDescription->appendDescriptionOf($matcher)->appendText(' ');
|
||||
$matcher->describeMismatch($item, $mismatchDescription);
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public function describeTo(Description $description)
|
||||
{
|
||||
$description->appendList('(', ' and ', ')', $this->_matchers);
|
||||
}
|
||||
|
||||
/**
|
||||
* Evaluates to true only if ALL of the passed in matchers evaluate to true.
|
||||
*
|
||||
* @factory ...
|
||||
*/
|
||||
public static function allOf(/* args... */)
|
||||
{
|
||||
$args = func_get_args();
|
||||
|
||||
return new self(Util::createMatcherArray($args));
|
||||
}
|
||||
}
|
58
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/AnyOf.php
vendored
Normal file
58
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/AnyOf.php
vendored
Normal file
@@ -0,0 +1,58 @@
|
||||
<?php
|
||||
namespace Hamcrest\Core;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
use Hamcrest\Description;
|
||||
use Hamcrest\Util;
|
||||
|
||||
/**
|
||||
* Calculates the logical disjunction of multiple matchers. Evaluation is
|
||||
* shortcut, so subsequent matchers are not called if an earlier matcher
|
||||
* returns <code>true</code>.
|
||||
*/
|
||||
class AnyOf extends ShortcutCombination
|
||||
{
|
||||
|
||||
public function __construct(array $matchers)
|
||||
{
|
||||
parent::__construct($matchers);
|
||||
}
|
||||
|
||||
public function matches($item)
|
||||
{
|
||||
return $this->matchesWithShortcut($item, true);
|
||||
}
|
||||
|
||||
public function describeTo(Description $description)
|
||||
{
|
||||
$this->describeToWithOperator($description, 'or');
|
||||
}
|
||||
|
||||
/**
|
||||
* Evaluates to true if ANY of the passed in matchers evaluate to true.
|
||||
*
|
||||
* @factory ...
|
||||
*/
|
||||
public static function anyOf(/* args... */)
|
||||
{
|
||||
$args = func_get_args();
|
||||
|
||||
return new self(Util::createMatcherArray($args));
|
||||
}
|
||||
|
||||
/**
|
||||
* Evaluates to false if ANY of the passed in matchers evaluate to true.
|
||||
*
|
||||
* @factory ...
|
||||
*/
|
||||
public static function noneOf(/* args... */)
|
||||
{
|
||||
$args = func_get_args();
|
||||
|
||||
return IsNot::not(
|
||||
new self(Util::createMatcherArray($args))
|
||||
);
|
||||
}
|
||||
}
|
78
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/CombinableMatcher.php
vendored
Normal file
78
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/CombinableMatcher.php
vendored
Normal file
@@ -0,0 +1,78 @@
|
||||
<?php
|
||||
namespace Hamcrest\Core;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
|
||||
use Hamcrest\BaseMatcher;
|
||||
use Hamcrest\Description;
|
||||
use Hamcrest\Matcher;
|
||||
|
||||
class CombinableMatcher extends BaseMatcher
|
||||
{
|
||||
|
||||
private $_matcher;
|
||||
|
||||
public function __construct(Matcher $matcher)
|
||||
{
|
||||
$this->_matcher = $matcher;
|
||||
}
|
||||
|
||||
public function matches($item)
|
||||
{
|
||||
return $this->_matcher->matches($item);
|
||||
}
|
||||
|
||||
public function describeTo(Description $description)
|
||||
{
|
||||
$description->appendDescriptionOf($this->_matcher);
|
||||
}
|
||||
|
||||
/** Diversion from Hamcrest-Java... Logical "and" not permitted */
|
||||
public function andAlso(Matcher $other)
|
||||
{
|
||||
return new self(new AllOf($this->_templatedListWith($other)));
|
||||
}
|
||||
|
||||
/** Diversion from Hamcrest-Java... Logical "or" not permitted */
|
||||
public function orElse(Matcher $other)
|
||||
{
|
||||
return new self(new AnyOf($this->_templatedListWith($other)));
|
||||
}
|
||||
|
||||
/**
|
||||
* This is useful for fluently combining matchers that must both pass.
|
||||
* For example:
|
||||
* <pre>
|
||||
* assertThat($string, both(containsString("a"))->andAlso(containsString("b")));
|
||||
* </pre>
|
||||
*
|
||||
* @factory
|
||||
*/
|
||||
public static function both(Matcher $matcher)
|
||||
{
|
||||
return new self($matcher);
|
||||
}
|
||||
|
||||
/**
|
||||
* This is useful for fluently combining matchers where either may pass,
|
||||
* for example:
|
||||
* <pre>
|
||||
* assertThat($string, either(containsString("a"))->orElse(containsString("b")));
|
||||
* </pre>
|
||||
*
|
||||
* @factory
|
||||
*/
|
||||
public static function either(Matcher $matcher)
|
||||
{
|
||||
return new self($matcher);
|
||||
}
|
||||
|
||||
// -- Private Methods
|
||||
|
||||
private function _templatedListWith(Matcher $other)
|
||||
{
|
||||
return array($this->_matcher, $other);
|
||||
}
|
||||
}
|
68
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/DescribedAs.php
vendored
Normal file
68
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/DescribedAs.php
vendored
Normal file
@@ -0,0 +1,68 @@
|
||||
<?php
|
||||
namespace Hamcrest\Core;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
use Hamcrest\BaseMatcher;
|
||||
use Hamcrest\Description;
|
||||
use Hamcrest\Matcher;
|
||||
|
||||
/**
|
||||
* Provides a custom description to another matcher.
|
||||
*/
|
||||
class DescribedAs extends BaseMatcher
|
||||
{
|
||||
|
||||
private $_descriptionTemplate;
|
||||
private $_matcher;
|
||||
private $_values;
|
||||
|
||||
const ARG_PATTERN = '/%([0-9]+)/';
|
||||
|
||||
public function __construct($descriptionTemplate, Matcher $matcher, array $values)
|
||||
{
|
||||
$this->_descriptionTemplate = $descriptionTemplate;
|
||||
$this->_matcher = $matcher;
|
||||
$this->_values = $values;
|
||||
}
|
||||
|
||||
public function matches($item)
|
||||
{
|
||||
return $this->_matcher->matches($item);
|
||||
}
|
||||
|
||||
public function describeTo(Description $description)
|
||||
{
|
||||
$textStart = 0;
|
||||
while (preg_match(self::ARG_PATTERN, $this->_descriptionTemplate, $matches, PREG_OFFSET_CAPTURE, $textStart)) {
|
||||
$text = $matches[0][0];
|
||||
$index = $matches[1][0];
|
||||
$offset = $matches[0][1];
|
||||
|
||||
$description->appendText(substr($this->_descriptionTemplate, $textStart, $offset - $textStart));
|
||||
$description->appendValue($this->_values[$index]);
|
||||
|
||||
$textStart = $offset + strlen($text);
|
||||
}
|
||||
|
||||
if ($textStart < strlen($this->_descriptionTemplate)) {
|
||||
$description->appendText(substr($this->_descriptionTemplate, $textStart));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Wraps an existing matcher and overrides the description when it fails.
|
||||
*
|
||||
* @factory ...
|
||||
*/
|
||||
public static function describedAs(/* $description, Hamcrest\Matcher $matcher, $values... */)
|
||||
{
|
||||
$args = func_get_args();
|
||||
$description = array_shift($args);
|
||||
$matcher = array_shift($args);
|
||||
$values = $args;
|
||||
|
||||
return new self($description, $matcher, $values);
|
||||
}
|
||||
}
|
56
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/Every.php
vendored
Normal file
56
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/Every.php
vendored
Normal file
@@ -0,0 +1,56 @@
|
||||
<?php
|
||||
namespace Hamcrest\Core;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
|
||||
use Hamcrest\Description;
|
||||
use Hamcrest\Matcher;
|
||||
use Hamcrest\TypeSafeDiagnosingMatcher;
|
||||
|
||||
class Every extends TypeSafeDiagnosingMatcher
|
||||
{
|
||||
|
||||
private $_matcher;
|
||||
|
||||
public function __construct(Matcher $matcher)
|
||||
{
|
||||
parent::__construct(self::TYPE_ARRAY);
|
||||
|
||||
$this->_matcher = $matcher;
|
||||
}
|
||||
|
||||
protected function matchesSafelyWithDiagnosticDescription($items, Description $mismatchDescription)
|
||||
{
|
||||
foreach ($items as $item) {
|
||||
if (!$this->_matcher->matches($item)) {
|
||||
$mismatchDescription->appendText('an item ');
|
||||
$this->_matcher->describeMismatch($item, $mismatchDescription);
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public function describeTo(Description $description)
|
||||
{
|
||||
$description->appendText('every item is ')->appendDescriptionOf($this->_matcher);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Matcher $itemMatcher
|
||||
* A matcher to apply to every element in an array.
|
||||
*
|
||||
* @return \Hamcrest\Core\Every
|
||||
* Evaluates to TRUE for a collection in which every item matches $itemMatcher
|
||||
*
|
||||
* @factory
|
||||
*/
|
||||
public static function everyItem(Matcher $itemMatcher)
|
||||
{
|
||||
return new self($itemMatcher);
|
||||
}
|
||||
}
|
56
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/HasToString.php
vendored
Normal file
56
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/HasToString.php
vendored
Normal file
@@ -0,0 +1,56 @@
|
||||
<?php
|
||||
namespace Hamcrest\Core;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
use Hamcrest\Description;
|
||||
use Hamcrest\FeatureMatcher;
|
||||
use Hamcrest\Matcher;
|
||||
use Hamcrest\Util;
|
||||
|
||||
/**
|
||||
* Matches if array size satisfies a nested matcher.
|
||||
*/
|
||||
class HasToString extends FeatureMatcher
|
||||
{
|
||||
|
||||
public function __construct(Matcher $toStringMatcher)
|
||||
{
|
||||
parent::__construct(
|
||||
self::TYPE_OBJECT,
|
||||
null,
|
||||
$toStringMatcher,
|
||||
'an object with toString()',
|
||||
'toString()'
|
||||
);
|
||||
}
|
||||
|
||||
public function matchesSafelyWithDiagnosticDescription($actual, Description $mismatchDescription)
|
||||
{
|
||||
if (method_exists($actual, 'toString') || method_exists($actual, '__toString')) {
|
||||
return parent::matchesSafelyWithDiagnosticDescription($actual, $mismatchDescription);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
protected function featureValueOf($actual)
|
||||
{
|
||||
if (method_exists($actual, 'toString')) {
|
||||
return $actual->toString();
|
||||
}
|
||||
|
||||
return (string) $actual;
|
||||
}
|
||||
|
||||
/**
|
||||
* Does array size satisfy a given matcher?
|
||||
*
|
||||
* @factory
|
||||
*/
|
||||
public static function hasToString($matcher)
|
||||
{
|
||||
return new self(Util::wrapValueWithIsEqual($matcher));
|
||||
}
|
||||
}
|
57
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/Is.php
vendored
Normal file
57
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/Is.php
vendored
Normal file
@@ -0,0 +1,57 @@
|
||||
<?php
|
||||
namespace Hamcrest\Core;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
use Hamcrest\BaseMatcher;
|
||||
use Hamcrest\Description;
|
||||
use Hamcrest\Matcher;
|
||||
use Hamcrest\Util;
|
||||
|
||||
/**
|
||||
* Decorates another Matcher, retaining the behavior but allowing tests
|
||||
* to be slightly more expressive.
|
||||
*
|
||||
* For example: assertThat($cheese, equalTo($smelly))
|
||||
* vs. assertThat($cheese, is(equalTo($smelly)))
|
||||
*/
|
||||
class Is extends BaseMatcher
|
||||
{
|
||||
|
||||
private $_matcher;
|
||||
|
||||
public function __construct(Matcher $matcher)
|
||||
{
|
||||
$this->_matcher = $matcher;
|
||||
}
|
||||
|
||||
public function matches($arg)
|
||||
{
|
||||
return $this->_matcher->matches($arg);
|
||||
}
|
||||
|
||||
public function describeTo(Description $description)
|
||||
{
|
||||
$description->appendText('is ')->appendDescriptionOf($this->_matcher);
|
||||
}
|
||||
|
||||
public function describeMismatch($item, Description $mismatchDescription)
|
||||
{
|
||||
$this->_matcher->describeMismatch($item, $mismatchDescription);
|
||||
}
|
||||
|
||||
/**
|
||||
* Decorates another Matcher, retaining the behavior but allowing tests
|
||||
* to be slightly more expressive.
|
||||
*
|
||||
* For example: assertThat($cheese, equalTo($smelly))
|
||||
* vs. assertThat($cheese, is(equalTo($smelly)))
|
||||
*
|
||||
* @factory
|
||||
*/
|
||||
public static function is($value)
|
||||
{
|
||||
return new self(Util::wrapValueWithIsEqual($value));
|
||||
}
|
||||
}
|
45
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsAnything.php
vendored
Normal file
45
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsAnything.php
vendored
Normal file
@@ -0,0 +1,45 @@
|
||||
<?php
|
||||
namespace Hamcrest\Core;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
use Hamcrest\BaseMatcher;
|
||||
use Hamcrest\Description;
|
||||
|
||||
/**
|
||||
* A matcher that always returns <code>true</code>.
|
||||
*/
|
||||
class IsAnything extends BaseMatcher
|
||||
{
|
||||
|
||||
private $_message;
|
||||
|
||||
public function __construct($message = 'ANYTHING')
|
||||
{
|
||||
$this->_message = $message;
|
||||
}
|
||||
|
||||
public function matches($item)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public function describeTo(Description $description)
|
||||
{
|
||||
$description->appendText($this->_message);
|
||||
}
|
||||
|
||||
/**
|
||||
* This matcher always evaluates to true.
|
||||
*
|
||||
* @param string $description A meaningful string used when describing itself.
|
||||
*
|
||||
* @return \Hamcrest\Core\IsAnything
|
||||
* @factory
|
||||
*/
|
||||
public static function anything($description = 'ANYTHING')
|
||||
{
|
||||
return new self($description);
|
||||
}
|
||||
}
|
93
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsCollectionContaining.php
vendored
Normal file
93
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsCollectionContaining.php
vendored
Normal file
@@ -0,0 +1,93 @@
|
||||
<?php
|
||||
namespace Hamcrest\Core;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
use Hamcrest\Description;
|
||||
use Hamcrest\Matcher;
|
||||
use Hamcrest\TypeSafeMatcher;
|
||||
use Hamcrest\Util;
|
||||
|
||||
/**
|
||||
* Tests if an array contains values that match one or more Matchers.
|
||||
*/
|
||||
class IsCollectionContaining extends TypeSafeMatcher
|
||||
{
|
||||
|
||||
private $_elementMatcher;
|
||||
|
||||
public function __construct(Matcher $elementMatcher)
|
||||
{
|
||||
parent::__construct(self::TYPE_ARRAY);
|
||||
|
||||
$this->_elementMatcher = $elementMatcher;
|
||||
}
|
||||
|
||||
protected function matchesSafely($items)
|
||||
{
|
||||
foreach ($items as $item) {
|
||||
if ($this->_elementMatcher->matches($item)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
protected function describeMismatchSafely($items, Description $mismatchDescription)
|
||||
{
|
||||
$mismatchDescription->appendText('was ')->appendValue($items);
|
||||
}
|
||||
|
||||
public function describeTo(Description $description)
|
||||
{
|
||||
$description
|
||||
->appendText('a collection containing ')
|
||||
->appendDescriptionOf($this->_elementMatcher)
|
||||
;
|
||||
}
|
||||
|
||||
/**
|
||||
* Test if the value is an array containing this matcher.
|
||||
*
|
||||
* Example:
|
||||
* <pre>
|
||||
* assertThat(array('a', 'b'), hasItem(equalTo('b')));
|
||||
* //Convenience defaults to equalTo()
|
||||
* assertThat(array('a', 'b'), hasItem('b'));
|
||||
* </pre>
|
||||
*
|
||||
* @factory ...
|
||||
*/
|
||||
public static function hasItem()
|
||||
{
|
||||
$args = func_get_args();
|
||||
$firstArg = array_shift($args);
|
||||
|
||||
return new self(Util::wrapValueWithIsEqual($firstArg));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test if the value is an array containing elements that match all of these
|
||||
* matchers.
|
||||
*
|
||||
* Example:
|
||||
* <pre>
|
||||
* assertThat(array('a', 'b', 'c'), hasItems(equalTo('a'), equalTo('b')));
|
||||
* </pre>
|
||||
*
|
||||
* @factory ...
|
||||
*/
|
||||
public static function hasItems(/* args... */)
|
||||
{
|
||||
$args = func_get_args();
|
||||
$matchers = array();
|
||||
|
||||
foreach ($args as $arg) {
|
||||
$matchers[] = self::hasItem($arg);
|
||||
}
|
||||
|
||||
return AllOf::allOf($matchers);
|
||||
}
|
||||
}
|
44
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsEqual.php
vendored
Normal file
44
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsEqual.php
vendored
Normal file
@@ -0,0 +1,44 @@
|
||||
<?php
|
||||
namespace Hamcrest\Core;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
use Hamcrest\BaseMatcher;
|
||||
use Hamcrest\Description;
|
||||
|
||||
/**
|
||||
* Is the value equal to another value, as tested by the use of the "=="
|
||||
* comparison operator?
|
||||
*/
|
||||
class IsEqual extends BaseMatcher
|
||||
{
|
||||
|
||||
private $_item;
|
||||
|
||||
public function __construct($item)
|
||||
{
|
||||
$this->_item = $item;
|
||||
}
|
||||
|
||||
public function matches($arg)
|
||||
{
|
||||
return (($arg == $this->_item) && ($this->_item == $arg));
|
||||
}
|
||||
|
||||
public function describeTo(Description $description)
|
||||
{
|
||||
$description->appendValue($this->_item);
|
||||
}
|
||||
|
||||
/**
|
||||
* Is the value equal to another value, as tested by the use of the "=="
|
||||
* comparison operator?
|
||||
*
|
||||
* @factory
|
||||
*/
|
||||
public static function equalTo($item)
|
||||
{
|
||||
return new self($item);
|
||||
}
|
||||
}
|
38
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsIdentical.php
vendored
Normal file
38
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsIdentical.php
vendored
Normal file
@@ -0,0 +1,38 @@
|
||||
<?php
|
||||
namespace Hamcrest\Core;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
use Hamcrest\Description;
|
||||
|
||||
/**
|
||||
* The same as {@link Hamcrest\Core\IsSame} but with slightly different
|
||||
* semantics.
|
||||
*/
|
||||
class IsIdentical extends IsSame
|
||||
{
|
||||
|
||||
private $_value;
|
||||
|
||||
public function __construct($value)
|
||||
{
|
||||
parent::__construct($value);
|
||||
$this->_value = $value;
|
||||
}
|
||||
|
||||
public function describeTo(Description $description)
|
||||
{
|
||||
$description->appendValue($this->_value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests of the value is identical to $value as tested by the "===" operator.
|
||||
*
|
||||
* @factory
|
||||
*/
|
||||
public static function identicalTo($value)
|
||||
{
|
||||
return new self($value);
|
||||
}
|
||||
}
|
67
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsInstanceOf.php
vendored
Normal file
67
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsInstanceOf.php
vendored
Normal file
@@ -0,0 +1,67 @@
|
||||
<?php
|
||||
namespace Hamcrest\Core;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
use Hamcrest\Description;
|
||||
use Hamcrest\DiagnosingMatcher;
|
||||
|
||||
/**
|
||||
* Tests whether the value is an instance of a class.
|
||||
*/
|
||||
class IsInstanceOf extends DiagnosingMatcher
|
||||
{
|
||||
|
||||
private $_theClass;
|
||||
|
||||
/**
|
||||
* Creates a new instance of IsInstanceOf
|
||||
*
|
||||
* @param string $theClass
|
||||
* The predicate evaluates to true for instances of this class
|
||||
* or one of its subclasses.
|
||||
*/
|
||||
public function __construct($theClass)
|
||||
{
|
||||
$this->_theClass = $theClass;
|
||||
}
|
||||
|
||||
protected function matchesWithDiagnosticDescription($item, Description $mismatchDescription)
|
||||
{
|
||||
if (!is_object($item)) {
|
||||
$mismatchDescription->appendText('was ')->appendValue($item);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!($item instanceof $this->_theClass)) {
|
||||
$mismatchDescription->appendText('[' . get_class($item) . '] ')
|
||||
->appendValue($item);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public function describeTo(Description $description)
|
||||
{
|
||||
$description->appendText('an instance of ')
|
||||
->appendText($this->_theClass)
|
||||
;
|
||||
}
|
||||
|
||||
/**
|
||||
* Is the value an instance of a particular type?
|
||||
* This version assumes no relationship between the required type and
|
||||
* the signature of the method that sets it up, for example in
|
||||
* <code>assertThat($anObject, anInstanceOf('Thing'));</code>
|
||||
*
|
||||
* @factory any
|
||||
*/
|
||||
public static function anInstanceOf($theClass)
|
||||
{
|
||||
return new self($theClass);
|
||||
}
|
||||
}
|
44
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsNot.php
vendored
Normal file
44
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsNot.php
vendored
Normal file
@@ -0,0 +1,44 @@
|
||||
<?php
|
||||
namespace Hamcrest\Core;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
use Hamcrest\BaseMatcher;
|
||||
use Hamcrest\Description;
|
||||
use Hamcrest\Matcher;
|
||||
use Hamcrest\Util;
|
||||
|
||||
/**
|
||||
* Calculates the logical negation of a matcher.
|
||||
*/
|
||||
class IsNot extends BaseMatcher
|
||||
{
|
||||
|
||||
private $_matcher;
|
||||
|
||||
public function __construct(Matcher $matcher)
|
||||
{
|
||||
$this->_matcher = $matcher;
|
||||
}
|
||||
|
||||
public function matches($arg)
|
||||
{
|
||||
return !$this->_matcher->matches($arg);
|
||||
}
|
||||
|
||||
public function describeTo(Description $description)
|
||||
{
|
||||
$description->appendText('not ')->appendDescriptionOf($this->_matcher);
|
||||
}
|
||||
|
||||
/**
|
||||
* Matches if value does not match $value.
|
||||
*
|
||||
* @factory
|
||||
*/
|
||||
public static function not($value)
|
||||
{
|
||||
return new self(Util::wrapValueWithIsEqual($value));
|
||||
}
|
||||
}
|
56
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsNull.php
vendored
Normal file
56
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsNull.php
vendored
Normal file
@@ -0,0 +1,56 @@
|
||||
<?php
|
||||
namespace Hamcrest\Core;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
use Hamcrest\BaseMatcher;
|
||||
use Hamcrest\Description;
|
||||
|
||||
/**
|
||||
* Is the value null?
|
||||
*/
|
||||
class IsNull extends BaseMatcher
|
||||
{
|
||||
|
||||
private static $_INSTANCE;
|
||||
private static $_NOT_INSTANCE;
|
||||
|
||||
public function matches($item)
|
||||
{
|
||||
return is_null($item);
|
||||
}
|
||||
|
||||
public function describeTo(Description $description)
|
||||
{
|
||||
$description->appendText('null');
|
||||
}
|
||||
|
||||
/**
|
||||
* Matches if value is null.
|
||||
*
|
||||
* @factory
|
||||
*/
|
||||
public static function nullValue()
|
||||
{
|
||||
if (!self::$_INSTANCE) {
|
||||
self::$_INSTANCE = new self();
|
||||
}
|
||||
|
||||
return self::$_INSTANCE;
|
||||
}
|
||||
|
||||
/**
|
||||
* Matches if value is not null.
|
||||
*
|
||||
* @factory
|
||||
*/
|
||||
public static function notNullValue()
|
||||
{
|
||||
if (!self::$_NOT_INSTANCE) {
|
||||
self::$_NOT_INSTANCE = IsNot::not(self::nullValue());
|
||||
}
|
||||
|
||||
return self::$_NOT_INSTANCE;
|
||||
}
|
||||
}
|
51
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsSame.php
vendored
Normal file
51
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsSame.php
vendored
Normal file
@@ -0,0 +1,51 @@
|
||||
<?php
|
||||
namespace Hamcrest\Core;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
use Hamcrest\BaseMatcher;
|
||||
use Hamcrest\Description;
|
||||
|
||||
/**
|
||||
* Is the value the same object as another value?
|
||||
* In PHP terms, does $a === $b?
|
||||
*/
|
||||
class IsSame extends BaseMatcher
|
||||
{
|
||||
|
||||
private $_object;
|
||||
|
||||
public function __construct($object)
|
||||
{
|
||||
$this->_object = $object;
|
||||
}
|
||||
|
||||
public function matches($object)
|
||||
{
|
||||
return ($object === $this->_object) && ($this->_object === $object);
|
||||
}
|
||||
|
||||
public function describeTo(Description $description)
|
||||
{
|
||||
$description->appendText('sameInstance(')
|
||||
->appendValue($this->_object)
|
||||
->appendText(')')
|
||||
;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a new instance of IsSame.
|
||||
*
|
||||
* @param mixed $object
|
||||
* The predicate evaluates to true only when the argument is
|
||||
* this object.
|
||||
*
|
||||
* @return \Hamcrest\Core\IsSame
|
||||
* @factory
|
||||
*/
|
||||
public static function sameInstance($object)
|
||||
{
|
||||
return new self($object);
|
||||
}
|
||||
}
|
71
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsTypeOf.php
vendored
Normal file
71
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsTypeOf.php
vendored
Normal file
@@ -0,0 +1,71 @@
|
||||
<?php
|
||||
namespace Hamcrest\Core;
|
||||
|
||||
/*
|
||||
Copyright (c) 2010 hamcrest.org
|
||||
*/
|
||||
use Hamcrest\BaseMatcher;
|
||||
use Hamcrest\Description;
|
||||
|
||||
/**
|
||||
* Tests whether the value has a built-in type.
|
||||
*/
|
||||
class IsTypeOf extends BaseMatcher
|
||||
{
|
||||
|
||||
private $_theType;
|
||||
|
||||
/**
|
||||
* Creates a new instance of IsTypeOf
|
||||
*
|
||||
* @param string $theType
|
||||
* The predicate evaluates to true for values with this built-in type.
|
||||
*/
|
||||
public function __construct($theType)
|
||||
{
|
||||
$this->_theType = strtolower($theType);
|
||||
}
|
||||
|
||||
public function matches($item)
|
||||
{
|
||||
return strtolower(gettype($item)) == $this->_theType;
|
||||
}
|
||||
|
||||
public function describeTo(Description $description)
|
||||
{
|
||||
$description->appendText(self::getTypeDescription($this->_theType));
|
||||
}
|
||||
|
||||
public function describeMismatch($item, Description $description)
|
||||
{
|
||||
if ($item === null) {
|
||||
$description->appendText('was null');
|
||||
} else {
|
||||
$description->appendText('was ')
|
||||
->appendText(self::getTypeDescription(strtolower(gettype($item))))
|
||||
->appendText(' ')
|
||||
->appendValue($item)
|
||||
;
|
||||
}
|
||||
}
|
||||
|
||||
public static function getTypeDescription($type)
|
||||
{
|
||||
if ($type == 'null') {
|
||||
return 'null';
|
||||
}
|
||||
|
||||
return (strpos('aeiou', substr($type, 0, 1)) === false ? 'a ' : 'an ')
|
||||
. $type;
|
||||
}
|
||||
|
||||
/**
|
||||
* Is the value a particular built-in type?
|
||||
*
|
||||
* @factory
|
||||
*/
|
||||
public static function typeOf($theType)
|
||||
{
|
||||
return new self($theType);
|
||||
}
|
||||
}
|
95
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/Set.php
vendored
Normal file
95
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/Set.php
vendored
Normal file
@@ -0,0 +1,95 @@
|
||||
<?php
|
||||
namespace Hamcrest\Core;
|
||||
|
||||
/*
|
||||
Copyright (c) 2010 hamcrest.org
|
||||
*/
|
||||
use Hamcrest\BaseMatcher;
|
||||
use Hamcrest\Description;
|
||||
|
||||
/**
|
||||
* Tests if a value (class, object, or array) has a named property.
|
||||
*
|
||||
* For example:
|
||||
* <pre>
|
||||
* assertThat(array('a', 'b'), set('b'));
|
||||
* assertThat($foo, set('bar'));
|
||||
* assertThat('Server', notSet('defaultPort'));
|
||||
* </pre>
|
||||
*
|
||||
* @todo Replace $property with a matcher and iterate all property names.
|
||||
*/
|
||||
class Set extends BaseMatcher
|
||||
{
|
||||
|
||||
private $_property;
|
||||
private $_not;
|
||||
|
||||
public function __construct($property, $not = false)
|
||||
{
|
||||
$this->_property = $property;
|
||||
$this->_not = $not;
|
||||
}
|
||||
|
||||
public function matches($item)
|
||||
{
|
||||
if ($item === null) {
|
||||
return false;
|
||||
}
|
||||
$property = $this->_property;
|
||||
if (is_array($item)) {
|
||||
$result = isset($item[$property]);
|
||||
} elseif (is_object($item)) {
|
||||
$result = isset($item->$property);
|
||||
} elseif (is_string($item)) {
|
||||
$result = isset($item::$$property);
|
||||
} else {
|
||||
throw new \InvalidArgumentException('Must pass an object, array, or class name');
|
||||
}
|
||||
|
||||
return $this->_not ? !$result : $result;
|
||||
}
|
||||
|
||||
public function describeTo(Description $description)
|
||||
{
|
||||
$description->appendText($this->_not ? 'unset property ' : 'set property ')->appendText($this->_property);
|
||||
}
|
||||
|
||||
public function describeMismatch($item, Description $description)
|
||||
{
|
||||
$value = '';
|
||||
if (!$this->_not) {
|
||||
$description->appendText('was not set');
|
||||
} else {
|
||||
$property = $this->_property;
|
||||
if (is_array($item)) {
|
||||
$value = $item[$property];
|
||||
} elseif (is_object($item)) {
|
||||
$value = $item->$property;
|
||||
} elseif (is_string($item)) {
|
||||
$value = $item::$$property;
|
||||
}
|
||||
parent::describeMismatch($value, $description);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Matches if value (class, object, or array) has named $property.
|
||||
*
|
||||
* @factory
|
||||
*/
|
||||
public static function set($property)
|
||||
{
|
||||
return new self($property);
|
||||
}
|
||||
|
||||
/**
|
||||
* Matches if value (class, object, or array) does not have named $property.
|
||||
*
|
||||
* @factory
|
||||
*/
|
||||
public static function notSet($property)
|
||||
{
|
||||
return new self($property, true);
|
||||
}
|
||||
}
|
43
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/ShortcutCombination.php
vendored
Normal file
43
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/ShortcutCombination.php
vendored
Normal file
@@ -0,0 +1,43 @@
|
||||
<?php
|
||||
namespace Hamcrest\Core;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
|
||||
use Hamcrest\BaseMatcher;
|
||||
use Hamcrest\Description;
|
||||
use Hamcrest\Util;
|
||||
|
||||
abstract class ShortcutCombination extends BaseMatcher
|
||||
{
|
||||
|
||||
/**
|
||||
* @var array<\Hamcrest\Matcher>
|
||||
*/
|
||||
private $_matchers;
|
||||
|
||||
public function __construct(array $matchers)
|
||||
{
|
||||
Util::checkAllAreMatchers($matchers);
|
||||
|
||||
$this->_matchers = $matchers;
|
||||
}
|
||||
|
||||
protected function matchesWithShortcut($item, $shortcut)
|
||||
{
|
||||
/** @var $matcher \Hamcrest\Matcher */
|
||||
foreach ($this->_matchers as $matcher) {
|
||||
if ($matcher->matches($item) == $shortcut) {
|
||||
return $shortcut;
|
||||
}
|
||||
}
|
||||
|
||||
return !$shortcut;
|
||||
}
|
||||
|
||||
public function describeToWithOperator(Description $description, $operator)
|
||||
{
|
||||
$description->appendList('(', ' ' . $operator . ' ', ')', $this->_matchers);
|
||||
}
|
||||
}
|
70
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Description.php
vendored
Normal file
70
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Description.php
vendored
Normal file
@@ -0,0 +1,70 @@
|
||||
<?php
|
||||
namespace Hamcrest;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
|
||||
/**
|
||||
* A description of a Matcher. A Matcher will describe itself to a description
|
||||
* which can later be used for reporting.
|
||||
*
|
||||
* @see Hamcrest\Matcher::describeTo()
|
||||
*/
|
||||
interface Description
|
||||
{
|
||||
|
||||
/**
|
||||
* Appends some plain text to the description.
|
||||
*
|
||||
* @param string $text
|
||||
*
|
||||
* @return \Hamcrest\Description
|
||||
*/
|
||||
public function appendText($text);
|
||||
|
||||
/**
|
||||
* Appends the description of a {@link Hamcrest\SelfDescribing} value to
|
||||
* this description.
|
||||
*
|
||||
* @param \Hamcrest\SelfDescribing $value
|
||||
*
|
||||
* @return \Hamcrest\Description
|
||||
*/
|
||||
public function appendDescriptionOf(SelfDescribing $value);
|
||||
|
||||
/**
|
||||
* Appends an arbitary value to the description.
|
||||
*
|
||||
* @param mixed $value
|
||||
*
|
||||
* @return \Hamcrest\Description
|
||||
*/
|
||||
public function appendValue($value);
|
||||
|
||||
/**
|
||||
* Appends a list of values to the description.
|
||||
*
|
||||
* @param string $start
|
||||
* @param string $separator
|
||||
* @param string $end
|
||||
* @param array|\IteratorAggregate|\Iterator $values
|
||||
*
|
||||
* @return \Hamcrest\Description
|
||||
*/
|
||||
public function appendValueList($start, $separator, $end, $values);
|
||||
|
||||
/**
|
||||
* Appends a list of {@link Hamcrest\SelfDescribing} objects to the
|
||||
* description.
|
||||
*
|
||||
* @param string $start
|
||||
* @param string $separator
|
||||
* @param string $end
|
||||
* @param array|\\IteratorAggregate|\\Iterator $values
|
||||
* must be instances of {@link Hamcrest\SelfDescribing}
|
||||
*
|
||||
* @return \Hamcrest\Description
|
||||
*/
|
||||
public function appendList($start, $separator, $end, $values);
|
||||
}
|
25
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/DiagnosingMatcher.php
vendored
Normal file
25
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/DiagnosingMatcher.php
vendored
Normal file
@@ -0,0 +1,25 @@
|
||||
<?php
|
||||
namespace Hamcrest;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
|
||||
/**
|
||||
* Official documentation for this class is missing.
|
||||
*/
|
||||
abstract class DiagnosingMatcher extends BaseMatcher
|
||||
{
|
||||
|
||||
final public function matches($item)
|
||||
{
|
||||
return $this->matchesWithDiagnosticDescription($item, new NullDescription());
|
||||
}
|
||||
|
||||
public function describeMismatch($item, Description $mismatchDescription)
|
||||
{
|
||||
$this->matchesWithDiagnosticDescription($item, $mismatchDescription);
|
||||
}
|
||||
|
||||
abstract protected function matchesWithDiagnosticDescription($item, Description $mismatchDescription);
|
||||
}
|
67
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/FeatureMatcher.php
vendored
Normal file
67
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/FeatureMatcher.php
vendored
Normal file
@@ -0,0 +1,67 @@
|
||||
<?php
|
||||
namespace Hamcrest;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
|
||||
/**
|
||||
* Supporting class for matching a feature of an object. Implement
|
||||
* <code>featureValueOf()</code> in a subclass to pull out the feature to be
|
||||
* matched against.
|
||||
*/
|
||||
abstract class FeatureMatcher extends TypeSafeDiagnosingMatcher
|
||||
{
|
||||
|
||||
private $_subMatcher;
|
||||
private $_featureDescription;
|
||||
private $_featureName;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @param string $type
|
||||
* @param string $subtype
|
||||
* @param \Hamcrest\Matcher $subMatcher The matcher to apply to the feature
|
||||
* @param string $featureDescription Descriptive text to use in describeTo
|
||||
* @param string $featureName Identifying text for mismatch message
|
||||
*/
|
||||
public function __construct($type, $subtype, Matcher $subMatcher, $featureDescription, $featureName)
|
||||
{
|
||||
parent::__construct($type, $subtype);
|
||||
|
||||
$this->_subMatcher = $subMatcher;
|
||||
$this->_featureDescription = $featureDescription;
|
||||
$this->_featureName = $featureName;
|
||||
}
|
||||
|
||||
/**
|
||||
* Implement this to extract the interesting feature.
|
||||
*
|
||||
* @param mixed $actual the target object
|
||||
*
|
||||
* @return mixed the feature to be matched
|
||||
*/
|
||||
abstract protected function featureValueOf($actual);
|
||||
|
||||
public function matchesSafelyWithDiagnosticDescription($actual, Description $mismatchDescription)
|
||||
{
|
||||
$featureValue = $this->featureValueOf($actual);
|
||||
|
||||
if (!$this->_subMatcher->matches($featureValue)) {
|
||||
$mismatchDescription->appendText($this->_featureName)
|
||||
->appendText(' was ')->appendValue($featureValue);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
final public function describeTo(Description $description)
|
||||
{
|
||||
$description->appendText($this->_featureDescription)->appendText(' ')
|
||||
->appendDescriptionOf($this->_subMatcher)
|
||||
;
|
||||
}
|
||||
}
|
27
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Internal/SelfDescribingValue.php
vendored
Normal file
27
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Internal/SelfDescribingValue.php
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
<?php
|
||||
namespace Hamcrest\Internal;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
use Hamcrest\Description;
|
||||
use Hamcrest\SelfDescribing;
|
||||
|
||||
/**
|
||||
* A wrapper around any value so that it describes itself.
|
||||
*/
|
||||
class SelfDescribingValue implements SelfDescribing
|
||||
{
|
||||
|
||||
private $_value;
|
||||
|
||||
public function __construct($value)
|
||||
{
|
||||
$this->_value = $value;
|
||||
}
|
||||
|
||||
public function describeTo(Description $description)
|
||||
{
|
||||
$description->appendValue($this->_value);
|
||||
}
|
||||
}
|
50
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Matcher.php
vendored
Normal file
50
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Matcher.php
vendored
Normal file
@@ -0,0 +1,50 @@
|
||||
<?php
|
||||
namespace Hamcrest;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
|
||||
/**
|
||||
* A matcher over acceptable values.
|
||||
* A matcher is able to describe itself to give feedback when it fails.
|
||||
* <p/>
|
||||
* Matcher implementations should <b>NOT directly implement this interface</b>.
|
||||
* Instead, <b>extend</b> the {@link Hamcrest\BaseMatcher} abstract class,
|
||||
* which will ensure that the Matcher API can grow to support
|
||||
* new features and remain compatible with all Matcher implementations.
|
||||
* <p/>
|
||||
* For easy access to common Matcher implementations, use the static factory
|
||||
* methods in {@link Hamcrest\CoreMatchers}.
|
||||
*
|
||||
* @see Hamcrest\CoreMatchers
|
||||
* @see Hamcrest\BaseMatcher
|
||||
*/
|
||||
interface Matcher extends SelfDescribing
|
||||
{
|
||||
|
||||
/**
|
||||
* Evaluates the matcher for argument <var>$item</var>.
|
||||
*
|
||||
* @param mixed $item the object against which the matcher is evaluated.
|
||||
*
|
||||
* @return boolean <code>true</code> if <var>$item</var> matches,
|
||||
* otherwise <code>false</code>.
|
||||
*
|
||||
* @see Hamcrest\BaseMatcher
|
||||
*/
|
||||
public function matches($item);
|
||||
|
||||
/**
|
||||
* Generate a description of why the matcher has not accepted the item.
|
||||
* The description will be part of a larger description of why a matching
|
||||
* failed, so it should be concise.
|
||||
* This method assumes that <code>matches($item)</code> is false, but
|
||||
* will not check this.
|
||||
*
|
||||
* @param mixed $item The item that the Matcher has rejected.
|
||||
* @param Description $description
|
||||
* @return
|
||||
*/
|
||||
public function describeMismatch($item, Description $description);
|
||||
}
|
118
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/MatcherAssert.php
vendored
Normal file
118
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/MatcherAssert.php
vendored
Normal file
@@ -0,0 +1,118 @@
|
||||
<?php
|
||||
namespace Hamcrest;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
|
||||
class MatcherAssert
|
||||
{
|
||||
|
||||
/**
|
||||
* Number of assertions performed.
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
private static $_count = 0;
|
||||
|
||||
/**
|
||||
* Make an assertion and throw {@link Hamcrest\AssertionError} if it fails.
|
||||
*
|
||||
* The first parameter may optionally be a string identifying the assertion
|
||||
* to be included in the failure message.
|
||||
*
|
||||
* If the third parameter is not a matcher it is passed to
|
||||
* {@link Hamcrest\Core\IsEqual#equalTo} to create one.
|
||||
*
|
||||
* Example:
|
||||
* <pre>
|
||||
* // With an identifier
|
||||
* assertThat("apple flavour", $apple->flavour(), equalTo("tasty"));
|
||||
* // Without an identifier
|
||||
* assertThat($apple->flavour(), equalTo("tasty"));
|
||||
* // Evaluating a boolean expression
|
||||
* assertThat("some error", $a > $b);
|
||||
* assertThat($a > $b);
|
||||
* </pre>
|
||||
*/
|
||||
public static function assertThat(/* $args ... */)
|
||||
{
|
||||
$args = func_get_args();
|
||||
switch (count($args)) {
|
||||
case 1:
|
||||
self::$_count++;
|
||||
if (!$args[0]) {
|
||||
throw new AssertionError();
|
||||
}
|
||||
break;
|
||||
|
||||
case 2:
|
||||
self::$_count++;
|
||||
if ($args[1] instanceof Matcher) {
|
||||
self::doAssert('', $args[0], $args[1]);
|
||||
} elseif (!$args[1]) {
|
||||
throw new AssertionError($args[0]);
|
||||
}
|
||||
break;
|
||||
|
||||
case 3:
|
||||
self::$_count++;
|
||||
self::doAssert(
|
||||
$args[0],
|
||||
$args[1],
|
||||
Util::wrapValueWithIsEqual($args[2])
|
||||
);
|
||||
break;
|
||||
|
||||
default:
|
||||
throw new \InvalidArgumentException('assertThat() requires one to three arguments');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the number of assertions performed.
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public static function getCount()
|
||||
{
|
||||
return self::$_count;
|
||||
}
|
||||
|
||||
/**
|
||||
* Resets the number of assertions performed to zero.
|
||||
*/
|
||||
public static function resetCount()
|
||||
{
|
||||
self::$_count = 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Performs the actual assertion logic.
|
||||
*
|
||||
* If <code>$matcher</code> doesn't match <code>$actual</code>,
|
||||
* throws a {@link Hamcrest\AssertionError} with a description
|
||||
* of the failure along with the optional <code>$identifier</code>.
|
||||
*
|
||||
* @param string $identifier added to the message upon failure
|
||||
* @param mixed $actual value to compare against <code>$matcher</code>
|
||||
* @param \Hamcrest\Matcher $matcher applied to <code>$actual</code>
|
||||
* @throws AssertionError
|
||||
*/
|
||||
private static function doAssert($identifier, $actual, Matcher $matcher)
|
||||
{
|
||||
if (!$matcher->matches($actual)) {
|
||||
$description = new StringDescription();
|
||||
if (!empty($identifier)) {
|
||||
$description->appendText($identifier . PHP_EOL);
|
||||
}
|
||||
$description->appendText('Expected: ')
|
||||
->appendDescriptionOf($matcher)
|
||||
->appendText(PHP_EOL . ' but: ');
|
||||
|
||||
$matcher->describeMismatch($actual, $description);
|
||||
|
||||
throw new AssertionError((string) $description);
|
||||
}
|
||||
}
|
||||
}
|
713
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Matchers.php
vendored
Normal file
713
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Matchers.php
vendored
Normal file
@@ -0,0 +1,713 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
Copyright (c) 2009-2010 hamcrest.org
|
||||
*/
|
||||
|
||||
// This file is generated from the static method @factory doctags.
|
||||
|
||||
namespace Hamcrest;
|
||||
|
||||
/**
|
||||
* A series of static factories for all hamcrest matchers.
|
||||
*/
|
||||
class Matchers
|
||||
{
|
||||
|
||||
/**
|
||||
* Evaluates to true only if each $matcher[$i] is satisfied by $array[$i].
|
||||
*/
|
||||
public static function anArray(/* args... */)
|
||||
{
|
||||
$args = func_get_args();
|
||||
return call_user_func_array(array('\Hamcrest\Arrays\IsArray', 'anArray'), $args);
|
||||
}
|
||||
|
||||
/**
|
||||
* Evaluates to true if any item in an array satisfies the given matcher.
|
||||
*
|
||||
* @param mixed $item as a {@link Hamcrest\Matcher} or a value.
|
||||
*
|
||||
* @return \Hamcrest\Arrays\IsArrayContaining
|
||||
*/
|
||||
public static function hasItemInArray($item)
|
||||
{
|
||||
return \Hamcrest\Arrays\IsArrayContaining::hasItemInArray($item);
|
||||
}
|
||||
|
||||
/**
|
||||
* Evaluates to true if any item in an array satisfies the given matcher.
|
||||
*
|
||||
* @param mixed $item as a {@link Hamcrest\Matcher} or a value.
|
||||
*
|
||||
* @return \Hamcrest\Arrays\IsArrayContaining
|
||||
*/
|
||||
public static function hasValue($item)
|
||||
{
|
||||
return \Hamcrest\Arrays\IsArrayContaining::hasItemInArray($item);
|
||||
}
|
||||
|
||||
/**
|
||||
* An array with elements that match the given matchers.
|
||||
*/
|
||||
public static function arrayContainingInAnyOrder(/* args... */)
|
||||
{
|
||||
$args = func_get_args();
|
||||
return call_user_func_array(array('\Hamcrest\Arrays\IsArrayContainingInAnyOrder', 'arrayContainingInAnyOrder'), $args);
|
||||
}
|
||||
|
||||
/**
|
||||
* An array with elements that match the given matchers.
|
||||
*/
|
||||
public static function containsInAnyOrder(/* args... */)
|
||||
{
|
||||
$args = func_get_args();
|
||||
return call_user_func_array(array('\Hamcrest\Arrays\IsArrayContainingInAnyOrder', 'arrayContainingInAnyOrder'), $args);
|
||||
}
|
||||
|
||||
/**
|
||||
* An array with elements that match the given matchers in the same order.
|
||||
*/
|
||||
public static function arrayContaining(/* args... */)
|
||||
{
|
||||
$args = func_get_args();
|
||||
return call_user_func_array(array('\Hamcrest\Arrays\IsArrayContainingInOrder', 'arrayContaining'), $args);
|
||||
}
|
||||
|
||||
/**
|
||||
* An array with elements that match the given matchers in the same order.
|
||||
*/
|
||||
public static function contains(/* args... */)
|
||||
{
|
||||
$args = func_get_args();
|
||||
return call_user_func_array(array('\Hamcrest\Arrays\IsArrayContainingInOrder', 'arrayContaining'), $args);
|
||||
}
|
||||
|
||||
/**
|
||||
* Evaluates to true if any key in an array matches the given matcher.
|
||||
*
|
||||
* @param mixed $key as a {@link Hamcrest\Matcher} or a value.
|
||||
*
|
||||
* @return \Hamcrest\Arrays\IsArrayContainingKey
|
||||
*/
|
||||
public static function hasKeyInArray($key)
|
||||
{
|
||||
return \Hamcrest\Arrays\IsArrayContainingKey::hasKeyInArray($key);
|
||||
}
|
||||
|
||||
/**
|
||||
* Evaluates to true if any key in an array matches the given matcher.
|
||||
*
|
||||
* @param mixed $key as a {@link Hamcrest\Matcher} or a value.
|
||||
*
|
||||
* @return \Hamcrest\Arrays\IsArrayContainingKey
|
||||
*/
|
||||
public static function hasKey($key)
|
||||
{
|
||||
return \Hamcrest\Arrays\IsArrayContainingKey::hasKeyInArray($key);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test if an array has both an key and value in parity with each other.
|
||||
*/
|
||||
public static function hasKeyValuePair($key, $value)
|
||||
{
|
||||
return \Hamcrest\Arrays\IsArrayContainingKeyValuePair::hasKeyValuePair($key, $value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test if an array has both an key and value in parity with each other.
|
||||
*/
|
||||
public static function hasEntry($key, $value)
|
||||
{
|
||||
return \Hamcrest\Arrays\IsArrayContainingKeyValuePair::hasKeyValuePair($key, $value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Does array size satisfy a given matcher?
|
||||
*
|
||||
* @param \Hamcrest\Matcher|int $size as a {@link Hamcrest\Matcher} or a value.
|
||||
*
|
||||
* @return \Hamcrest\Arrays\IsArrayWithSize
|
||||
*/
|
||||
public static function arrayWithSize($size)
|
||||
{
|
||||
return \Hamcrest\Arrays\IsArrayWithSize::arrayWithSize($size);
|
||||
}
|
||||
|
||||
/**
|
||||
* Matches an empty array.
|
||||
*/
|
||||
public static function emptyArray()
|
||||
{
|
||||
return \Hamcrest\Arrays\IsArrayWithSize::emptyArray();
|
||||
}
|
||||
|
||||
/**
|
||||
* Matches an empty array.
|
||||
*/
|
||||
public static function nonEmptyArray()
|
||||
{
|
||||
return \Hamcrest\Arrays\IsArrayWithSize::nonEmptyArray();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if traversable is empty.
|
||||
*/
|
||||
public static function emptyTraversable()
|
||||
{
|
||||
return \Hamcrest\Collection\IsEmptyTraversable::emptyTraversable();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if traversable is not empty.
|
||||
*/
|
||||
public static function nonEmptyTraversable()
|
||||
{
|
||||
return \Hamcrest\Collection\IsEmptyTraversable::nonEmptyTraversable();
|
||||
}
|
||||
|
||||
/**
|
||||
* Does traversable size satisfy a given matcher?
|
||||
*/
|
||||
public static function traversableWithSize($size)
|
||||
{
|
||||
return \Hamcrest\Collection\IsTraversableWithSize::traversableWithSize($size);
|
||||
}
|
||||
|
||||
/**
|
||||
* Evaluates to true only if ALL of the passed in matchers evaluate to true.
|
||||
*/
|
||||
public static function allOf(/* args... */)
|
||||
{
|
||||
$args = func_get_args();
|
||||
return call_user_func_array(array('\Hamcrest\Core\AllOf', 'allOf'), $args);
|
||||
}
|
||||
|
||||
/**
|
||||
* Evaluates to true if ANY of the passed in matchers evaluate to true.
|
||||
*/
|
||||
public static function anyOf(/* args... */)
|
||||
{
|
||||
$args = func_get_args();
|
||||
return call_user_func_array(array('\Hamcrest\Core\AnyOf', 'anyOf'), $args);
|
||||
}
|
||||
|
||||
/**
|
||||
* Evaluates to false if ANY of the passed in matchers evaluate to true.
|
||||
*/
|
||||
public static function noneOf(/* args... */)
|
||||
{
|
||||
$args = func_get_args();
|
||||
return call_user_func_array(array('\Hamcrest\Core\AnyOf', 'noneOf'), $args);
|
||||
}
|
||||
|
||||
/**
|
||||
* This is useful for fluently combining matchers that must both pass.
|
||||
* For example:
|
||||
* <pre>
|
||||
* assertThat($string, both(containsString("a"))->andAlso(containsString("b")));
|
||||
* </pre>
|
||||
*/
|
||||
public static function both(\Hamcrest\Matcher $matcher)
|
||||
{
|
||||
return \Hamcrest\Core\CombinableMatcher::both($matcher);
|
||||
}
|
||||
|
||||
/**
|
||||
* This is useful for fluently combining matchers where either may pass,
|
||||
* for example:
|
||||
* <pre>
|
||||
* assertThat($string, either(containsString("a"))->orElse(containsString("b")));
|
||||
* </pre>
|
||||
*/
|
||||
public static function either(\Hamcrest\Matcher $matcher)
|
||||
{
|
||||
return \Hamcrest\Core\CombinableMatcher::either($matcher);
|
||||
}
|
||||
|
||||
/**
|
||||
* Wraps an existing matcher and overrides the description when it fails.
|
||||
*/
|
||||
public static function describedAs(/* args... */)
|
||||
{
|
||||
$args = func_get_args();
|
||||
return call_user_func_array(array('\Hamcrest\Core\DescribedAs', 'describedAs'), $args);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Matcher $itemMatcher
|
||||
* A matcher to apply to every element in an array.
|
||||
*
|
||||
* @return \Hamcrest\Core\Every
|
||||
* Evaluates to TRUE for a collection in which every item matches $itemMatcher
|
||||
*/
|
||||
public static function everyItem(\Hamcrest\Matcher $itemMatcher)
|
||||
{
|
||||
return \Hamcrest\Core\Every::everyItem($itemMatcher);
|
||||
}
|
||||
|
||||
/**
|
||||
* Does array size satisfy a given matcher?
|
||||
*/
|
||||
public static function hasToString($matcher)
|
||||
{
|
||||
return \Hamcrest\Core\HasToString::hasToString($matcher);
|
||||
}
|
||||
|
||||
/**
|
||||
* Decorates another Matcher, retaining the behavior but allowing tests
|
||||
* to be slightly more expressive.
|
||||
*
|
||||
* For example: assertThat($cheese, equalTo($smelly))
|
||||
* vs. assertThat($cheese, is(equalTo($smelly)))
|
||||
*/
|
||||
public static function is($value)
|
||||
{
|
||||
return \Hamcrest\Core\Is::is($value);
|
||||
}
|
||||
|
||||
/**
|
||||
* This matcher always evaluates to true.
|
||||
*
|
||||
* @param string $description A meaningful string used when describing itself.
|
||||
*
|
||||
* @return \Hamcrest\Core\IsAnything
|
||||
*/
|
||||
public static function anything($description = 'ANYTHING')
|
||||
{
|
||||
return \Hamcrest\Core\IsAnything::anything($description);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test if the value is an array containing this matcher.
|
||||
*
|
||||
* Example:
|
||||
* <pre>
|
||||
* assertThat(array('a', 'b'), hasItem(equalTo('b')));
|
||||
* //Convenience defaults to equalTo()
|
||||
* assertThat(array('a', 'b'), hasItem('b'));
|
||||
* </pre>
|
||||
*/
|
||||
public static function hasItem(/* args... */)
|
||||
{
|
||||
$args = func_get_args();
|
||||
return call_user_func_array(array('\Hamcrest\Core\IsCollectionContaining', 'hasItem'), $args);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test if the value is an array containing elements that match all of these
|
||||
* matchers.
|
||||
*
|
||||
* Example:
|
||||
* <pre>
|
||||
* assertThat(array('a', 'b', 'c'), hasItems(equalTo('a'), equalTo('b')));
|
||||
* </pre>
|
||||
*/
|
||||
public static function hasItems(/* args... */)
|
||||
{
|
||||
$args = func_get_args();
|
||||
return call_user_func_array(array('\Hamcrest\Core\IsCollectionContaining', 'hasItems'), $args);
|
||||
}
|
||||
|
||||
/**
|
||||
* Is the value equal to another value, as tested by the use of the "=="
|
||||
* comparison operator?
|
||||
*/
|
||||
public static function equalTo($item)
|
||||
{
|
||||
return \Hamcrest\Core\IsEqual::equalTo($item);
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests of the value is identical to $value as tested by the "===" operator.
|
||||
*/
|
||||
public static function identicalTo($value)
|
||||
{
|
||||
return \Hamcrest\Core\IsIdentical::identicalTo($value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Is the value an instance of a particular type?
|
||||
* This version assumes no relationship between the required type and
|
||||
* the signature of the method that sets it up, for example in
|
||||
* <code>assertThat($anObject, anInstanceOf('Thing'));</code>
|
||||
*/
|
||||
public static function anInstanceOf($theClass)
|
||||
{
|
||||
return \Hamcrest\Core\IsInstanceOf::anInstanceOf($theClass);
|
||||
}
|
||||
|
||||
/**
|
||||
* Is the value an instance of a particular type?
|
||||
* This version assumes no relationship between the required type and
|
||||
* the signature of the method that sets it up, for example in
|
||||
* <code>assertThat($anObject, anInstanceOf('Thing'));</code>
|
||||
*/
|
||||
public static function any($theClass)
|
||||
{
|
||||
return \Hamcrest\Core\IsInstanceOf::anInstanceOf($theClass);
|
||||
}
|
||||
|
||||
/**
|
||||
* Matches if value does not match $value.
|
||||
*/
|
||||
public static function not($value)
|
||||
{
|
||||
return \Hamcrest\Core\IsNot::not($value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Matches if value is null.
|
||||
*/
|
||||
public static function nullValue()
|
||||
{
|
||||
return \Hamcrest\Core\IsNull::nullValue();
|
||||
}
|
||||
|
||||
/**
|
||||
* Matches if value is not null.
|
||||
*/
|
||||
public static function notNullValue()
|
||||
{
|
||||
return \Hamcrest\Core\IsNull::notNullValue();
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a new instance of IsSame.
|
||||
*
|
||||
* @param mixed $object
|
||||
* The predicate evaluates to true only when the argument is
|
||||
* this object.
|
||||
*
|
||||
* @return \Hamcrest\Core\IsSame
|
||||
*/
|
||||
public static function sameInstance($object)
|
||||
{
|
||||
return \Hamcrest\Core\IsSame::sameInstance($object);
|
||||
}
|
||||
|
||||
/**
|
||||
* Is the value a particular built-in type?
|
||||
*/
|
||||
public static function typeOf($theType)
|
||||
{
|
||||
return \Hamcrest\Core\IsTypeOf::typeOf($theType);
|
||||
}
|
||||
|
||||
/**
|
||||
* Matches if value (class, object, or array) has named $property.
|
||||
*/
|
||||
public static function set($property)
|
||||
{
|
||||
return \Hamcrest\Core\Set::set($property);
|
||||
}
|
||||
|
||||
/**
|
||||
* Matches if value (class, object, or array) does not have named $property.
|
||||
*/
|
||||
public static function notSet($property)
|
||||
{
|
||||
return \Hamcrest\Core\Set::notSet($property);
|
||||
}
|
||||
|
||||
/**
|
||||
* Matches if value is a number equal to $value within some range of
|
||||
* acceptable error $delta.
|
||||
*/
|
||||
public static function closeTo($value, $delta)
|
||||
{
|
||||
return \Hamcrest\Number\IsCloseTo::closeTo($value, $delta);
|
||||
}
|
||||
|
||||
/**
|
||||
* The value is not > $value, nor < $value.
|
||||
*/
|
||||
public static function comparesEqualTo($value)
|
||||
{
|
||||
return \Hamcrest\Number\OrderingComparison::comparesEqualTo($value);
|
||||
}
|
||||
|
||||
/**
|
||||
* The value is > $value.
|
||||
*/
|
||||
public static function greaterThan($value)
|
||||
{
|
||||
return \Hamcrest\Number\OrderingComparison::greaterThan($value);
|
||||
}
|
||||
|
||||
/**
|
||||
* The value is >= $value.
|
||||
*/
|
||||
public static function greaterThanOrEqualTo($value)
|
||||
{
|
||||
return \Hamcrest\Number\OrderingComparison::greaterThanOrEqualTo($value);
|
||||
}
|
||||
|
||||
/**
|
||||
* The value is >= $value.
|
||||
*/
|
||||
public static function atLeast($value)
|
||||
{
|
||||
return \Hamcrest\Number\OrderingComparison::greaterThanOrEqualTo($value);
|
||||
}
|
||||
|
||||
/**
|
||||
* The value is < $value.
|
||||
*/
|
||||
public static function lessThan($value)
|
||||
{
|
||||
return \Hamcrest\Number\OrderingComparison::lessThan($value);
|
||||
}
|
||||
|
||||
/**
|
||||
* The value is <= $value.
|
||||
*/
|
||||
public static function lessThanOrEqualTo($value)
|
||||
{
|
||||
return \Hamcrest\Number\OrderingComparison::lessThanOrEqualTo($value);
|
||||
}
|
||||
|
||||
/**
|
||||
* The value is <= $value.
|
||||
*/
|
||||
public static function atMost($value)
|
||||
{
|
||||
return \Hamcrest\Number\OrderingComparison::lessThanOrEqualTo($value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Matches if value is a zero-length string.
|
||||
*/
|
||||
public static function isEmptyString()
|
||||
{
|
||||
return \Hamcrest\Text\IsEmptyString::isEmptyString();
|
||||
}
|
||||
|
||||
/**
|
||||
* Matches if value is a zero-length string.
|
||||
*/
|
||||
public static function emptyString()
|
||||
{
|
||||
return \Hamcrest\Text\IsEmptyString::isEmptyString();
|
||||
}
|
||||
|
||||
/**
|
||||
* Matches if value is null or a zero-length string.
|
||||
*/
|
||||
public static function isEmptyOrNullString()
|
||||
{
|
||||
return \Hamcrest\Text\IsEmptyString::isEmptyOrNullString();
|
||||
}
|
||||
|
||||
/**
|
||||
* Matches if value is null or a zero-length string.
|
||||
*/
|
||||
public static function nullOrEmptyString()
|
||||
{
|
||||
return \Hamcrest\Text\IsEmptyString::isEmptyOrNullString();
|
||||
}
|
||||
|
||||
/**
|
||||
* Matches if value is a non-zero-length string.
|
||||
*/
|
||||
public static function isNonEmptyString()
|
||||
{
|
||||
return \Hamcrest\Text\IsEmptyString::isNonEmptyString();
|
||||
}
|
||||
|
||||
/**
|
||||
* Matches if value is a non-zero-length string.
|
||||
*/
|
||||
public static function nonEmptyString()
|
||||
{
|
||||
return \Hamcrest\Text\IsEmptyString::isNonEmptyString();
|
||||
}
|
||||
|
||||
/**
|
||||
* Matches if value is a string equal to $string, regardless of the case.
|
||||
*/
|
||||
public static function equalToIgnoringCase($string)
|
||||
{
|
||||
return \Hamcrest\Text\IsEqualIgnoringCase::equalToIgnoringCase($string);
|
||||
}
|
||||
|
||||
/**
|
||||
* Matches if value is a string equal to $string, regardless of whitespace.
|
||||
*/
|
||||
public static function equalToIgnoringWhiteSpace($string)
|
||||
{
|
||||
return \Hamcrest\Text\IsEqualIgnoringWhiteSpace::equalToIgnoringWhiteSpace($string);
|
||||
}
|
||||
|
||||
/**
|
||||
* Matches if value is a string that matches regular expression $pattern.
|
||||
*/
|
||||
public static function matchesPattern($pattern)
|
||||
{
|
||||
return \Hamcrest\Text\MatchesPattern::matchesPattern($pattern);
|
||||
}
|
||||
|
||||
/**
|
||||
* Matches if value is a string that contains $substring.
|
||||
*/
|
||||
public static function containsString($substring)
|
||||
{
|
||||
return \Hamcrest\Text\StringContains::containsString($substring);
|
||||
}
|
||||
|
||||
/**
|
||||
* Matches if value is a string that contains $substring regardless of the case.
|
||||
*/
|
||||
public static function containsStringIgnoringCase($substring)
|
||||
{
|
||||
return \Hamcrest\Text\StringContainsIgnoringCase::containsStringIgnoringCase($substring);
|
||||
}
|
||||
|
||||
/**
|
||||
* Matches if value contains $substrings in a constrained order.
|
||||
*/
|
||||
public static function stringContainsInOrder(/* args... */)
|
||||
{
|
||||
$args = func_get_args();
|
||||
return call_user_func_array(array('\Hamcrest\Text\StringContainsInOrder', 'stringContainsInOrder'), $args);
|
||||
}
|
||||
|
||||
/**
|
||||
* Matches if value is a string that ends with $substring.
|
||||
*/
|
||||
public static function endsWith($substring)
|
||||
{
|
||||
return \Hamcrest\Text\StringEndsWith::endsWith($substring);
|
||||
}
|
||||
|
||||
/**
|
||||
* Matches if value is a string that starts with $substring.
|
||||
*/
|
||||
public static function startsWith($substring)
|
||||
{
|
||||
return \Hamcrest\Text\StringStartsWith::startsWith($substring);
|
||||
}
|
||||
|
||||
/**
|
||||
* Is the value an array?
|
||||
*/
|
||||
public static function arrayValue()
|
||||
{
|
||||
return \Hamcrest\Type\IsArray::arrayValue();
|
||||
}
|
||||
|
||||
/**
|
||||
* Is the value a boolean?
|
||||
*/
|
||||
public static function booleanValue()
|
||||
{
|
||||
return \Hamcrest\Type\IsBoolean::booleanValue();
|
||||
}
|
||||
|
||||
/**
|
||||
* Is the value a boolean?
|
||||
*/
|
||||
public static function boolValue()
|
||||
{
|
||||
return \Hamcrest\Type\IsBoolean::booleanValue();
|
||||
}
|
||||
|
||||
/**
|
||||
* Is the value callable?
|
||||
*/
|
||||
public static function callableValue()
|
||||
{
|
||||
return \Hamcrest\Type\IsCallable::callableValue();
|
||||
}
|
||||
|
||||
/**
|
||||
* Is the value a float/double?
|
||||
*/
|
||||
public static function doubleValue()
|
||||
{
|
||||
return \Hamcrest\Type\IsDouble::doubleValue();
|
||||
}
|
||||
|
||||
/**
|
||||
* Is the value a float/double?
|
||||
*/
|
||||
public static function floatValue()
|
||||
{
|
||||
return \Hamcrest\Type\IsDouble::doubleValue();
|
||||
}
|
||||
|
||||
/**
|
||||
* Is the value an integer?
|
||||
*/
|
||||
public static function integerValue()
|
||||
{
|
||||
return \Hamcrest\Type\IsInteger::integerValue();
|
||||
}
|
||||
|
||||
/**
|
||||
* Is the value an integer?
|
||||
*/
|
||||
public static function intValue()
|
||||
{
|
||||
return \Hamcrest\Type\IsInteger::integerValue();
|
||||
}
|
||||
|
||||
/**
|
||||
* Is the value a numeric?
|
||||
*/
|
||||
public static function numericValue()
|
||||
{
|
||||
return \Hamcrest\Type\IsNumeric::numericValue();
|
||||
}
|
||||
|
||||
/**
|
||||
* Is the value an object?
|
||||
*/
|
||||
public static function objectValue()
|
||||
{
|
||||
return \Hamcrest\Type\IsObject::objectValue();
|
||||
}
|
||||
|
||||
/**
|
||||
* Is the value an object?
|
||||
*/
|
||||
public static function anObject()
|
||||
{
|
||||
return \Hamcrest\Type\IsObject::objectValue();
|
||||
}
|
||||
|
||||
/**
|
||||
* Is the value a resource?
|
||||
*/
|
||||
public static function resourceValue()
|
||||
{
|
||||
return \Hamcrest\Type\IsResource::resourceValue();
|
||||
}
|
||||
|
||||
/**
|
||||
* Is the value a scalar (boolean, integer, double, or string)?
|
||||
*/
|
||||
public static function scalarValue()
|
||||
{
|
||||
return \Hamcrest\Type\IsScalar::scalarValue();
|
||||
}
|
||||
|
||||
/**
|
||||
* Is the value a string?
|
||||
*/
|
||||
public static function stringValue()
|
||||
{
|
||||
return \Hamcrest\Type\IsString::stringValue();
|
||||
}
|
||||
|
||||
/**
|
||||
* Wraps <code>$matcher</code> with {@link Hamcrest\Core\IsEqual)
|
||||
* if it's not a matcher and the XPath in <code>count()</code>
|
||||
* if it's an integer.
|
||||
*/
|
||||
public static function hasXPath($xpath, $matcher = null)
|
||||
{
|
||||
return \Hamcrest\Xml\HasXPath::hasXPath($xpath, $matcher);
|
||||
}
|
||||
}
|
43
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/NullDescription.php
vendored
Normal file
43
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/NullDescription.php
vendored
Normal file
@@ -0,0 +1,43 @@
|
||||
<?php
|
||||
namespace Hamcrest;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
|
||||
/**
|
||||
* Null implementation of {@link Hamcrest\Description}.
|
||||
*/
|
||||
class NullDescription implements Description
|
||||
{
|
||||
|
||||
public function appendText($text)
|
||||
{
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function appendDescriptionOf(SelfDescribing $value)
|
||||
{
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function appendValue($value)
|
||||
{
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function appendValueList($start, $separator, $end, $values)
|
||||
{
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function appendList($start, $separator, $end, $values)
|
||||
{
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function __toString()
|
||||
{
|
||||
return '';
|
||||
}
|
||||
}
|
67
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Number/IsCloseTo.php
vendored
Normal file
67
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Number/IsCloseTo.php
vendored
Normal file
@@ -0,0 +1,67 @@
|
||||
<?php
|
||||
namespace Hamcrest\Number;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
use Hamcrest\Description;
|
||||
use Hamcrest\TypeSafeMatcher;
|
||||
|
||||
/**
|
||||
* Is the value a number equal to a value within some range of
|
||||
* acceptable error?
|
||||
*/
|
||||
class IsCloseTo extends TypeSafeMatcher
|
||||
{
|
||||
|
||||
private $_value;
|
||||
private $_delta;
|
||||
|
||||
public function __construct($value, $delta)
|
||||
{
|
||||
parent::__construct(self::TYPE_NUMERIC);
|
||||
|
||||
$this->_value = $value;
|
||||
$this->_delta = $delta;
|
||||
}
|
||||
|
||||
protected function matchesSafely($item)
|
||||
{
|
||||
return $this->_actualDelta($item) <= 0.0;
|
||||
}
|
||||
|
||||
protected function describeMismatchSafely($item, Description $mismatchDescription)
|
||||
{
|
||||
$mismatchDescription->appendValue($item)
|
||||
->appendText(' differed by ')
|
||||
->appendValue($this->_actualDelta($item))
|
||||
;
|
||||
}
|
||||
|
||||
public function describeTo(Description $description)
|
||||
{
|
||||
$description->appendText('a numeric value within ')
|
||||
->appendValue($this->_delta)
|
||||
->appendText(' of ')
|
||||
->appendValue($this->_value)
|
||||
;
|
||||
}
|
||||
|
||||
/**
|
||||
* Matches if value is a number equal to $value within some range of
|
||||
* acceptable error $delta.
|
||||
*
|
||||
* @factory
|
||||
*/
|
||||
public static function closeTo($value, $delta)
|
||||
{
|
||||
return new self($value, $delta);
|
||||
}
|
||||
|
||||
// -- Private Methods
|
||||
|
||||
private function _actualDelta($item)
|
||||
{
|
||||
return (abs(($item - $this->_value)) - $this->_delta);
|
||||
}
|
||||
}
|
132
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Number/OrderingComparison.php
vendored
Normal file
132
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Number/OrderingComparison.php
vendored
Normal file
@@ -0,0 +1,132 @@
|
||||
<?php
|
||||
namespace Hamcrest\Number;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
|
||||
use Hamcrest\Description;
|
||||
use Hamcrest\TypeSafeMatcher;
|
||||
|
||||
class OrderingComparison extends TypeSafeMatcher
|
||||
{
|
||||
|
||||
private $_value;
|
||||
private $_minCompare;
|
||||
private $_maxCompare;
|
||||
|
||||
public function __construct($value, $minCompare, $maxCompare)
|
||||
{
|
||||
parent::__construct(self::TYPE_NUMERIC);
|
||||
|
||||
$this->_value = $value;
|
||||
$this->_minCompare = $minCompare;
|
||||
$this->_maxCompare = $maxCompare;
|
||||
}
|
||||
|
||||
protected function matchesSafely($other)
|
||||
{
|
||||
$compare = $this->_compare($this->_value, $other);
|
||||
|
||||
return ($this->_minCompare <= $compare) && ($compare <= $this->_maxCompare);
|
||||
}
|
||||
|
||||
protected function describeMismatchSafely($item, Description $mismatchDescription)
|
||||
{
|
||||
$mismatchDescription
|
||||
->appendValue($item)->appendText(' was ')
|
||||
->appendText($this->_comparison($this->_compare($this->_value, $item)))
|
||||
->appendText(' ')->appendValue($this->_value)
|
||||
;
|
||||
}
|
||||
|
||||
public function describeTo(Description $description)
|
||||
{
|
||||
$description->appendText('a value ')
|
||||
->appendText($this->_comparison($this->_minCompare))
|
||||
;
|
||||
if ($this->_minCompare != $this->_maxCompare) {
|
||||
$description->appendText(' or ')
|
||||
->appendText($this->_comparison($this->_maxCompare))
|
||||
;
|
||||
}
|
||||
$description->appendText(' ')->appendValue($this->_value);
|
||||
}
|
||||
|
||||
/**
|
||||
* The value is not > $value, nor < $value.
|
||||
*
|
||||
* @factory
|
||||
*/
|
||||
public static function comparesEqualTo($value)
|
||||
{
|
||||
return new self($value, 0, 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* The value is > $value.
|
||||
*
|
||||
* @factory
|
||||
*/
|
||||
public static function greaterThan($value)
|
||||
{
|
||||
return new self($value, -1, -1);
|
||||
}
|
||||
|
||||
/**
|
||||
* The value is >= $value.
|
||||
*
|
||||
* @factory atLeast
|
||||
*/
|
||||
public static function greaterThanOrEqualTo($value)
|
||||
{
|
||||
return new self($value, -1, 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* The value is < $value.
|
||||
*
|
||||
* @factory
|
||||
*/
|
||||
public static function lessThan($value)
|
||||
{
|
||||
return new self($value, 1, 1);
|
||||
}
|
||||
|
||||
/**
|
||||
* The value is <= $value.
|
||||
*
|
||||
* @factory atMost
|
||||
*/
|
||||
public static function lessThanOrEqualTo($value)
|
||||
{
|
||||
return new self($value, 0, 1);
|
||||
}
|
||||
|
||||
// -- Private Methods
|
||||
|
||||
private function _compare($left, $right)
|
||||
{
|
||||
$a = $left;
|
||||
$b = $right;
|
||||
|
||||
if ($a < $b) {
|
||||
return -1;
|
||||
} elseif ($a == $b) {
|
||||
return 0;
|
||||
} else {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
private function _comparison($compare)
|
||||
{
|
||||
if ($compare > 0) {
|
||||
return 'less than';
|
||||
} elseif ($compare == 0) {
|
||||
return 'equal to';
|
||||
} else {
|
||||
return 'greater than';
|
||||
}
|
||||
}
|
||||
}
|
23
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/SelfDescribing.php
vendored
Normal file
23
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/SelfDescribing.php
vendored
Normal file
@@ -0,0 +1,23 @@
|
||||
<?php
|
||||
namespace Hamcrest;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
|
||||
/**
|
||||
* The ability of an object to describe itself.
|
||||
*/
|
||||
interface SelfDescribing
|
||||
{
|
||||
|
||||
/**
|
||||
* Generates a description of the object. The description may be part
|
||||
* of a description of a larger object of which this is just a component,
|
||||
* so it should be worded appropriately.
|
||||
*
|
||||
* @param \Hamcrest\Description $description
|
||||
* The description to be built or appended to.
|
||||
*/
|
||||
public function describeTo(Description $description);
|
||||
}
|
57
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/StringDescription.php
vendored
Normal file
57
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/StringDescription.php
vendored
Normal file
@@ -0,0 +1,57 @@
|
||||
<?php
|
||||
namespace Hamcrest;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
|
||||
/**
|
||||
* A {@link Hamcrest\Description} that is stored as a string.
|
||||
*/
|
||||
class StringDescription extends BaseDescription
|
||||
{
|
||||
|
||||
private $_out;
|
||||
|
||||
public function __construct($out = '')
|
||||
{
|
||||
$this->_out = (string) $out;
|
||||
}
|
||||
|
||||
public function __toString()
|
||||
{
|
||||
return $this->_out;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the description of a {@link Hamcrest\SelfDescribing} object as a
|
||||
* String.
|
||||
*
|
||||
* @param \Hamcrest\SelfDescribing $selfDescribing
|
||||
* The object to be described.
|
||||
*
|
||||
* @return string
|
||||
* The description of the object.
|
||||
*/
|
||||
public static function toString(SelfDescribing $selfDescribing)
|
||||
{
|
||||
$self = new self();
|
||||
|
||||
return (string) $self->appendDescriptionOf($selfDescribing);
|
||||
}
|
||||
|
||||
/**
|
||||
* Alias for {@link toString()}.
|
||||
*/
|
||||
public static function asString(SelfDescribing $selfDescribing)
|
||||
{
|
||||
return self::toString($selfDescribing);
|
||||
}
|
||||
|
||||
// -- Protected Methods
|
||||
|
||||
protected function append($str)
|
||||
{
|
||||
$this->_out .= $str;
|
||||
}
|
||||
}
|
85
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/IsEmptyString.php
vendored
Normal file
85
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/IsEmptyString.php
vendored
Normal file
@@ -0,0 +1,85 @@
|
||||
<?php
|
||||
namespace Hamcrest\Text;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
use Hamcrest\BaseMatcher;
|
||||
use Hamcrest\Core\AnyOf;
|
||||
use Hamcrest\Core\IsNull;
|
||||
use Hamcrest\Description;
|
||||
|
||||
/**
|
||||
* Matches empty Strings (and null).
|
||||
*/
|
||||
class IsEmptyString extends BaseMatcher
|
||||
{
|
||||
|
||||
private static $_INSTANCE;
|
||||
private static $_NULL_OR_EMPTY_INSTANCE;
|
||||
private static $_NOT_INSTANCE;
|
||||
|
||||
private $_empty;
|
||||
|
||||
public function __construct($empty = true)
|
||||
{
|
||||
$this->_empty = $empty;
|
||||
}
|
||||
|
||||
public function matches($item)
|
||||
{
|
||||
return $this->_empty
|
||||
? ($item === '')
|
||||
: is_string($item) && $item !== '';
|
||||
}
|
||||
|
||||
public function describeTo(Description $description)
|
||||
{
|
||||
$description->appendText($this->_empty ? 'an empty string' : 'a non-empty string');
|
||||
}
|
||||
|
||||
/**
|
||||
* Matches if value is a zero-length string.
|
||||
*
|
||||
* @factory emptyString
|
||||
*/
|
||||
public static function isEmptyString()
|
||||
{
|
||||
if (!self::$_INSTANCE) {
|
||||
self::$_INSTANCE = new self(true);
|
||||
}
|
||||
|
||||
return self::$_INSTANCE;
|
||||
}
|
||||
|
||||
/**
|
||||
* Matches if value is null or a zero-length string.
|
||||
*
|
||||
* @factory nullOrEmptyString
|
||||
*/
|
||||
public static function isEmptyOrNullString()
|
||||
{
|
||||
if (!self::$_NULL_OR_EMPTY_INSTANCE) {
|
||||
self::$_NULL_OR_EMPTY_INSTANCE = AnyOf::anyOf(
|
||||
IsNull::nullvalue(),
|
||||
self::isEmptyString()
|
||||
);
|
||||
}
|
||||
|
||||
return self::$_NULL_OR_EMPTY_INSTANCE;
|
||||
}
|
||||
|
||||
/**
|
||||
* Matches if value is a non-zero-length string.
|
||||
*
|
||||
* @factory nonEmptyString
|
||||
*/
|
||||
public static function isNonEmptyString()
|
||||
{
|
||||
if (!self::$_NOT_INSTANCE) {
|
||||
self::$_NOT_INSTANCE = new self(false);
|
||||
}
|
||||
|
||||
return self::$_NOT_INSTANCE;
|
||||
}
|
||||
}
|
52
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/IsEqualIgnoringCase.php
vendored
Normal file
52
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/IsEqualIgnoringCase.php
vendored
Normal file
@@ -0,0 +1,52 @@
|
||||
<?php
|
||||
namespace Hamcrest\Text;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
use Hamcrest\Description;
|
||||
use Hamcrest\TypeSafeMatcher;
|
||||
|
||||
/**
|
||||
* Tests if a string is equal to another string, regardless of the case.
|
||||
*/
|
||||
class IsEqualIgnoringCase extends TypeSafeMatcher
|
||||
{
|
||||
|
||||
private $_string;
|
||||
|
||||
public function __construct($string)
|
||||
{
|
||||
parent::__construct(self::TYPE_STRING);
|
||||
|
||||
$this->_string = $string;
|
||||
}
|
||||
|
||||
protected function matchesSafely($item)
|
||||
{
|
||||
return strtolower($this->_string) === strtolower($item);
|
||||
}
|
||||
|
||||
protected function describeMismatchSafely($item, Description $mismatchDescription)
|
||||
{
|
||||
$mismatchDescription->appendText('was ')->appendText($item);
|
||||
}
|
||||
|
||||
public function describeTo(Description $description)
|
||||
{
|
||||
$description->appendText('equalToIgnoringCase(')
|
||||
->appendValue($this->_string)
|
||||
->appendText(')')
|
||||
;
|
||||
}
|
||||
|
||||
/**
|
||||
* Matches if value is a string equal to $string, regardless of the case.
|
||||
*
|
||||
* @factory
|
||||
*/
|
||||
public static function equalToIgnoringCase($string)
|
||||
{
|
||||
return new self($string);
|
||||
}
|
||||
}
|
66
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/IsEqualIgnoringWhiteSpace.php
vendored
Normal file
66
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/IsEqualIgnoringWhiteSpace.php
vendored
Normal file
@@ -0,0 +1,66 @@
|
||||
<?php
|
||||
namespace Hamcrest\Text;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
use Hamcrest\Description;
|
||||
use Hamcrest\TypeSafeMatcher;
|
||||
|
||||
/**
|
||||
* Tests if a string is equal to another string, ignoring any changes in
|
||||
* whitespace.
|
||||
*/
|
||||
class IsEqualIgnoringWhiteSpace extends TypeSafeMatcher
|
||||
{
|
||||
|
||||
private $_string;
|
||||
|
||||
public function __construct($string)
|
||||
{
|
||||
parent::__construct(self::TYPE_STRING);
|
||||
|
||||
$this->_string = $string;
|
||||
}
|
||||
|
||||
protected function matchesSafely($item)
|
||||
{
|
||||
return (strtolower($this->_stripSpace($item))
|
||||
=== strtolower($this->_stripSpace($this->_string)));
|
||||
}
|
||||
|
||||
protected function describeMismatchSafely($item, Description $mismatchDescription)
|
||||
{
|
||||
$mismatchDescription->appendText('was ')->appendText($item);
|
||||
}
|
||||
|
||||
public function describeTo(Description $description)
|
||||
{
|
||||
$description->appendText('equalToIgnoringWhiteSpace(')
|
||||
->appendValue($this->_string)
|
||||
->appendText(')')
|
||||
;
|
||||
}
|
||||
|
||||
/**
|
||||
* Matches if value is a string equal to $string, regardless of whitespace.
|
||||
*
|
||||
* @factory
|
||||
*/
|
||||
public static function equalToIgnoringWhiteSpace($string)
|
||||
{
|
||||
return new self($string);
|
||||
}
|
||||
|
||||
// -- Private Methods
|
||||
|
||||
private function _stripSpace($string)
|
||||
{
|
||||
$parts = preg_split("/[\r\n\t ]+/", $string);
|
||||
foreach ($parts as $i => $part) {
|
||||
$parts[$i] = trim($part, " \r\n\t");
|
||||
}
|
||||
|
||||
return trim(implode(' ', $parts), " \r\n\t");
|
||||
}
|
||||
}
|
40
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/MatchesPattern.php
vendored
Normal file
40
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/MatchesPattern.php
vendored
Normal file
@@ -0,0 +1,40 @@
|
||||
<?php
|
||||
namespace Hamcrest\Text;
|
||||
|
||||
/*
|
||||
Copyright (c) 2010 hamcrest.org
|
||||
*/
|
||||
|
||||
/**
|
||||
* Tests if the argument is a string that matches a regular expression.
|
||||
*/
|
||||
class MatchesPattern extends SubstringMatcher
|
||||
{
|
||||
|
||||
public function __construct($pattern)
|
||||
{
|
||||
parent::__construct($pattern);
|
||||
}
|
||||
|
||||
/**
|
||||
* Matches if value is a string that matches regular expression $pattern.
|
||||
*
|
||||
* @factory
|
||||
*/
|
||||
public static function matchesPattern($pattern)
|
||||
{
|
||||
return new self($pattern);
|
||||
}
|
||||
|
||||
// -- Protected Methods
|
||||
|
||||
protected function evalSubstringOf($item)
|
||||
{
|
||||
return preg_match($this->_substring, (string) $item) >= 1;
|
||||
}
|
||||
|
||||
protected function relationship()
|
||||
{
|
||||
return 'matching';
|
||||
}
|
||||
}
|
45
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringContains.php
vendored
Normal file
45
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringContains.php
vendored
Normal file
@@ -0,0 +1,45 @@
|
||||
<?php
|
||||
namespace Hamcrest\Text;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
|
||||
/**
|
||||
* Tests if the argument is a string that contains a substring.
|
||||
*/
|
||||
class StringContains extends SubstringMatcher
|
||||
{
|
||||
|
||||
public function __construct($substring)
|
||||
{
|
||||
parent::__construct($substring);
|
||||
}
|
||||
|
||||
public function ignoringCase()
|
||||
{
|
||||
return new StringContainsIgnoringCase($this->_substring);
|
||||
}
|
||||
|
||||
/**
|
||||
* Matches if value is a string that contains $substring.
|
||||
*
|
||||
* @factory
|
||||
*/
|
||||
public static function containsString($substring)
|
||||
{
|
||||
return new self($substring);
|
||||
}
|
||||
|
||||
// -- Protected Methods
|
||||
|
||||
protected function evalSubstringOf($item)
|
||||
{
|
||||
return (false !== strpos((string) $item, $this->_substring));
|
||||
}
|
||||
|
||||
protected function relationship()
|
||||
{
|
||||
return 'containing';
|
||||
}
|
||||
}
|
40
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringContainsIgnoringCase.php
vendored
Normal file
40
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringContainsIgnoringCase.php
vendored
Normal file
@@ -0,0 +1,40 @@
|
||||
<?php
|
||||
namespace Hamcrest\Text;
|
||||
|
||||
/*
|
||||
Copyright (c) 2010 hamcrest.org
|
||||
*/
|
||||
|
||||
/**
|
||||
* Tests if the argument is a string that contains a substring ignoring case.
|
||||
*/
|
||||
class StringContainsIgnoringCase extends SubstringMatcher
|
||||
{
|
||||
|
||||
public function __construct($substring)
|
||||
{
|
||||
parent::__construct($substring);
|
||||
}
|
||||
|
||||
/**
|
||||
* Matches if value is a string that contains $substring regardless of the case.
|
||||
*
|
||||
* @factory
|
||||
*/
|
||||
public static function containsStringIgnoringCase($substring)
|
||||
{
|
||||
return new self($substring);
|
||||
}
|
||||
|
||||
// -- Protected Methods
|
||||
|
||||
protected function evalSubstringOf($item)
|
||||
{
|
||||
return (false !== stripos((string) $item, $this->_substring));
|
||||
}
|
||||
|
||||
protected function relationship()
|
||||
{
|
||||
return 'containing in any case';
|
||||
}
|
||||
}
|
66
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringContainsInOrder.php
vendored
Normal file
66
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringContainsInOrder.php
vendored
Normal file
@@ -0,0 +1,66 @@
|
||||
<?php
|
||||
namespace Hamcrest\Text;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
use Hamcrest\Description;
|
||||
use Hamcrest\TypeSafeMatcher;
|
||||
|
||||
/**
|
||||
* Tests if the value contains a series of substrings in a constrained order.
|
||||
*/
|
||||
class StringContainsInOrder extends TypeSafeMatcher
|
||||
{
|
||||
|
||||
private $_substrings;
|
||||
|
||||
public function __construct(array $substrings)
|
||||
{
|
||||
parent::__construct(self::TYPE_STRING);
|
||||
|
||||
$this->_substrings = $substrings;
|
||||
}
|
||||
|
||||
protected function matchesSafely($item)
|
||||
{
|
||||
$fromIndex = 0;
|
||||
|
||||
foreach ($this->_substrings as $substring) {
|
||||
if (false === $fromIndex = strpos($item, $substring, $fromIndex)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
protected function describeMismatchSafely($item, Description $mismatchDescription)
|
||||
{
|
||||
$mismatchDescription->appendText('was ')->appendText($item);
|
||||
}
|
||||
|
||||
public function describeTo(Description $description)
|
||||
{
|
||||
$description->appendText('a string containing ')
|
||||
->appendValueList('', ', ', '', $this->_substrings)
|
||||
->appendText(' in order')
|
||||
;
|
||||
}
|
||||
|
||||
/**
|
||||
* Matches if value contains $substrings in a constrained order.
|
||||
*
|
||||
* @factory ...
|
||||
*/
|
||||
public static function stringContainsInOrder(/* args... */)
|
||||
{
|
||||
$args = func_get_args();
|
||||
|
||||
if (isset($args[0]) && is_array($args[0])) {
|
||||
$args = $args[0];
|
||||
}
|
||||
|
||||
return new self($args);
|
||||
}
|
||||
}
|
40
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringEndsWith.php
vendored
Normal file
40
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringEndsWith.php
vendored
Normal file
@@ -0,0 +1,40 @@
|
||||
<?php
|
||||
namespace Hamcrest\Text;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
|
||||
/**
|
||||
* Tests if the argument is a string that ends with a substring.
|
||||
*/
|
||||
class StringEndsWith extends SubstringMatcher
|
||||
{
|
||||
|
||||
public function __construct($substring)
|
||||
{
|
||||
parent::__construct($substring);
|
||||
}
|
||||
|
||||
/**
|
||||
* Matches if value is a string that ends with $substring.
|
||||
*
|
||||
* @factory
|
||||
*/
|
||||
public static function endsWith($substring)
|
||||
{
|
||||
return new self($substring);
|
||||
}
|
||||
|
||||
// -- Protected Methods
|
||||
|
||||
protected function evalSubstringOf($string)
|
||||
{
|
||||
return (substr($string, (-1 * strlen($this->_substring))) === $this->_substring);
|
||||
}
|
||||
|
||||
protected function relationship()
|
||||
{
|
||||
return 'ending with';
|
||||
}
|
||||
}
|
40
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringStartsWith.php
vendored
Normal file
40
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringStartsWith.php
vendored
Normal file
@@ -0,0 +1,40 @@
|
||||
<?php
|
||||
namespace Hamcrest\Text;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
|
||||
/**
|
||||
* Tests if the argument is a string that contains a substring.
|
||||
*/
|
||||
class StringStartsWith extends SubstringMatcher
|
||||
{
|
||||
|
||||
public function __construct($substring)
|
||||
{
|
||||
parent::__construct($substring);
|
||||
}
|
||||
|
||||
/**
|
||||
* Matches if value is a string that starts with $substring.
|
||||
*
|
||||
* @factory
|
||||
*/
|
||||
public static function startsWith($substring)
|
||||
{
|
||||
return new self($substring);
|
||||
}
|
||||
|
||||
// -- Protected Methods
|
||||
|
||||
protected function evalSubstringOf($string)
|
||||
{
|
||||
return (substr($string, 0, strlen($this->_substring)) === $this->_substring);
|
||||
}
|
||||
|
||||
protected function relationship()
|
||||
{
|
||||
return 'starting with';
|
||||
}
|
||||
}
|
45
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/SubstringMatcher.php
vendored
Normal file
45
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/SubstringMatcher.php
vendored
Normal file
@@ -0,0 +1,45 @@
|
||||
<?php
|
||||
namespace Hamcrest\Text;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
|
||||
use Hamcrest\Description;
|
||||
use Hamcrest\TypeSafeMatcher;
|
||||
|
||||
abstract class SubstringMatcher extends TypeSafeMatcher
|
||||
{
|
||||
|
||||
protected $_substring;
|
||||
|
||||
public function __construct($substring)
|
||||
{
|
||||
parent::__construct(self::TYPE_STRING);
|
||||
|
||||
$this->_substring = $substring;
|
||||
}
|
||||
|
||||
protected function matchesSafely($item)
|
||||
{
|
||||
return $this->evalSubstringOf($item);
|
||||
}
|
||||
|
||||
protected function describeMismatchSafely($item, Description $mismatchDescription)
|
||||
{
|
||||
$mismatchDescription->appendText('was "')->appendText($item)->appendText('"');
|
||||
}
|
||||
|
||||
public function describeTo(Description $description)
|
||||
{
|
||||
$description->appendText('a string ')
|
||||
->appendText($this->relationship())
|
||||
->appendText(' ')
|
||||
->appendValue($this->_substring)
|
||||
;
|
||||
}
|
||||
|
||||
abstract protected function evalSubstringOf($string);
|
||||
|
||||
abstract protected function relationship();
|
||||
}
|
32
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsArray.php
vendored
Normal file
32
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsArray.php
vendored
Normal file
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
namespace Hamcrest\Type;
|
||||
|
||||
/*
|
||||
Copyright (c) 2010 hamcrest.org
|
||||
*/
|
||||
use Hamcrest\Core\IsTypeOf;
|
||||
|
||||
/**
|
||||
* Tests whether the value is an array.
|
||||
*/
|
||||
class IsArray extends IsTypeOf
|
||||
{
|
||||
|
||||
/**
|
||||
* Creates a new instance of IsArray
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct('array');
|
||||
}
|
||||
|
||||
/**
|
||||
* Is the value an array?
|
||||
*
|
||||
* @factory
|
||||
*/
|
||||
public static function arrayValue()
|
||||
{
|
||||
return new self;
|
||||
}
|
||||
}
|
32
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsBoolean.php
vendored
Normal file
32
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsBoolean.php
vendored
Normal file
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
namespace Hamcrest\Type;
|
||||
|
||||
/*
|
||||
Copyright (c) 2010 hamcrest.org
|
||||
*/
|
||||
use Hamcrest\Core\IsTypeOf;
|
||||
|
||||
/**
|
||||
* Tests whether the value is a boolean.
|
||||
*/
|
||||
class IsBoolean extends IsTypeOf
|
||||
{
|
||||
|
||||
/**
|
||||
* Creates a new instance of IsBoolean
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct('boolean');
|
||||
}
|
||||
|
||||
/**
|
||||
* Is the value a boolean?
|
||||
*
|
||||
* @factory boolValue
|
||||
*/
|
||||
public static function booleanValue()
|
||||
{
|
||||
return new self;
|
||||
}
|
||||
}
|
37
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsCallable.php
vendored
Normal file
37
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsCallable.php
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
namespace Hamcrest\Type;
|
||||
|
||||
/*
|
||||
Copyright (c) 2010 hamcrest.org
|
||||
*/
|
||||
use Hamcrest\Core\IsTypeOf;
|
||||
|
||||
/**
|
||||
* Tests whether the value is callable.
|
||||
*/
|
||||
class IsCallable extends IsTypeOf
|
||||
{
|
||||
|
||||
/**
|
||||
* Creates a new instance of IsCallable
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct('callable');
|
||||
}
|
||||
|
||||
public function matches($item)
|
||||
{
|
||||
return is_callable($item);
|
||||
}
|
||||
|
||||
/**
|
||||
* Is the value callable?
|
||||
*
|
||||
* @factory
|
||||
*/
|
||||
public static function callableValue()
|
||||
{
|
||||
return new self;
|
||||
}
|
||||
}
|
34
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsDouble.php
vendored
Normal file
34
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsDouble.php
vendored
Normal file
@@ -0,0 +1,34 @@
|
||||
<?php
|
||||
namespace Hamcrest\Type;
|
||||
|
||||
/*
|
||||
Copyright (c) 2010 hamcrest.org
|
||||
*/
|
||||
use Hamcrest\Core\IsTypeOf;
|
||||
|
||||
/**
|
||||
* Tests whether the value is a float/double.
|
||||
*
|
||||
* PHP returns "double" for values of type "float".
|
||||
*/
|
||||
class IsDouble extends IsTypeOf
|
||||
{
|
||||
|
||||
/**
|
||||
* Creates a new instance of IsDouble
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct('double');
|
||||
}
|
||||
|
||||
/**
|
||||
* Is the value a float/double?
|
||||
*
|
||||
* @factory floatValue
|
||||
*/
|
||||
public static function doubleValue()
|
||||
{
|
||||
return new self;
|
||||
}
|
||||
}
|
32
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsInteger.php
vendored
Normal file
32
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsInteger.php
vendored
Normal file
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
namespace Hamcrest\Type;
|
||||
|
||||
/*
|
||||
Copyright (c) 2010 hamcrest.org
|
||||
*/
|
||||
use Hamcrest\Core\IsTypeOf;
|
||||
|
||||
/**
|
||||
* Tests whether the value is an integer.
|
||||
*/
|
||||
class IsInteger extends IsTypeOf
|
||||
{
|
||||
|
||||
/**
|
||||
* Creates a new instance of IsInteger
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct('integer');
|
||||
}
|
||||
|
||||
/**
|
||||
* Is the value an integer?
|
||||
*
|
||||
* @factory intValue
|
||||
*/
|
||||
public static function integerValue()
|
||||
{
|
||||
return new self;
|
||||
}
|
||||
}
|
34
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsNumeric.php
vendored
Normal file
34
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsNumeric.php
vendored
Normal file
@@ -0,0 +1,34 @@
|
||||
<?php
|
||||
namespace Hamcrest\Type;
|
||||
|
||||
/*
|
||||
Copyright (c) 2010 hamcrest.org
|
||||
*/
|
||||
use Hamcrest\Core\IsTypeOf;
|
||||
|
||||
/**
|
||||
* Tests whether the value is numeric.
|
||||
*/
|
||||
class IsNumeric extends IsTypeOf
|
||||
{
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct('number');
|
||||
}
|
||||
|
||||
public function matches($item)
|
||||
{
|
||||
return is_numeric($item);
|
||||
}
|
||||
|
||||
/**
|
||||
* Is the value a numeric?
|
||||
*
|
||||
* @factory
|
||||
*/
|
||||
public static function numericValue()
|
||||
{
|
||||
return new self;
|
||||
}
|
||||
}
|
32
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsObject.php
vendored
Normal file
32
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsObject.php
vendored
Normal file
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
namespace Hamcrest\Type;
|
||||
|
||||
/*
|
||||
Copyright (c) 2010 hamcrest.org
|
||||
*/
|
||||
use Hamcrest\Core\IsTypeOf;
|
||||
|
||||
/**
|
||||
* Tests whether the value is an object.
|
||||
*/
|
||||
class IsObject extends IsTypeOf
|
||||
{
|
||||
|
||||
/**
|
||||
* Creates a new instance of IsObject
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct('object');
|
||||
}
|
||||
|
||||
/**
|
||||
* Is the value an object?
|
||||
*
|
||||
* @factory anObject
|
||||
*/
|
||||
public static function objectValue()
|
||||
{
|
||||
return new self;
|
||||
}
|
||||
}
|
32
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsResource.php
vendored
Normal file
32
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsResource.php
vendored
Normal file
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
namespace Hamcrest\Type;
|
||||
|
||||
/*
|
||||
Copyright (c) 2010 hamcrest.org
|
||||
*/
|
||||
use Hamcrest\Core\IsTypeOf;
|
||||
|
||||
/**
|
||||
* Tests whether the value is a resource.
|
||||
*/
|
||||
class IsResource extends IsTypeOf
|
||||
{
|
||||
|
||||
/**
|
||||
* Creates a new instance of IsResource
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct('resource');
|
||||
}
|
||||
|
||||
/**
|
||||
* Is the value a resource?
|
||||
*
|
||||
* @factory
|
||||
*/
|
||||
public static function resourceValue()
|
||||
{
|
||||
return new self;
|
||||
}
|
||||
}
|
34
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsScalar.php
vendored
Normal file
34
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsScalar.php
vendored
Normal file
@@ -0,0 +1,34 @@
|
||||
<?php
|
||||
namespace Hamcrest\Type;
|
||||
|
||||
/*
|
||||
Copyright (c) 2010 hamcrest.org
|
||||
*/
|
||||
use Hamcrest\Core\IsTypeOf;
|
||||
|
||||
/**
|
||||
* Tests whether the value is a scalar (boolean, integer, double, or string).
|
||||
*/
|
||||
class IsScalar extends IsTypeOf
|
||||
{
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct('scalar');
|
||||
}
|
||||
|
||||
public function matches($item)
|
||||
{
|
||||
return is_scalar($item);
|
||||
}
|
||||
|
||||
/**
|
||||
* Is the value a scalar (boolean, integer, double, or string)?
|
||||
*
|
||||
* @factory
|
||||
*/
|
||||
public static function scalarValue()
|
||||
{
|
||||
return new self;
|
||||
}
|
||||
}
|
32
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsString.php
vendored
Normal file
32
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsString.php
vendored
Normal file
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
namespace Hamcrest\Type;
|
||||
|
||||
/*
|
||||
Copyright (c) 2010 hamcrest.org
|
||||
*/
|
||||
use Hamcrest\Core\IsTypeOf;
|
||||
|
||||
/**
|
||||
* Tests whether the value is a string.
|
||||
*/
|
||||
class IsString extends IsTypeOf
|
||||
{
|
||||
|
||||
/**
|
||||
* Creates a new instance of IsString
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct('string');
|
||||
}
|
||||
|
||||
/**
|
||||
* Is the value a string?
|
||||
*
|
||||
* @factory
|
||||
*/
|
||||
public static function stringValue()
|
||||
{
|
||||
return new self;
|
||||
}
|
||||
}
|
29
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/TypeSafeDiagnosingMatcher.php
vendored
Normal file
29
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/TypeSafeDiagnosingMatcher.php
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
<?php
|
||||
namespace Hamcrest;
|
||||
|
||||
/**
|
||||
* Convenient base class for Matchers that require a value of a specific type.
|
||||
* This simply checks the type and then casts.
|
||||
*/
|
||||
|
||||
abstract class TypeSafeDiagnosingMatcher extends TypeSafeMatcher
|
||||
{
|
||||
|
||||
final public function matchesSafely($item)
|
||||
{
|
||||
return $this->matchesSafelyWithDiagnosticDescription($item, new NullDescription());
|
||||
}
|
||||
|
||||
final public function describeMismatchSafely($item, Description $mismatchDescription)
|
||||
{
|
||||
$this->matchesSafelyWithDiagnosticDescription($item, $mismatchDescription);
|
||||
}
|
||||
|
||||
// -- Protected Methods
|
||||
|
||||
/**
|
||||
* Subclasses should implement these. The item will already have been checked for
|
||||
* the specific type.
|
||||
*/
|
||||
abstract protected function matchesSafelyWithDiagnosticDescription($item, Description $mismatchDescription);
|
||||
}
|
107
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/TypeSafeMatcher.php
vendored
Normal file
107
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/TypeSafeMatcher.php
vendored
Normal file
@@ -0,0 +1,107 @@
|
||||
<?php
|
||||
namespace Hamcrest;
|
||||
|
||||
/**
|
||||
* Convenient base class for Matchers that require a value of a specific type.
|
||||
* This simply checks the type.
|
||||
*
|
||||
* While it may seem a useless exercise to have this in PHP, objects cannot
|
||||
* be cast to certain data types such as numerics (or even strings if
|
||||
* __toString() has not be defined).
|
||||
*/
|
||||
|
||||
abstract class TypeSafeMatcher extends BaseMatcher
|
||||
{
|
||||
|
||||
/* Types that PHP can compare against */
|
||||
const TYPE_ANY = 0;
|
||||
const TYPE_STRING = 1;
|
||||
const TYPE_NUMERIC = 2;
|
||||
const TYPE_ARRAY = 3;
|
||||
const TYPE_OBJECT = 4;
|
||||
const TYPE_RESOURCE = 5;
|
||||
const TYPE_BOOLEAN = 6;
|
||||
|
||||
/**
|
||||
* The type that is required for a safe comparison
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
private $_expectedType;
|
||||
|
||||
/**
|
||||
* The subtype (e.g. class for objects) that is required
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
private $_expectedSubtype;
|
||||
|
||||
public function __construct($expectedType, $expectedSubtype = null)
|
||||
{
|
||||
$this->_expectedType = $expectedType;
|
||||
$this->_expectedSubtype = $expectedSubtype;
|
||||
}
|
||||
|
||||
final public function matches($item)
|
||||
{
|
||||
return $this->_isSafeType($item) && $this->matchesSafely($item);
|
||||
}
|
||||
|
||||
final public function describeMismatch($item, Description $mismatchDescription)
|
||||
{
|
||||
if (!$this->_isSafeType($item)) {
|
||||
parent::describeMismatch($item, $mismatchDescription);
|
||||
} else {
|
||||
$this->describeMismatchSafely($item, $mismatchDescription);
|
||||
}
|
||||
}
|
||||
|
||||
// -- Protected Methods
|
||||
|
||||
/**
|
||||
* The item will already have been checked for the specific type and subtype.
|
||||
*/
|
||||
abstract protected function matchesSafely($item);
|
||||
|
||||
/**
|
||||
* The item will already have been checked for the specific type and subtype.
|
||||
*/
|
||||
abstract protected function describeMismatchSafely($item, Description $mismatchDescription);
|
||||
|
||||
// -- Private Methods
|
||||
|
||||
private function _isSafeType($value)
|
||||
{
|
||||
switch ($this->_expectedType) {
|
||||
|
||||
case self::TYPE_ANY:
|
||||
return true;
|
||||
|
||||
case self::TYPE_STRING:
|
||||
return is_string($value) || is_numeric($value);
|
||||
|
||||
case self::TYPE_NUMERIC:
|
||||
return is_numeric($value) || is_string($value);
|
||||
|
||||
case self::TYPE_ARRAY:
|
||||
return is_array($value);
|
||||
|
||||
case self::TYPE_OBJECT:
|
||||
return is_object($value)
|
||||
&& ($this->_expectedSubtype === null
|
||||
|| $value instanceof $this->_expectedSubtype);
|
||||
|
||||
case self::TYPE_RESOURCE:
|
||||
return is_resource($value)
|
||||
&& ($this->_expectedSubtype === null
|
||||
|| get_resource_type($value) == $this->_expectedSubtype);
|
||||
|
||||
case self::TYPE_BOOLEAN:
|
||||
return true;
|
||||
|
||||
default:
|
||||
return true;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
72
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Util.php
vendored
Normal file
72
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Util.php
vendored
Normal file
@@ -0,0 +1,72 @@
|
||||
<?php
|
||||
namespace Hamcrest;
|
||||
|
||||
/*
|
||||
Copyright (c) 2012 hamcrest.org
|
||||
*/
|
||||
|
||||
/**
|
||||
* Contains utility methods for handling Hamcrest matchers.
|
||||
*
|
||||
* @see Hamcrest\Matcher
|
||||
*/
|
||||
class Util
|
||||
{
|
||||
|
||||
/**
|
||||
* Wraps the item with an IsEqual matcher if it isn't a matcher already.
|
||||
*
|
||||
* @param mixed $item matcher or any value
|
||||
* @return \Hamcrest\Matcher
|
||||
*/
|
||||
public static function wrapValueWithIsEqual($item)
|
||||
{
|
||||
return ($item instanceof Matcher)
|
||||
? $item
|
||||
: Core\IsEqual::equalTo($item)
|
||||
;
|
||||
}
|
||||
|
||||
/**
|
||||
* Throws an exception if any item in $matchers is not a Hamcrest\Matcher.
|
||||
*
|
||||
* @param array $matchers expected to contain only matchers
|
||||
* @throws \InvalidArgumentException if any item is not a matcher
|
||||
*/
|
||||
public static function checkAllAreMatchers(array $matchers)
|
||||
{
|
||||
foreach ($matchers as $m) {
|
||||
if (!($m instanceof Matcher)) {
|
||||
throw new \InvalidArgumentException(
|
||||
'Each argument or element must be a Hamcrest matcher'
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of $items where each non-Matcher item is replaced by
|
||||
* a Hamcrest\Core\IsEqual matcher for the item. If the first and only item
|
||||
* is an array, it is used as the $items array to support the old style
|
||||
* of passing an array as the sole argument to a matcher.
|
||||
*
|
||||
* @param array $items contains items and matchers
|
||||
* @return array<Matchers> all items are
|
||||
*/
|
||||
public static function createMatcherArray(array $items)
|
||||
{
|
||||
//Extract single array item
|
||||
if (count($items) == 1 && is_array($items[0])) {
|
||||
$items = $items[0];
|
||||
}
|
||||
|
||||
//Replace non-matchers
|
||||
foreach ($items as &$item) {
|
||||
if (!($item instanceof Matcher)) {
|
||||
$item = Core\IsEqual::equalTo($item);
|
||||
}
|
||||
}
|
||||
|
||||
return $items;
|
||||
}
|
||||
}
|
195
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Xml/HasXPath.php
vendored
Normal file
195
Laravel/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Xml/HasXPath.php
vendored
Normal file
@@ -0,0 +1,195 @@
|
||||
<?php
|
||||
namespace Hamcrest\Xml;
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 hamcrest.org
|
||||
*/
|
||||
use Hamcrest\Core\IsEqual;
|
||||
use Hamcrest\Description;
|
||||
use Hamcrest\DiagnosingMatcher;
|
||||
use Hamcrest\Matcher;
|
||||
|
||||
/**
|
||||
* Matches if XPath applied to XML/HTML/XHTML document either
|
||||
* evaluates to result matching the matcher or returns at least
|
||||
* one node, matching the matcher if present.
|
||||
*/
|
||||
class HasXPath extends DiagnosingMatcher
|
||||
{
|
||||
|
||||
/**
|
||||
* XPath to apply to the DOM.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
private $_xpath;
|
||||
|
||||
/**
|
||||
* Optional matcher to apply to the XPath expression result
|
||||
* or the content of the returned nodes.
|
||||
*
|
||||
* @var Matcher
|
||||
*/
|
||||
private $_matcher;
|
||||
|
||||
public function __construct($xpath, Matcher $matcher = null)
|
||||
{
|
||||
$this->_xpath = $xpath;
|
||||
$this->_matcher = $matcher;
|
||||
}
|
||||
|
||||
/**
|
||||
* Matches if the XPath matches against the DOM node and the matcher.
|
||||
*
|
||||
* @param string|\DOMNode $actual
|
||||
* @param Description $mismatchDescription
|
||||
* @return bool
|
||||
*/
|
||||
protected function matchesWithDiagnosticDescription($actual, Description $mismatchDescription)
|
||||
{
|
||||
if (is_string($actual)) {
|
||||
$actual = $this->createDocument($actual);
|
||||
} elseif (!$actual instanceof \DOMNode) {
|
||||
$mismatchDescription->appendText('was ')->appendValue($actual);
|
||||
|
||||
return false;
|
||||
}
|
||||
$result = $this->evaluate($actual);
|
||||
if ($result instanceof \DOMNodeList) {
|
||||
return $this->matchesContent($result, $mismatchDescription);
|
||||
} else {
|
||||
return $this->matchesExpression($result, $mismatchDescription);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates and returns a <code>DOMDocument</code> from the given
|
||||
* XML or HTML string.
|
||||
*
|
||||
* @param string $text
|
||||
* @return \DOMDocument built from <code>$text</code>
|
||||
* @throws \InvalidArgumentException if the document is not valid
|
||||
*/
|
||||
protected function createDocument($text)
|
||||
{
|
||||
$document = new \DOMDocument();
|
||||
if (preg_match('/^\s*<\?xml/', $text)) {
|
||||
if (!@$document->loadXML($text)) {
|
||||
throw new \InvalidArgumentException('Must pass a valid XML document');
|
||||
}
|
||||
} else {
|
||||
if (!@$document->loadHTML($text)) {
|
||||
throw new \InvalidArgumentException('Must pass a valid HTML or XHTML document');
|
||||
}
|
||||
}
|
||||
|
||||
return $document;
|
||||
}
|
||||
|
||||
/**
|
||||
* Applies the configured XPath to the DOM node and returns either
|
||||
* the result if it's an expression or the node list if it's a query.
|
||||
*
|
||||
* @param \DOMNode $node context from which to issue query
|
||||
* @return mixed result of expression or DOMNodeList from query
|
||||
*/
|
||||
protected function evaluate(\DOMNode $node)
|
||||
{
|
||||
if ($node instanceof \DOMDocument) {
|
||||
$xpathDocument = new \DOMXPath($node);
|
||||
|
||||
return $xpathDocument->evaluate($this->_xpath);
|
||||
} else {
|
||||
$xpathDocument = new \DOMXPath($node->ownerDocument);
|
||||
|
||||
return $xpathDocument->evaluate($this->_xpath, $node);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Matches if the list of nodes is not empty and the content of at least
|
||||
* one node matches the configured matcher, if supplied.
|
||||
*
|
||||
* @param \DOMNodeList $nodes selected by the XPath query
|
||||
* @param Description $mismatchDescription
|
||||
* @return bool
|
||||
*/
|
||||
protected function matchesContent(\DOMNodeList $nodes, Description $mismatchDescription)
|
||||
{
|
||||
if ($nodes->length == 0) {
|
||||
$mismatchDescription->appendText('XPath returned no results');
|
||||
} elseif ($this->_matcher === null) {
|
||||
return true;
|
||||
} else {
|
||||
foreach ($nodes as $node) {
|
||||
if ($this->_matcher->matches($node->textContent)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
$content = array();
|
||||
foreach ($nodes as $node) {
|
||||
$content[] = $node->textContent;
|
||||
}
|
||||
$mismatchDescription->appendText('XPath returned ')
|
||||
->appendValue($content);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Matches if the result of the XPath expression matches the configured
|
||||
* matcher or evaluates to <code>true</code> if there is none.
|
||||
*
|
||||
* @param mixed $result result of the XPath expression
|
||||
* @param Description $mismatchDescription
|
||||
* @return bool
|
||||
*/
|
||||
protected function matchesExpression($result, Description $mismatchDescription)
|
||||
{
|
||||
if ($this->_matcher === null) {
|
||||
if ($result) {
|
||||
return true;
|
||||
}
|
||||
$mismatchDescription->appendText('XPath expression result was ')
|
||||
->appendValue($result);
|
||||
} else {
|
||||
if ($this->_matcher->matches($result)) {
|
||||
return true;
|
||||
}
|
||||
$mismatchDescription->appendText('XPath expression result ');
|
||||
$this->_matcher->describeMismatch($result, $mismatchDescription);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public function describeTo(Description $description)
|
||||
{
|
||||
$description->appendText('XML or HTML document with XPath "')
|
||||
->appendText($this->_xpath)
|
||||
->appendText('"');
|
||||
if ($this->_matcher !== null) {
|
||||
$description->appendText(' ');
|
||||
$this->_matcher->describeTo($description);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Wraps <code>$matcher</code> with {@link Hamcrest\Core\IsEqual)
|
||||
* if it's not a matcher and the XPath in <code>count()</code>
|
||||
* if it's an integer.
|
||||
*
|
||||
* @factory
|
||||
*/
|
||||
public static function hasXPath($xpath, $matcher = null)
|
||||
{
|
||||
if ($matcher === null || $matcher instanceof Matcher) {
|
||||
return new self($xpath, $matcher);
|
||||
} elseif (is_int($matcher) && strpos($xpath, 'count(') !== 0) {
|
||||
$xpath = 'count(' . $xpath . ')';
|
||||
}
|
||||
|
||||
return new self($xpath, IsEqual::equalTo($matcher));
|
||||
}
|
||||
}
|
66
Laravel/vendor/hamcrest/hamcrest-php/tests/Hamcrest/AbstractMatcherTest.php
vendored
Normal file
66
Laravel/vendor/hamcrest/hamcrest-php/tests/Hamcrest/AbstractMatcherTest.php
vendored
Normal file
@@ -0,0 +1,66 @@
|
||||
<?php
|
||||
namespace Hamcrest;
|
||||
|
||||
class UnknownType {
|
||||
}
|
||||
|
||||
abstract class AbstractMatcherTest extends \PHPUnit_Framework_TestCase
|
||||
{
|
||||
|
||||
const ARGUMENT_IGNORED = "ignored";
|
||||
const ANY_NON_NULL_ARGUMENT = "notnull";
|
||||
|
||||
abstract protected function createMatcher();
|
||||
|
||||
public function assertMatches(\Hamcrest\Matcher $matcher, $arg, $message)
|
||||
{
|
||||
$this->assertTrue($matcher->matches($arg), $message);
|
||||
}
|
||||
|
||||
public function assertDoesNotMatch(\Hamcrest\Matcher $matcher, $arg, $message)
|
||||
{
|
||||
$this->assertFalse($matcher->matches($arg), $message);
|
||||
}
|
||||
|
||||
public function assertDescription($expected, \Hamcrest\Matcher $matcher)
|
||||
{
|
||||
$description = new \Hamcrest\StringDescription();
|
||||
$description->appendDescriptionOf($matcher);
|
||||
$this->assertEquals($expected, (string) $description, 'Expected description');
|
||||
}
|
||||
|
||||
public function assertMismatchDescription($expected, \Hamcrest\Matcher $matcher, $arg)
|
||||
{
|
||||
$description = new \Hamcrest\StringDescription();
|
||||
$this->assertFalse(
|
||||
$matcher->matches($arg),
|
||||
'Precondtion: Matcher should not match item'
|
||||
);
|
||||
$matcher->describeMismatch($arg, $description);
|
||||
$this->assertEquals(
|
||||
$expected,
|
||||
(string) $description,
|
||||
'Expected mismatch description'
|
||||
);
|
||||
}
|
||||
|
||||
public function testIsNullSafe()
|
||||
{
|
||||
//Should not generate any notices
|
||||
$this->createMatcher()->matches(null);
|
||||
$this->createMatcher()->describeMismatch(
|
||||
null,
|
||||
new \Hamcrest\NullDescription()
|
||||
);
|
||||
}
|
||||
|
||||
public function testCopesWithUnknownTypes()
|
||||
{
|
||||
//Should not generate any notices
|
||||
$this->createMatcher()->matches(new UnknownType());
|
||||
$this->createMatcher()->describeMismatch(
|
||||
new UnknownType(),
|
||||
new NullDescription()
|
||||
);
|
||||
}
|
||||
}
|
54
Laravel/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Array/IsArrayContainingInAnyOrderTest.php
vendored
Normal file
54
Laravel/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Array/IsArrayContainingInAnyOrderTest.php
vendored
Normal file
@@ -0,0 +1,54 @@
|
||||
<?php
|
||||
namespace Hamcrest\Arrays;
|
||||
|
||||
use Hamcrest\AbstractMatcherTest;
|
||||
|
||||
class IsArrayContainingInAnyOrderTest extends AbstractMatcherTest
|
||||
{
|
||||
|
||||
protected function createMatcher()
|
||||
{
|
||||
return IsArrayContainingInAnyOrder::arrayContainingInAnyOrder(array(1, 2));
|
||||
}
|
||||
|
||||
public function testHasAReadableDescription()
|
||||
{
|
||||
$this->assertDescription('[<1>, <2>] in any order', containsInAnyOrder(array(1, 2)));
|
||||
}
|
||||
|
||||
public function testMatchesItemsInAnyOrder()
|
||||
{
|
||||
$this->assertMatches(containsInAnyOrder(array(1, 2, 3)), array(1, 2, 3), 'in order');
|
||||
$this->assertMatches(containsInAnyOrder(array(1, 2, 3)), array(3, 2, 1), 'out of order');
|
||||
$this->assertMatches(containsInAnyOrder(array(1)), array(1), 'single');
|
||||
}
|
||||
|
||||
public function testAppliesMatchersInAnyOrder()
|
||||
{
|
||||
$this->assertMatches(
|
||||
containsInAnyOrder(array(1, 2, 3)),
|
||||
array(1, 2, 3),
|
||||
'in order'
|
||||
);
|
||||
$this->assertMatches(
|
||||
containsInAnyOrder(array(1, 2, 3)),
|
||||
array(3, 2, 1),
|
||||
'out of order'
|
||||
);
|
||||
$this->assertMatches(
|
||||
containsInAnyOrder(array(1)),
|
||||
array(1),
|
||||
'single'
|
||||
);
|
||||
}
|
||||
|
||||
public function testMismatchesItemsInAnyOrder()
|
||||
{
|
||||
$matcher = containsInAnyOrder(array(1, 2, 3));
|
||||
|
||||
$this->assertMismatchDescription('was null', $matcher, null);
|
||||
$this->assertMismatchDescription('No item matches: <1>, <2>, <3> in []', $matcher, array());
|
||||
$this->assertMismatchDescription('No item matches: <2>, <3> in [<1>]', $matcher, array(1));
|
||||
$this->assertMismatchDescription('Not matched: <4>', $matcher, array(4, 3, 2, 1));
|
||||
}
|
||||
}
|
44
Laravel/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Array/IsArrayContainingInOrderTest.php
vendored
Normal file
44
Laravel/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Array/IsArrayContainingInOrderTest.php
vendored
Normal file
@@ -0,0 +1,44 @@
|
||||
<?php
|
||||
namespace Hamcrest\Arrays;
|
||||
|
||||
use Hamcrest\AbstractMatcherTest;
|
||||
|
||||
class IsArrayContainingInOrderTest extends AbstractMatcherTest
|
||||
{
|
||||
|
||||
protected function createMatcher()
|
||||
{
|
||||
return IsArrayContainingInOrder::arrayContaining(array(1, 2));
|
||||
}
|
||||
|
||||
public function testHasAReadableDescription()
|
||||
{
|
||||
$this->assertDescription('[<1>, <2>]', arrayContaining(array(1, 2)));
|
||||
}
|
||||
|
||||
public function testMatchesItemsInOrder()
|
||||
{
|
||||
$this->assertMatches(arrayContaining(array(1, 2, 3)), array(1, 2, 3), 'in order');
|
||||
$this->assertMatches(arrayContaining(array(1)), array(1), 'single');
|
||||
}
|
||||
|
||||
public function testAppliesMatchersInOrder()
|
||||
{
|
||||
$this->assertMatches(
|
||||
arrayContaining(array(1, 2, 3)),
|
||||
array(1, 2, 3),
|
||||
'in order'
|
||||
);
|
||||
$this->assertMatches(arrayContaining(array(1)), array(1), 'single');
|
||||
}
|
||||
|
||||
public function testMismatchesItemsInAnyOrder()
|
||||
{
|
||||
$matcher = arrayContaining(array(1, 2, 3));
|
||||
$this->assertMismatchDescription('was null', $matcher, null);
|
||||
$this->assertMismatchDescription('No item matched: <1>', $matcher, array());
|
||||
$this->assertMismatchDescription('No item matched: <2>', $matcher, array(1));
|
||||
$this->assertMismatchDescription('item with key 0: was <4>', $matcher, array(4, 3, 2, 1));
|
||||
$this->assertMismatchDescription('item with key 2: was <4>', $matcher, array(1, 2, 4));
|
||||
}
|
||||
}
|
62
Laravel/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Array/IsArrayContainingKeyTest.php
vendored
Normal file
62
Laravel/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Array/IsArrayContainingKeyTest.php
vendored
Normal file
@@ -0,0 +1,62 @@
|
||||
<?php
|
||||
namespace Hamcrest\Arrays;
|
||||
|
||||
use Hamcrest\AbstractMatcherTest;
|
||||
|
||||
class IsArrayContainingKeyTest extends AbstractMatcherTest
|
||||
{
|
||||
|
||||
protected function createMatcher()
|
||||
{
|
||||
return IsArrayContainingKey::hasKeyInArray('irrelevant');
|
||||
}
|
||||
|
||||
public function testMatchesSingleElementArrayContainingKey()
|
||||
{
|
||||
$array = array('a'=>1);
|
||||
|
||||
$this->assertMatches(hasKey('a'), $array, 'Matches single key');
|
||||
}
|
||||
|
||||
public function testMatchesArrayContainingKey()
|
||||
{
|
||||
$array = array('a'=>1, 'b'=>2, 'c'=>3);
|
||||
|
||||
$this->assertMatches(hasKey('a'), $array, 'Matches a');
|
||||
$this->assertMatches(hasKey('c'), $array, 'Matches c');
|
||||
}
|
||||
|
||||
public function testMatchesArrayContainingKeyWithIntegerKeys()
|
||||
{
|
||||
$array = array(1=>'A', 2=>'B');
|
||||
|
||||
assertThat($array, hasKey(1));
|
||||
}
|
||||
|
||||
public function testMatchesArrayContainingKeyWithNumberKeys()
|
||||
{
|
||||
$array = array(1=>'A', 2=>'B');
|
||||
|
||||
assertThat($array, hasKey(1));
|
||||
|
||||
// very ugly version!
|
||||
assertThat($array, IsArrayContainingKey::hasKeyInArray(2));
|
||||
}
|
||||
|
||||
public function testHasReadableDescription()
|
||||
{
|
||||
$this->assertDescription('array with key "a"', hasKey('a'));
|
||||
}
|
||||
|
||||
public function testDoesNotMatchEmptyArray()
|
||||
{
|
||||
$this->assertMismatchDescription('array was []', hasKey('Foo'), array());
|
||||
}
|
||||
|
||||
public function testDoesNotMatchArrayMissingKey()
|
||||
{
|
||||
$array = array('a'=>1, 'b'=>2, 'c'=>3);
|
||||
|
||||
$this->assertMismatchDescription('array was ["a" => <1>, "b" => <2>, "c" => <3>]', hasKey('d'), $array);
|
||||
}
|
||||
}
|
36
Laravel/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Array/IsArrayContainingKeyValuePairTest.php
vendored
Normal file
36
Laravel/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Array/IsArrayContainingKeyValuePairTest.php
vendored
Normal file
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
namespace Hamcrest\Arrays;
|
||||
|
||||
use Hamcrest\AbstractMatcherTest;
|
||||
|
||||
class IsArrayContainingKeyValuePairTest extends AbstractMatcherTest
|
||||
{
|
||||
|
||||
protected function createMatcher()
|
||||
{
|
||||
return IsArrayContainingKeyValuePair::hasKeyValuePair('irrelevant', 'irrelevant');
|
||||
}
|
||||
|
||||
public function testMatchesArrayContainingMatchingKeyAndValue()
|
||||
{
|
||||
$array = array('a'=>1, 'b'=>2);
|
||||
|
||||
$this->assertMatches(hasKeyValuePair(equalTo('a'), equalTo(1)), $array, 'matcherA');
|
||||
$this->assertMatches(hasKeyValuePair(equalTo('b'), equalTo(2)), $array, 'matcherB');
|
||||
$this->assertMismatchDescription(
|
||||
'array was ["a" => <1>, "b" => <2>]',
|
||||
hasKeyValuePair(equalTo('c'), equalTo(3)),
|
||||
$array
|
||||
);
|
||||
}
|
||||
|
||||
public function testDoesNotMatchNull()
|
||||
{
|
||||
$this->assertMismatchDescription('was null', hasKeyValuePair(anything(), anything()), null);
|
||||
}
|
||||
|
||||
public function testHasReadableDescription()
|
||||
{
|
||||
$this->assertDescription('array containing ["a" => <2>]', hasKeyValuePair(equalTo('a'), equalTo(2)));
|
||||
}
|
||||
}
|
50
Laravel/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Array/IsArrayContainingTest.php
vendored
Normal file
50
Laravel/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Array/IsArrayContainingTest.php
vendored
Normal file
@@ -0,0 +1,50 @@
|
||||
<?php
|
||||
namespace Hamcrest\Arrays;
|
||||
|
||||
use Hamcrest\AbstractMatcherTest;
|
||||
|
||||
class IsArrayContainingTest extends AbstractMatcherTest
|
||||
{
|
||||
|
||||
protected function createMatcher()
|
||||
{
|
||||
return IsArrayContaining::hasItemInArray('irrelevant');
|
||||
}
|
||||
|
||||
public function testMatchesAnArrayThatContainsAnElementMatchingTheGivenMatcher()
|
||||
{
|
||||
$this->assertMatches(
|
||||
hasItemInArray('a'),
|
||||
array('a', 'b', 'c'),
|
||||
"should matches array that contains 'a'"
|
||||
);
|
||||
}
|
||||
|
||||
public function testDoesNotMatchAnArrayThatDoesntContainAnElementMatchingTheGivenMatcher()
|
||||
{
|
||||
$this->assertDoesNotMatch(
|
||||
hasItemInArray('a'),
|
||||
array('b', 'c'),
|
||||
"should not matches array that doesn't contain 'a'"
|
||||
);
|
||||
$this->assertDoesNotMatch(
|
||||
hasItemInArray('a'),
|
||||
array(),
|
||||
'should not match empty array'
|
||||
);
|
||||
}
|
||||
|
||||
public function testDoesNotMatchNull()
|
||||
{
|
||||
$this->assertDoesNotMatch(
|
||||
hasItemInArray('a'),
|
||||
null,
|
||||
'should not match null'
|
||||
);
|
||||
}
|
||||
|
||||
public function testHasAReadableDescription()
|
||||
{
|
||||
$this->assertDescription('an array containing "a"', hasItemInArray('a'));
|
||||
}
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user