Passed
Branch master (c86cc6)
by Tim
11:28
created

ExponentTest::testMarshalling()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 7
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 4
nc 1
nop 0
dl 0
loc 7
rs 10
c 0
b 0
f 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace SimpleSAML\XMLSecurity\Test\XML\ds;
6
7
use DOMDocument;
8
use PHPUnit\Framework\TestCase;
9
use SimpleSAML\XML\DOMDocumentFactory;
10
use SimpleSAML\XML\Exception\SchemaViolationException;
11
use SimpleSAML\XML\TestUtils\SerializableElementTestTrait;
12
use SimpleSAML\XMLSecurity\Test\XML\XMLDumper;
13
use SimpleSAML\XMLSecurity\XML\ds\Exponent;
14
15
use function dirname;
16
use function strval;
17
18
/**
19
 * Class \SimpleSAML\XMLSecurity\Test\XML\ds\ExponentTest
20
 *
21
 * @covers \SimpleSAML\XMLSecurity\XML\ds\AbstractDsElement
22
 * @covers \SimpleSAML\XMLSecurity\XML\ds\Exponent
23
 *
24
 * @package simplesamlphp/xml-security
25
 */
26
final class ExponentTest extends TestCase
27
{
28
    use SerializableElementTestTrait;
0 ignored issues
show
Bug introduced by
The trait SimpleSAML\XML\TestUtils...lizableElementTestTrait requires the property $documentElement which is not provided by SimpleSAML\XMLSecurity\Test\XML\ds\ExponentTest.
Loading history...
29
30
    /**
31
     */
32
    public static function setUpBeforeClass(): void
33
    {
34
        self::$testedClass = Exponent::class;
35
36
        self::$xmlRepresentation = DOMDocumentFactory::fromFile(
37
            dirname(__FILE__, 3) . '/resources/xml/ds_Exponent.xml',
38
        );
39
    }
40
41
42
    /**
43
     */
44
    public function testMarshalling(): void
45
    {
46
        $exponent = new Exponent('dGhpcyBpcyBzb21lIHJhbmRvbSBleHBvbmVudAo=');
47
48
        $this->assertEquals(
49
            XMLDumper::dumpDOMDocumentXMLWithBase64Content(self::$xmlRepresentation),
50
            strval($exponent),
51
        );
52
    }
53
54
55
    /**
56
     */
57
    public function testMarshallingNotBase64(): void
58
    {
59
        $this->expectException(SchemaViolationException::class);
60
        new Exponent('/CTj3d1DB5e2t7CTo9BEzCf5S9NRzwnBgZRlm32REI=');
61
    }
62
63
64
    /**
65
     */
66
    public function testUnmarshalling(): void
67
    {
68
        $exponent = Exponent::fromXML(self::$xmlRepresentation->documentElement);
69
70
        $this->assertEquals(
71
            self::$xmlRepresentation->saveXML(self::$xmlRepresentation->documentElement),
72
            strval($exponent),
73
        );
74
    }
75
}
76