Passed
Pull Request — master (#13)
by Simon
02:03
created

YubikeyAuthProviderTest   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 40
Duplicated Lines 0 %

Importance

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

3 Methods

Rating   Name   Duplication   Size   Complexity  
A testCheckNoYubikeyDaysError() 0 10 1
A testCheckNoYubikeyDaysZero() 0 11 1
A setUp() 0 5 1
1
<?php
2
3
namespace Firesphere\YubiAuth\Tests;
4
5
use Firesphere\YubiAuth\Providers\YubikeyAuthProvider;
6
use SilverStripe\Core\Config\Config;
7
use SilverStripe\Core\Injector\Injector;
8
use SilverStripe\Dev\SapphireTest;
9
use SilverStripe\ORM\ValidationResult;
10
use SilverStripe\Security\Member;
11
12
class YubikeyAuthProviderTest extends SapphireTest
13
{
14
15
    protected static $fixture_file = '../fixtures/Member.yml';
16
17
    /**
18
     * @var YubikeyAuthProvider
19
     */
20
    protected $provider;
21
22
    protected function setUp()
23
    {
24
        $this->provider = Injector::inst()->get(YubikeyAuthProvider::class);
25
26
        return parent::setUp();
27
    }
28
29
    public function testCheckNoYubikeyDaysZero()
30
    {
31
        Config::modify()->set(YubikeyAuthProvider::class, 'MaxNoYubiLoginDays', 0);
32
        /** @var Member $member */
33
        $member = Member::get()->filter(['Email' => '[email protected]'])->first();
34
        $member->Created = date('Y-m-d', strtotime('-1 year'));
35
        $member->YubiAuthEnabled = false;
36
        $member->write();
37
38
        $result = $this->provider->checkNoYubiDays($member);
39
        $this->assertInstanceOf(Member::class, $result);
40
    }
41
42
    public function testCheckNoYubikeyDaysError()
43
    {
44
        /** @var Member $member */
45
        $member = Member::get()->filter(['Email' => '[email protected]'])->first();
46
        $member->Created = date('Y-m-d', strtotime('-1 year'));
47
        $member->YubiAuthEnabled = false;
48
        $member->write();
49
50
        $result = $this->provider->checkNoYubiDays($member);
51
        $this->assertInstanceOf(ValidationResult::class, $result);
52
    }
53
}
54