4 * Support for void return types without explicit will (@crellbar)
5 * Clearer error message for unexpected method calls (@meridius)
6 * Clearer error message for aggregate exceptions (@meridius)
7 * More verbose `shouldBeCalledOnce` expectation (@olvlvl)
8 * Ability to double Throwable, or methods that extend it (@ciaranmcnulty)
9 * [fixed] Doubling methods where class has additional arguments to interface (@webimpress)
10 * [fixed] Doubling methods where arguments are nullable but default is not null (@webimpress)
11 * [fixed] Doubling magic methods on parent class (@dsnopek)
12 * [fixed] Check method predictions only once (@dontub)
13 * [fixed] Argument::containingString throwing error when called with non-string (@dcabrejas)
18 * Allow sebastian/comparator ^3.0 (@sebastianbergmann)
23 * Support for object return type hints (thanks @greg0ire)
28 * Fix issues with PHP 7.2 (thanks @greg0ire)
29 * Support object type hints in PHP 7.2 (thanks @@jansvoboda11)
34 * Fix SplInfo ClassPatch to work with Symfony 4 (Thanks @gnugat)
39 * Reverted "check method predictions only once" due to it breaking Spies
44 * Allow PHP5 keywords methods generation on PHP7 (thanks @bycosta)
45 * Allow reflection-docblock v4 (thanks @GrahamCampbell)
46 * Check method predictions only once (thanks @dontub)
47 * Escape file path sent to \SplFileObjectConstructor when running on Windows (thanks @danmartin-epiphany)
52 * Add full PHP 7.1 Support (thanks @prolic)
53 * Allow `sebastian/comparator ^2.0` (thanks @sebastianbergmann)
54 * Allow `sebastian/recursion-context ^3.0` (thanks @sebastianbergmann)
55 * Allow `\Error` instances in `ThrowPromise` (thanks @jameshalsall)
56 * Support `phpspec/phpspect ^3.2` (thanks @Sam-Burns)
57 * Fix failing builds (thanks @Sam-Burns)
62 * Added support for detecting @method on interfaces that the class itself implements, or when the stubbed class is an interface itself (thanks @Seldaek)
63 * Added support for sebastian/recursion-context 2 (thanks @sebastianbergmann)
64 * Added testing on PHP 7.1 on Travis (thanks @danizord)
65 * Fixed the usage of the phpunit comparator (thanks @Anyqax)
70 * Ignored empty method names in invalid `@method` phpdoc
71 * Fixed the mocking of SplFileObject
72 * Added compatibility with phpdocumentor/reflection-docblock 3
77 * Add Variadics support (thanks @pamil)
78 * Add ProphecyComparator for comparing objects that need revealing (thanks @jon-acker)
79 * Add ApproximateValueToken (thanks @dantleech)
80 * Add support for 'self' and 'parent' return type (thanks @bendavies)
81 * Add __invoke to allowed reflectable methods list (thanks @ftrrtf)
82 * Updated ExportUtil to reflect the latest changes by Sebastian (thanks @jakari)
83 * Specify the required php version for composer (thanks @jakzal)
84 * Exclude 'args' in the generated backtrace (thanks @oradwell)
85 * Fix code generation for scalar parameters (thanks @trowski)
86 * Fix missing sprintf in InvalidArgumentException __construct call (thanks @emmanuelballery)
87 * Fix phpdoc for magic methods (thanks @Tobion)
88 * Fix PhpDoc for interfaces usage (thanks @ImmRanneft)
89 * Prevent final methods from being manually extended (thanks @kamioftea)
90 * Enhance exception for invalid argument to ThrowPromise (thanks @Tobion)
95 * Add support for PHP7 scalar type hints (thanks @trowski)
96 * Add support for PHP7 return types (thanks @trowski)
97 * Update internal test suite to support PHP7
102 * Fixed bug in closure-based argument tokens (#181)
107 * Fixed errors in return type phpdocs (thanks @sobit)
108 * Fixed stringifying of hash containing one value (thanks @avant1)
109 * Improved clarity of method call expectation exception (thanks @dantleech)
110 * Add ability to specify which argument is returned in willReturnArgument (thanks @coderbyheart)
111 * Add more information to MethodNotFound exceptions (thanks @ciaranmcnulty)
112 * Support for mocking classes with methods that return references (thanks @edsonmedina)
113 * Improved object comparison (thanks @whatthejeff)
114 * Adopted '^' in composer dependencies (thanks @GrahamCampbell)
115 * Fixed non-typehinted arguments being treated as optional (thanks @whatthejeff)
116 * Magic methods are now filtered for keywords (thanks @seagoj)
117 * More readable errors for failure when expecting single calls (thanks @dantleech)
122 * Fix the edge case when failed predictions weren't recorded for `getCheckedPredictions()`
127 * Add a way to get checked predictions with `MethodProphecy::getCheckedPredictions()`
128 * Fix HHVM compatibility
129 * Remove dead code (thanks @stof)
130 * Add support for DirectoryIterators (thanks @shanethehat)
135 * Added support for doubling magic methods documented in the class phpdoc (thanks @armetiz)
136 * Fixed a segfault appearing in some cases (thanks @dmoreaulf)
137 * Fixed the doubling of methods with typehints on non-existent classes (thanks @gquemener)
138 * Added support for internal classes using keywords as method names (thanks @milan)
139 * Added IdenticalValueToken and Argument::is (thanks @florianv)
140 * Removed the usage of scalar typehints in HHVM as HHVM 3 does not support them anymore in PHP code (thanks @whatthejeff)
145 * Spy automatically promotes spied method call to an expected one
150 * Added support for HHVM
155 * Changed the generated class names to use a static counter instead of a random number
156 * Added a clss patch for ReflectionClass::newInstance to make its argument optional consistently (thanks @docteurklein)
157 * Fixed mirroring of classes with typehints on non-existent classes (thanks @docteurklein)
158 * Fixed the support of array callables in CallbackPromise and CallbackPrediction (thanks @ciaranmcnulty)
159 * Added support for properties in ObjectStateToken (thanks @adrienbrault)
160 * Added support for mocking classes with a final constructor (thanks @ciaranmcnulty)
161 * Added ArrayEveryEntryToken and Argument::withEveryEntry() (thanks @adrienbrault)
162 * Added an exception when trying to prophesize on a final method instead of ignoring silently (thanks @docteurklein)
163 * Added StringContainToken and Argument::containingString() (thanks @peterjmit)
164 * Added ``shouldNotHaveBeenCalled`` on the MethodProphecy (thanks @ciaranmcnulty)
165 * Fixed the comparison of objects in ExactValuetoken (thanks @sstok)
166 * Deprecated ``shouldNotBeenCalled`` in favor of ``shouldNotHaveBeenCalled``
171 * Better randomness for generated class names (thanks @sstok)
172 * Add support for interfaces into TypeToken and Argument::type() (thanks @sstok)
173 * Add support for old-style (method name === class name) constructors (thanks @l310 for report)
178 * Support callable typehints (thanks @stof)
179 * Do not attempt to autoload arrays when generating code (thanks @MarcoDeBortoli)
180 * New ArrayEntryToken (thanks @kagux)
185 * Logical `AND` token added (thanks @kagux)
186 * Logical `NOT` token added (thanks @kagux)
187 * Add support for setting custom constructor arguments
188 * Properly stringify hashes
189 * Record calls that throw exceptions
190 * Migrate spec suite to PhpSpec 2.0
195 * Fix broken UnexpectedCallException message
196 * Trim AggregateException message
201 * Improve exception messages
203 1.0.0-BETA2 / 2013-04-03
204 ========================
206 * Add more debug information to CallTimes and Call prediction exception messages
207 * Fix MethodNotFoundException wrong namespace (thanks @gunnarlium)
208 * Fix some typos in the exception messages (thanks @pborreli)
210 1.0.0-BETA1 / 2013-03-25
211 ========================