Passed
Pull Request — master (#32)
by
unknown
02:19
created

testResolveInvalidWithAllowedAnonymous()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 17
Code Lines 11

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 11
c 1
b 0
f 0
dl 0
loc 17
rs 9.9
cc 1
nc 1
nop 0
1
<?php
2
3
namespace Firesphere\GraphQLJWT\Tests;
4
5
use Firesphere\GraphQLJWT\Authentication\AnonymousUserAuthenticator;
6
use Firesphere\GraphQLJWT\Authentication\CustomAuthenticatorRegistry;
7
use Firesphere\GraphQLJWT\Resolvers\Resolver;
8
use SilverStripe\Core\Environment;
9
use SilverStripe\Core\Injector\Injector;
10
use SilverStripe\Dev\SapphireTest;
11
use SilverStripe\Security\Member;
12
13
class CreateTokenTest extends SapphireTest
14
{
15
    protected static $fixture_file = '../fixtures/JWTAuthenticatorTest.yml';
16
17
    protected $member;
18
19
    public function setUp()
20
    {
21
        Environment::putEnv('JWT_SIGNER_KEY=test_signer');
22
23
        parent::setUp();
24
        $this->member = $this->objFromFixture(Member::class, 'admin');
25
    }
26
27
    public function testResolveValid()
28
    {
29
        $response = Resolver::resolveCreateToken(
30
            null,
31
            ['email' => '[email protected]', 'password' => 'error']
32
        );
33
34
        $this->assertTrue($response['member'] instanceof Member);
35
        $this->assertNotNull($response['token']);
36
    }
37
38
    public function testResolveInvalidWithAllowedAnonymous()
39
    {
40
        Injector::inst()->get(CustomAuthenticatorRegistry::class)
41
            ->setCustomAuthenticators([
42
                AnonymousUserAuthenticator::singleton(),
43
            ]);
44
        $response = Resolver::resolveCreateToken(
45
            null,
46
            ['email' => 'anonymous']
47
        );
48
49
        /** @var Member $member */
50
        $member = $response['member'];
51
        $this->assertTrue($member instanceof Member);
52
        $this->assertTrue($member->exists());
53
        $this->assertEquals($member->Email, 'anonymous');
54
        $this->assertNotNull($response['token']);
55
    }
56
57
    public function testResolveInvalidWithoutAllowedAnonymous()
58
    {
59
        $response = Resolver::resolveCreateToken(
60
            null,
61
            ['email' => 'anonymous']
62
        );
63
64
        $this->assertNull($response['member']);
65
        $this->assertNull($response['token']);
66
    }
67
}
68