Passed
Pull Request — master (#61)
by
unknown
12:50
created

ReferenceListTest   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 47
Duplicated Lines 0 %

Importance

Changes 6
Bugs 0 Features 0
Metric Value
eloc 17
c 6
b 0
f 0
dl 0
loc 47
rs 10
wmc 2
1
<?php
2
3
declare(strict_types=1);
4
5
namespace SimpleSAML\XMLSecurity\Test\XML\xenc;
6
7
use PHPUnit\Framework\Attributes\CoversClass;
8
use PHPUnit\Framework\TestCase;
9
use SimpleSAML\XML\DOMDocumentFactory;
10
use SimpleSAML\XML\TestUtils\SchemaValidationTestTrait;
11
use SimpleSAML\XML\TestUtils\SerializableElementTestTrait;
12
use SimpleSAML\XMLSecurity\Constants as C;
13
use SimpleSAML\XMLSecurity\XML\ds\Transform;
14
use SimpleSAML\XMLSecurity\XML\ds\Transforms;
15
use SimpleSAML\XMLSecurity\XML\ds\XPath;
16
use SimpleSAML\XMLSecurity\XML\xenc\AbstractXencElement;
17
use SimpleSAML\XMLSecurity\XML\xenc\DataReference;
18
use SimpleSAML\XMLSecurity\XML\xenc\KeyReference;
19
use SimpleSAML\XMLSecurity\XML\xenc\ReferenceList;
20
21
use function dirname;
22
use function strval;
23
24
/**
25
 * Class \SimpleSAML\XMLSecurity\Test\XML\xenc\ReferenceListTest
26
 *
27
 * @covers \SimpleSAML\XMLSecurity\XML\xenc\AbstractXencElement
28
 * @covers \SimpleSAML\XMLSecurity\XML\xenc\ReferenceList
29
 *
30
 * @package simplesamlphp/xml-security
31
 */
32
#[CoversClass(AbstractXencElement::class)]
33
#[CoversClass(ReferenceList::class)]
34
final class ReferenceListTest extends TestCase
35
{
36
    use SchemaValidationTestTrait;
37
    use SerializableElementTestTrait;
38
39
    /**
40
     */
41
    public static function setUpBeforeClass(): void
42
    {
43
        self::$testedClass = ReferenceList::class;
44
45
        self::$xmlRepresentation = DOMDocumentFactory::fromFile(
46
            dirname(__FILE__, 3) . '/resources/xml/xenc_ReferenceList.xml',
47
        );
48
    }
49
50
51
    // marshalling
52
53
54
    /**
55
     */
56
    public function testMarshalling(): void
57
    {
58
        $transformData = new Transform(
59
            C::XPATH10_URI,
60
            new XPath('self::xenc:EncryptedData[@Id="example1"]'),
61
        );
62
        $transformKey = new Transform(
63
            C::XPATH10_URI,
64
            new XPath('self::xenc:EncryptedKey[@Id="example1"]'),
65
        );
66
67
        $referenceList = new ReferenceList(
68
            [
69
                new DataReference('#Encrypted_DATA_ID', [new Transforms([$transformData])]),
70
            ],
71
            [
72
                new KeyReference('#Encrypted_KEY_ID', [new Transforms([$transformKey])]),
73
            ],
74
        );
75
76
        $this->assertEquals(
77
            self::$xmlRepresentation->saveXML(self::$xmlRepresentation->documentElement),
78
            strval($referenceList),
79
        );
80
    }
81
}
82