19declare(strict_types=1);
23use PHPUnit\Framework\TestCase;
97 protected function setUp(): void
106 $mock = $this->builder->create(LmbEmptyInterface::class);
107 $this->assertInstanceOf(LmbEmptyInterface::class, $mock);
112 $mock = $this->builder->create(LmbAbstractBase::class);
113 $this->assertInstanceOf(LmbAbstractBase::class, $mock);
118 $mock = $this->builder->create(LmbConcreteClass::class);
119 $this->assertInstanceOf(LmbConcreteClass::class, $mock);
124 $mock = $this->builder->create(LmbStaticInterface::class);
125 $this->assertInstanceOf(LmbStaticInterface::class, $mock);
126 $this->assertSame(
'', $mock->instanceMethod());
131 $mock = $this->builder->create(LmbAbstractStaticBase::class);
132 $this->assertInstanceOf(LmbAbstractStaticBase::class, $mock);
137 $mock = $this->builder->create(LmbStaticInterface::class);
138 $this->expectException(LogicException::class);
139 $mock::staticMethod();
144 $this->expectException(LogicException::class);
145 $this->builder->create(LmbFinalClass::class);
150 $this->expectException(LogicException::class);
151 $this->builder->create(LmbTestEnum::class);
156 $this->expectException(LogicException::class);
157 $this->builder->create(
'\\Non\\Existent\\TypeXyz');
164 $mock = $this->builder->create(LmbReturnTypesInterface::class);
165 $this->assertNull($mock->returnsVoid());
170 $mock = $this->builder->create(LmbReturnTypesInterface::class);
171 $this->assertFalse($mock->returnsBool());
176 $mock = $this->builder->create(LmbReturnTypesInterface::class);
177 $this->assertSame(0, $mock->returnsInt());
182 $mock = $this->builder->create(LmbReturnTypesInterface::class);
183 $this->assertEqualsWithDelta(0.0, $mock->returnsFloat(), PHP_FLOAT_EPSILON);
188 $mock = $this->builder->create(LmbReturnTypesInterface::class);
189 $this->assertSame(
'', $mock->returnsString());
194 $mock = $this->builder->create(LmbReturnTypesInterface::class);
195 $this->assertSame([], $mock->returnsArray());
200 $mock = $this->builder->create(LmbReturnTypesInterface::class);
201 $this->assertNull($mock->returnsNullableString());
206 $mock = $this->builder->create(LmbReturnTypesInterface::class);
207 $this->assertInstanceOf(\stdClass::class, $mock->returnsObject());
212 $mock = $this->builder->create(LmbReturnTypesInterface::class);
213 $this->assertSame($mock, $mock->returnsSelf());
218 $mock = $this->builder->create(LmbReturnTypesInterface::class);
219 $this->assertIsCallable($mock->returnsCallable());
224 $mock = $this->builder->create(LmbReturnTypesInterface::class);
225 $this->assertInstanceOf(LmbReturnTypesInterface::class, $mock->returnsInterface());
230 $mock = $this->builder->create(LmbNeverInterface::class);
231 $this->expectException(LogicException::class);
232 $mock->neverReturns();
239 $mock = $this->builder->create(LmbReturnTypesInterface::class);
240 $mock->__mockSetReturnValue(
'returnsInt', 42);
241 $this->assertSame(42, $mock->returnsInt());
246 $mock = $this->builder->create(LmbReturnTypesInterface::class);
247 $this->assertSame($mock, $mock->__mockSetReturnValue(
'returnsInt', 1));
252 $mock = $this->builder->create(LmbReturnTypesInterface::class);
253 $mock->__mockSetCallback(
'returnsString', fn():
string =>
'hello');
254 $this->assertSame(
'hello', $mock->returnsString());
259 $mock = $this->builder->create(LmbReturnTypesInterface::class);
260 $mock->__mockSetCallback(
'takesArgs', fn(
string $a,
int $b):
string =>
$a .
$b);
261 $this->assertSame(
'test7', $mock->takesArgs(
'test', 7));
266 $mock = $this->builder->create(LmbReturnTypesInterface::class);
267 $mock->__mockSetReturnValue(
'returnsString',
'from-value');
268 $mock->__mockSetCallback(
'returnsString', fn():
string =>
'from-callback');
269 $this->assertSame(
'from-callback', $mock->returnsString());
276 $first = $this->builder->create(LmbEmptyInterface::class);
277 $second = $this->builder->create(LmbEmptyInterface::class);
278 $this->assertInstanceOf($first::class, $second);
283 $first = $this->builder->create(LmbEmptyInterface::class);
284 $second = $this->builder->create(LmbReturnTypesInterface::class);
285 $this->assertNotInstanceOf($first::class, $second);
294 $this->assertInstanceOf(LmbReturnTypesInterface::class, $mock);
295 $this->assertSame(0, $mock->returnsInt());
303 $this->assertNull($result);
308 $mock = $this->builder->create(LmbReturnTypesInterface::class);
Bookkeeping about the mock classes that have been generated into the running process.
static defaultValueFor(object $mock, string $method)
Entry point for the generated mocks themselves, see {.
testDefaultArrayReturnsEmptyArray()
testSetCallbackOverridesDefault()
testDefaultValueForKnownMethodMatchesDirectInvocation()
testDefaultFloatReturnsZeroPointZero()
testDefaultInterfaceReturnsMockImplementingThatInterface()
testDefaultObjectReturnsStdClassInstance()
testNeverReturnMethodThrowsLogicException()
testCreateAbstractClassReturnsInstance()
testCreateInterfaceWithStaticMethod()
testCreateFinalClassThrowsLogicException()
testCreateInterfaceReturnsInstanceOfInterface()
testCallingAStaticMethodOfAMockThrowsLogicException()
testDefaultIntReturnsZero()
testCallbackReceivesArguments()
testDefaultStringReturnsEmptyString()
testDefaultValueForUnknownMethodReturnsNull()
testCreateUnknownTypeThrowsLogicException()
testDefaultCallableReturnsCallable()
testDifferentTypesProduceDifferentClasses()
testCreateEnumThrowsLogicException()
testCreateAbstractClassWithAbstractStaticMethod()
testPHPUnitMockBuilderCreatesInterfaceMock()
testCreateConcreteClassReturnsInstance()
testDefaultBoolReturnsFalse()
testSetReturnValueFluentReturnsInstance()
testDefaultSelfReturnsSameObject()
testSetReturnValueOverridesDefault()
testSameTypeAlwaysProducesSameGeneratedClass()
testDefaultVoidMethodReturnsNull()
testCallbackTakesPrecedenceOverConfiguredReturnValue()
testDefaultNullableStringReturnsNull()
takesArgs(string $a, int $b)
$a
thx to https://mlocati.github.io/php-cs-fixer-configurator for the examples