Completed
Push — master ( e0017c...6b1304 )
by Tom
14s queued 11s
created

Authentication/Adapter/ObjectRepositoryTest.php (52 issues)

Upgrade to new PHP Analysis Engine

These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more

1
<?php
2
3
declare(strict_types=1);
4
5
namespace DoctrineModuleTest\Authentication\Adapter;
6
7
use DoctrineModule\Authentication\Adapter\ObjectRepository as ObjectRepositoryAdapter;
8
use DoctrineModuleTest\Authentication\Adapter\TestAsset\IdentityObject;
9
use DoctrineModuleTest\Authentication\Adapter\TestAsset\PublicPropertiesIdentityObject;
10
use PHPUnit\Framework\TestCase as BaseTestCase;
11
use stdClass;
12
use function crypt;
13
14
/**
15
 * Tests for the ObjectRepository based authentication adapter
16
 *
17
 * @link    http://www.doctrine-project.org/
18
 */
19
class ObjectRepositoryTest extends BaseTestCase
20
{
21
    public function testWillRejectInvalidIdentityProperty() : void
22
    {
23
        $this->expectException(
0 ignored issues
show
The method expectException() does not seem to exist on object<DoctrineModuleTes...r\ObjectRepositoryTest>.

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
24
            'Laminas\Authentication\Adapter\Exception\InvalidArgumentException'
25
        );
26
        $this->expectExceptionMessage(
0 ignored issues
show
The method expectExceptionMessage() does not seem to exist on object<DoctrineModuleTes...r\ObjectRepositoryTest>.

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
27
            'Provided $identityProperty is invalid, string given'
28
        );
29
30
        new ObjectRepositoryAdapter(['identity_property' => false]);
31
    }
32
33
    public function testWillRejectInvalidCredentialProperty() : void
34
    {
35
        $this->expectException(
0 ignored issues
show
The method expectException() does not seem to exist on object<DoctrineModuleTes...r\ObjectRepositoryTest>.

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
36
            'Laminas\Authentication\Adapter\Exception\InvalidArgumentException'
37
        );
38
        $this->expectExceptionMessage(
0 ignored issues
show
The method expectExceptionMessage() does not seem to exist on object<DoctrineModuleTes...r\ObjectRepositoryTest>.

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
39
            'Provided $credentialProperty is invalid, string given'
40
        );
41
        new ObjectRepositoryAdapter(['credential_property' => false]);
42
    }
43
44
    public function testWillRequireIdentityValue() : void
45
    {
46
        $this->expectException(
0 ignored issues
show
The method expectException() does not seem to exist on object<DoctrineModuleTes...r\ObjectRepositoryTest>.

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
47
            'Laminas\Authentication\Adapter\Exception\RuntimeException'
48
        );
49
        $this->expectExceptionMessage(
0 ignored issues
show
The method expectExceptionMessage() does not seem to exist on object<DoctrineModuleTes...r\ObjectRepositoryTest>.

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
50
            'A value for the identity was not provided prior to authentication with ObjectRepository authentication '
51
            . 'adapter'
52
        );
53
        $adapter = new ObjectRepositoryAdapter();
54
        $adapter->setOptions([
55
            'object_manager' => $this->createMock('Doctrine\Persistence\ObjectManager'),
56
            'identity_class' => 'DoctrineModuleTest\Authentication\Adapter\TestAsset\IdentityObject',
57
        ]);
58
        $adapter->setCredential('a credential');
59
        $adapter->authenticate();
60
    }
61
62
    public function testWillRequireCredentialValue() : void
63
    {
64
        $this->expectException(
0 ignored issues
show
The method expectException() does not seem to exist on object<DoctrineModuleTes...r\ObjectRepositoryTest>.

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
65
            'Laminas\Authentication\Adapter\Exception\RuntimeException'
66
        );
67
        $this->expectExceptionMessage(
0 ignored issues
show
The method expectExceptionMessage() does not seem to exist on object<DoctrineModuleTes...r\ObjectRepositoryTest>.

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
68
            'A credential value was not provided prior to authentication with ObjectRepository authentication adapter'
69
        );
70
        $adapter = new ObjectRepositoryAdapter();
71
        $adapter->setOptions([
72
            'object_manager' => $this->createMock('Doctrine\Persistence\ObjectManager'),
73
            'identity_class' => 'DoctrineModuleTest\Authentication\Adapter\TestAsset\IdentityObject',
74
        ]);
75
76
        $adapter->setIdentity('an identity');
77
        $adapter->authenticate();
78
    }
79
80
    public function testWillRejectInvalidCredentialCallable() : void
81
    {
82
        $this->expectException(
0 ignored issues
show
The method expectException() does not seem to exist on object<DoctrineModuleTes...r\ObjectRepositoryTest>.

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
83
            'Laminas\Authentication\Adapter\Exception\InvalidArgumentException'
84
        );
85
        $this->expectExceptionMessage(
0 ignored issues
show
The method expectExceptionMessage() does not seem to exist on object<DoctrineModuleTes...r\ObjectRepositoryTest>.

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
86
            '"array" is not a callable'
87
        );
88
        $adapter = new ObjectRepositoryAdapter();
89
        $adapter->setOptions([
90
            'object_manager'      => $this->createMock('Doctrine\Persistence\ObjectManager'),
91
            'identity_class'      => 'DoctrineModuleTest\Authentication\Adapter\TestAsset\IdentityObject',
92
            'credential_callable' => [],
93
        ]);
94
95
        $adapter->authenticate();
96
    }
97
98
    public function testAuthentication() : void
99
    {
100
        $entity = new IdentityObject();
101
        $entity->setUsername('a username');
102
        $entity->setPassword('a password');
103
104
        $objectRepository = $this->createMock('Doctrine\Persistence\ObjectRepository');
0 ignored issues
show
Are you sure the assignment to $objectRepository is correct as $this->createMock('Doctr...nce\\ObjectRepository') (which targets PHPUnit\Framework\TestCase::createMock()) seems to always return null.

This check looks for function or method calls that always return null and whose return value is assigned to a variable.

class A
{
    function getObject()
    {
        return null;
    }

}

$a = new A();
$object = $a->getObject();

The method getObject() can return nothing but null, so it makes no sense to assign that value to a variable.

The reason is most likely that a function or method is imcomplete or has been reduced for debug purposes.

Loading history...
105
        $method           = $objectRepository
0 ignored issues
show
The method expects cannot be called on $objectRepository (of type null).

Methods can only be called on objects. This check looks for methods being called on variables that have been inferred to never be objects.

Loading history...
106
            ->expects($this->exactly(2))
0 ignored issues
show
The method exactly() does not seem to exist on object<DoctrineModuleTes...r\ObjectRepositoryTest>.

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
107
            ->method('findOneBy')
108
            ->with($this->equalTo(['username' => 'a username']))
0 ignored issues
show
The method equalTo() does not seem to exist on object<DoctrineModuleTes...r\ObjectRepositoryTest>.

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
109
            ->will($this->returnValue($entity));
0 ignored issues
show
The method returnValue() does not seem to exist on object<DoctrineModuleTes...r\ObjectRepositoryTest>.

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
110
111
        $objectManager = $this->createMock('Doctrine\Persistence\ObjectManager');
0 ignored issues
show
Are you sure the assignment to $objectManager is correct as $this->createMock('Doctr...stence\\ObjectManager') (which targets PHPUnit\Framework\TestCase::createMock()) seems to always return null.

This check looks for function or method calls that always return null and whose return value is assigned to a variable.

class A
{
    function getObject()
    {
        return null;
    }

}

$a = new A();
$object = $a->getObject();

The method getObject() can return nothing but null, so it makes no sense to assign that value to a variable.

The reason is most likely that a function or method is imcomplete or has been reduced for debug purposes.

Loading history...
112
        $objectManager->expects($this->exactly(2))
113
                      ->method('getRepository')
114
                      ->with($this->equalTo('DoctrineModuleTest\Authentication\Adapter\TestAsset\IdentityObject'))
115
                      ->will($this->returnValue($objectRepository));
116
117
        $adapter = new ObjectRepositoryAdapter();
118
        $adapter->setOptions([
119
            'object_manager'      => $objectManager,
120
            'identity_class'      => 'DoctrineModuleTest\Authentication\Adapter\TestAsset\IdentityObject',
121
            'credential_property' => 'password',
122
            'identity_property'   => 'username',
123
        ]);
124
125
        $adapter->setIdentity('a username');
126
        $adapter->setCredential('a password');
127
128
        $result = $adapter->authenticate();
129
130
        $this->assertTrue($result->isValid());
0 ignored issues
show
The method assertTrue() does not seem to exist on object<DoctrineModuleTes...r\ObjectRepositoryTest>.

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
131
        $this->assertInstanceOf(
0 ignored issues
show
The method assertInstanceOf() does not seem to exist on object<DoctrineModuleTes...r\ObjectRepositoryTest>.

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
132
            'DoctrineModuleTest\Authentication\Adapter\TestAsset\IdentityObject',
133
            $result->getIdentity()
134
        );
135
136
        $method->will($this->returnValue(null));
0 ignored issues
show
The method returnValue() does not seem to exist on object<DoctrineModuleTes...r\ObjectRepositoryTest>.

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
137
138
        $result = $adapter->authenticate();
139
140
        $this->assertFalse($result->isValid());
0 ignored issues
show
The method assertFalse() does not seem to exist on object<DoctrineModuleTes...r\ObjectRepositoryTest>.

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
141
    }
142
143
    public function testAuthenticationWithPublicProperties() : void
144
    {
145
        $entity           = new PublicPropertiesIdentityObject();
146
        $entity->username = 'a username';
147
        $entity->password = 'a password';
148
149
        $objectRepository = $this->createMock('Doctrine\Persistence\ObjectRepository');
0 ignored issues
show
Are you sure the assignment to $objectRepository is correct as $this->createMock('Doctr...nce\\ObjectRepository') (which targets PHPUnit\Framework\TestCase::createMock()) seems to always return null.

This check looks for function or method calls that always return null and whose return value is assigned to a variable.

class A
{
    function getObject()
    {
        return null;
    }

}

$a = new A();
$object = $a->getObject();

The method getObject() can return nothing but null, so it makes no sense to assign that value to a variable.

The reason is most likely that a function or method is imcomplete or has been reduced for debug purposes.

Loading history...
150
        $method           = $objectRepository
0 ignored issues
show
The method expects cannot be called on $objectRepository (of type null).

Methods can only be called on objects. This check looks for methods being called on variables that have been inferred to never be objects.

Loading history...
151
            ->expects($this->exactly(2))
0 ignored issues
show
The method exactly() does not seem to exist on object<DoctrineModuleTes...r\ObjectRepositoryTest>.

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
152
            ->method('findOneBy')
153
            ->with($this->equalTo(['username' => 'a username']))
0 ignored issues
show
The method equalTo() does not seem to exist on object<DoctrineModuleTes...r\ObjectRepositoryTest>.

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
154
            ->will($this->returnValue($entity));
0 ignored issues
show
The method returnValue() does not seem to exist on object<DoctrineModuleTes...r\ObjectRepositoryTest>.

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
155
156
        $adapter = new ObjectRepositoryAdapter();
157
        $adapter->setOptions([
158
            'object_repository' => $objectRepository,
159
            'credential_property' => 'password',
160
            'identity_property' => 'username',
161
        ]);
162
163
        $adapter->setIdentity('a username');
164
        $adapter->setCredential('a password');
165
166
        $result = $adapter->authenticate();
167
168
        $this->assertTrue($result->isValid());
0 ignored issues
show
The method assertTrue() does not seem to exist on object<DoctrineModuleTes...r\ObjectRepositoryTest>.

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
169
170
        $method->will($this->returnValue(null));
0 ignored issues
show
The method returnValue() does not seem to exist on object<DoctrineModuleTes...r\ObjectRepositoryTest>.

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
171
172
        $result = $adapter->authenticate();
173
174
        $this->assertFalse($result->isValid());
0 ignored issues
show
The method assertFalse() does not seem to exist on object<DoctrineModuleTes...r\ObjectRepositoryTest>.

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
175
    }
176
177
    public function testWillRefuseToAuthenticateWithoutGettersOrPublicMethods() : void
178
    {
179
        $this->expectException('Laminas\Authentication\Adapter\Exception\UnexpectedValueException');
0 ignored issues
show
The method expectException() does not seem to exist on object<DoctrineModuleTes...r\ObjectRepositoryTest>.

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
180
181
        $objectRepository = $this->createMock('Doctrine\Persistence\ObjectRepository');
0 ignored issues
show
Are you sure the assignment to $objectRepository is correct as $this->createMock('Doctr...nce\\ObjectRepository') (which targets PHPUnit\Framework\TestCase::createMock()) seems to always return null.

This check looks for function or method calls that always return null and whose return value is assigned to a variable.

class A
{
    function getObject()
    {
        return null;
    }

}

$a = new A();
$object = $a->getObject();

The method getObject() can return nothing but null, so it makes no sense to assign that value to a variable.

The reason is most likely that a function or method is imcomplete or has been reduced for debug purposes.

Loading history...
182
        $objectRepository
0 ignored issues
show
The method expects cannot be called on $objectRepository (of type null).

Methods can only be called on objects. This check looks for methods being called on variables that have been inferred to never be objects.

Loading history...
183
            ->expects($this->once())
0 ignored issues
show
The method once() does not seem to exist on object<DoctrineModuleTes...r\ObjectRepositoryTest>.

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
184
            ->method('findOneBy')
185
            ->with($this->equalTo(['username' => 'a username']))
0 ignored issues
show
The method equalTo() does not seem to exist on object<DoctrineModuleTes...r\ObjectRepositoryTest>.

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
186
            ->will($this->returnValue(new stdClass()));
0 ignored issues
show
The method returnValue() does not seem to exist on object<DoctrineModuleTes...r\ObjectRepositoryTest>.

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
187
188
        $adapter = new ObjectRepositoryAdapter();
189
        $adapter->setOptions([
190
            'object_repository' => $objectRepository,
191
            'credential_property' => 'password',
192
            'identity_property' => 'username',
193
        ]);
194
195
        $adapter->setIdentity('a username');
196
        $adapter->setCredential('a password');
197
        $adapter->authenticate();
198
    }
199
200
    public function testCanValidateWithSpecialCrypt() : void
201
    {
202
        $hash   = '$2y$07$usesomesillystringforsalt$';
203
        $entity = new IdentityObject();
204
        $entity->setUsername('username');
205
        // Crypt password using Blowfish
206
        $entity->setPassword(crypt('password', $hash));
207
208
        $objectRepository = $this->createMock('Doctrine\Persistence\ObjectRepository');
0 ignored issues
show
Are you sure the assignment to $objectRepository is correct as $this->createMock('Doctr...nce\\ObjectRepository') (which targets PHPUnit\Framework\TestCase::createMock()) seems to always return null.

This check looks for function or method calls that always return null and whose return value is assigned to a variable.

class A
{
    function getObject()
    {
        return null;
    }

}

$a = new A();
$object = $a->getObject();

The method getObject() can return nothing but null, so it makes no sense to assign that value to a variable.

The reason is most likely that a function or method is imcomplete or has been reduced for debug purposes.

Loading history...
209
        $objectRepository
0 ignored issues
show
The method expects cannot be called on $objectRepository (of type null).

Methods can only be called on objects. This check looks for methods being called on variables that have been inferred to never be objects.

Loading history...
210
            ->expects($this->exactly(2))
0 ignored issues
show
The method exactly() does not seem to exist on object<DoctrineModuleTes...r\ObjectRepositoryTest>.

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
211
            ->method('findOneBy')
212
            ->with($this->equalTo(['username' => 'username']))
0 ignored issues
show
The method equalTo() does not seem to exist on object<DoctrineModuleTes...r\ObjectRepositoryTest>.

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
213
            ->will($this->returnValue($entity));
0 ignored issues
show
The method returnValue() does not seem to exist on object<DoctrineModuleTes...r\ObjectRepositoryTest>.

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
214
215
        $adapter = new ObjectRepositoryAdapter();
216
        $adapter->setOptions([
217
            'object_repository' => $objectRepository,
218
            'credential_property' => 'password',
219
            'identity_property' => 'username',
220
            // enforced type hinting to verify that closure is invoked correctly
221
            'credential_callable' => static function (IdentityObject $identity, $credentialValue) use ($hash) {
222
                return $identity->getPassword() === crypt($credentialValue, $hash);
223
            },
224
        ]);
225
226
        $adapter->setIdentity('username');
227
        $adapter->setCredential('password');
228
229
        $result = $adapter->authenticate();
230
231
        $this->assertTrue($result->isValid());
0 ignored issues
show
The method assertTrue() does not seem to exist on object<DoctrineModuleTes...r\ObjectRepositoryTest>.

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
232
233
        $adapter->setCredential('wrong password');
234
        $result = $adapter->authenticate();
235
236
        $this->assertFalse($result->isValid());
0 ignored issues
show
The method assertFalse() does not seem to exist on object<DoctrineModuleTes...r\ObjectRepositoryTest>.

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
237
    }
238
239
    public function testWillRefuseToAuthenticateWhenInvalidInstanceIsFound() : void
240
    {
241
        $this->expectException('Laminas\Authentication\Adapter\Exception\UnexpectedValueException');
0 ignored issues
show
The method expectException() does not seem to exist on object<DoctrineModuleTes...r\ObjectRepositoryTest>.

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
242
243
        $objectRepository = $this->createMock('Doctrine\Persistence\ObjectRepository');
0 ignored issues
show
Are you sure the assignment to $objectRepository is correct as $this->createMock('Doctr...nce\\ObjectRepository') (which targets PHPUnit\Framework\TestCase::createMock()) seems to always return null.

This check looks for function or method calls that always return null and whose return value is assigned to a variable.

class A
{
    function getObject()
    {
        return null;
    }

}

$a = new A();
$object = $a->getObject();

The method getObject() can return nothing but null, so it makes no sense to assign that value to a variable.

The reason is most likely that a function or method is imcomplete or has been reduced for debug purposes.

Loading history...
244
        $objectRepository
0 ignored issues
show
The method expects cannot be called on $objectRepository (of type null).

Methods can only be called on objects. This check looks for methods being called on variables that have been inferred to never be objects.

Loading history...
245
            ->expects($this->once())
0 ignored issues
show
The method once() does not seem to exist on object<DoctrineModuleTes...r\ObjectRepositoryTest>.

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
246
            ->method('findOneBy')
247
            ->with($this->equalTo(['username' => 'a username']))
0 ignored issues
show
The method equalTo() does not seem to exist on object<DoctrineModuleTes...r\ObjectRepositoryTest>.

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
248
            ->will($this->returnValue(new stdClass()));
0 ignored issues
show
The method returnValue() does not seem to exist on object<DoctrineModuleTes...r\ObjectRepositoryTest>.

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
249
250
        $adapter = new ObjectRepositoryAdapter();
251
        $adapter->setOptions([
252
            'object_repository'   => $objectRepository,
253
            'credential_property' => 'password',
254
            'identity_property'   => 'username',
255
        ]);
256
257
        $adapter->setIdentity('a username');
258
        $adapter->setCredential('a password');
259
260
        $adapter->authenticate();
261
    }
262
263
    public function testWillNotCastAuthCredentialValue() : void
264
    {
265
        $objectRepository = $this->createMock('Doctrine\Persistence\ObjectRepository');
0 ignored issues
show
Are you sure the assignment to $objectRepository is correct as $this->createMock('Doctr...nce\\ObjectRepository') (which targets PHPUnit\Framework\TestCase::createMock()) seems to always return null.

This check looks for function or method calls that always return null and whose return value is assigned to a variable.

class A
{
    function getObject()
    {
        return null;
    }

}

$a = new A();
$object = $a->getObject();

The method getObject() can return nothing but null, so it makes no sense to assign that value to a variable.

The reason is most likely that a function or method is imcomplete or has been reduced for debug purposes.

Loading history...
266
        $adapter          = new ObjectRepositoryAdapter();
267
        $entity           = new IdentityObject();
268
269
        $entity->setPassword(0);
270
        $adapter->setOptions([
271
            'object_repository'   => $objectRepository,
272
            'credential_property' => 'password',
273
            'identity_property'   => 'username',
274
        ]);
275
        $adapter->setIdentity('a username');
276
        $adapter->setCredential('00000');
277
        $objectRepository
0 ignored issues
show
The method expects cannot be called on $objectRepository (of type null).

Methods can only be called on objects. This check looks for methods being called on variables that have been inferred to never be objects.

Loading history...
278
            ->expects($this->once())
0 ignored issues
show
The method once() does not seem to exist on object<DoctrineModuleTes...r\ObjectRepositoryTest>.

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
279
            ->method('findOneBy')
280
            ->with($this->equalTo(['username' => 'a username']))
0 ignored issues
show
The method equalTo() does not seem to exist on object<DoctrineModuleTes...r\ObjectRepositoryTest>.

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
281
            ->will($this->returnValue($entity));
0 ignored issues
show
The method returnValue() does not seem to exist on object<DoctrineModuleTes...r\ObjectRepositoryTest>.

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
282
283
        $this->assertFalse($adapter->authenticate()->isValid());
284
    }
285
}
286