Passed
Push — master ( 8837ac...692d33 )
by Simon
02:02
created

MemberExtensionTest   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 43
Duplicated Lines 0 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
c 2
b 0
f 0
dl 0
loc 43
rs 10
wmc 4

4 Methods

Rating   Name   Duplication   Size   Complexity  
A testNoMember() 0 8 1
A setUp() 0 3 1
A testExtraMemberData() 0 13 1
A testMemberExists() 0 9 1
1
<?php
2
/**
3
 * Created by PhpStorm.
4
 * User: simon
5
 * Date: 02-Dec-17
6
 * Time: 11:30
7
 */
8
9
namespace Firesphere\GraphQLJWT\Tests;
10
11
12
use Firesphere\GraphQLJWT\Helpers\SubjectData;
13
use SilverStripe\Core\Config\Config;
14
use SilverStripe\Core\Convert;
15
use SilverStripe\Dev\SapphireTest;
16
use SilverStripe\Security\Member;
17
18
class MemberExtensionTest extends SapphireTest
19
{
20
    protected static $fixture_file = '../fixtures/JWTAuthenticatorTest.yml';
21
22
    protected function setUp()
23
    {
24
        return parent::setUp();
25
    }
26
27
    public function testMemberExists()
28
    {
29
        $member = $this->objFromFixture(Member::class, 'admin');
30
        $data = $member->getJWTData();
31
        $result = Convert::json2obj($data);
32
        $this->assertInstanceOf(SubjectData::class, $result);
33
34
        $this->assertEquals($member->ID, $result->id);
35
        $this->assertEquals($member->Email, $result->userName);
36
    }
37
38
    public function testExtraMemberData()
39
    {
40
        /** @var Member $member */
41
        $member = $this->objFromFixture(Member::class, 'admin');
42
        $member->FirstName = 'Test';
43
        $member->Surname = 'Member';
44
        Config::modify()->set(Member::class, 'jwt_subject_fields', ['FirstName', 'LastName']);
45
46
        $data = $member->getJWTData();
47
        $result = Convert::json2obj($data);
48
49
        $this->assertEquals('Test', $result->FirstName);
50
        $this->assertEquals('Member', $result->Surname);
51
    }
52
53
    public function testNoMember()
54
    {
55
        $data = Member::create()->getJWTData();
56
        $result = Convert::json2obj($data);
57
58
        $this->assertInstanceOf(SubjectData::class, $result);
59
60
        $this->assertNull($result->id);
61
    }
62
}