Passed
Push — master ( 7e81b0...7eb007 )
by Robbie
12:39 queued 11s
created

testSetValueOnlyAcceptsMemberObjects()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 14
Code Lines 9

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 9
nc 1
nop 0
dl 0
loc 14
rs 9.9666
c 0
b 0
f 0
1
<?php
2
3
namespace SilverStripe\MFA\Tests\FormField;
4
5
use SilverStripe\Dev\SapphireTest;
6
use SilverStripe\MFA\FormField\RegisteredMFAMethodListField;
7
use SilverStripe\Security\Member;
8
use TypeError;
9
10
class RegisteredMFAMethodListFieldTest extends SapphireTest
11
{
12
    protected static $fixture_file = 'RegisteredMFAMethodListFieldTest.yml';
13
14
    public function testSchemaContainsEndpoints()
15
    {
16
        $memberID = $this->logInWithPermission();
17
        $member = Member::get()->byID($memberID);
18
19
        $field = new RegisteredMFAMethodListField('test', null, $member);
20
        $schema = $field->getSchemaDataDefaults();
21
22
        $this->assertContains('register/', $schema['schema']['endpoints']['register']);
23
        $this->assertContains('method/{urlSegment}', $schema['schema']['endpoints']['remove']);
24
        $this->assertContains('method/{urlSegment}/default', $schema['schema']['endpoints']['setDefault']);
25
    }
26
27
    /**
28
     * @expectedException TypeError
29
     */
30
    public function testConstructorRequiresMemberValue()
31
    {
32
        new RegisteredMFAMethodListField('test', null, null);
0 ignored issues
show
Bug introduced by
null of type null is incompatible with the type SilverStripe\Security\Member expected by parameter $value of SilverStripe\MFA\FormFie...istField::__construct(). ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-type  annotation

32
        new RegisteredMFAMethodListField('test', null, /** @scrutinizer ignore-type */ null);
Loading history...
33
    }
34
35
    public function testSetValueOnlyAcceptsMemberObjects()
36
    {
37
        $memberID = $this->logInWithPermission();
38
        $member = Member::get()->byID($memberID);
39
40
        $field = new RegisteredMFAMethodListField('test', null, $member);
41
        $this->assertSame($member->ID, $field->Value()->ID);
42
43
        $field->setValue(null);
44
        $this->assertSame($member->ID, $field->Value()->ID, 'Value should remain unchanged after setting NULL');
45
46
        $anotherUser = $this->objFromFixture(Member::class, 'another-user');
47
        $field->setValue($anotherUser);
48
        $this->assertSame($anotherUser->ID, $field->Value()->ID, 'Value updates when setting a Member');
49
    }
50
}
51