MemberExtensionTest   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 39
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 3
dl 0
loc 39
rs 10
c 0
b 0
f 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A testLabels() 0 14 1
A testUpdateCMSFields() 0 8 1
A testOnBeforeWrite() 0 11 1
1
<?php
2
/**
3
 * Created by PhpStorm.
4
 * User: simon
5
 * Date: 15-May-18
6
 * Time: 20:49
7
 */
8
9
namespace Firesphere\YubiAuth\Tests;
10
11
use Firesphere\YubiAuth\Extensions\MemberExtension;
12
use SilverStripe\Core\Injector\Injector;
13
use SilverStripe\Dev\SapphireTest;
14
use SilverStripe\Forms\NumericField;
15
use SilverStripe\Security\Member;
16
17
class MemberExtensionTest extends SapphireTest
18
{
19
    public function testLabels()
20
    {
21
        $labels = [];
22
23
        /** @var MemberExtension $extension */
24
        $extension = Injector::inst()->get(MemberExtension::class);
25
        $extension->updateFieldLabels($labels);
26
27
        $expected = [
28
            'Yubikey'        => 'Yubikey code',
29
            'NoYubikeyCount' => 'Login count without yubikey',
30
        ];
31
32
        $this->assertEquals($expected, $labels);
33
    }
34
35
    public function testUpdateCMSFields()
36
    {
37
        $member = Member::create();
38
39
        $fields = $member->getCMSFields();
40
41
        $this->assertInstanceOf(NumericField::class, $fields->dataFieldByName('NoYubikeyCount'));
42
        $this->assertNull($fields->dataFieldByName('Yubikey'));
43
    }
44
45
    public function testOnBeforeWrite()
46
    {
47
        /** @var Member $member */
48
        $member = Member::create();
49
        $member->Yubikey = '1234567890';
50
        $member->MFAEnabled = false;
51
        $id = $member->write();
52
53
        $member = Member::get()->byID($id);
54
55
        $this->assertEquals('', $member->Yubikey);
56
    }
57
}
58