55namespace SimpleSAML \XMLSecurity \Test \XML \ds ;
66
77use DOMDocument ;
8- use PHPUnit \Framework \TestCase ;
98use SimpleSAML \Assert \AssertionFailedException ;
9+ use SimpleSAML \Test \XML \SerializableXMLTest ;
1010use SimpleSAML \XML \Chunk ;
1111use SimpleSAML \XML \DOMDocumentFactory ;
1212use SimpleSAML \XMLSecurity \XML \ds \X509Certificate ;
2323 *
2424 * @package simplesamlphp/xml-security
2525 */
26- final class X509DataTest extends TestCase
26+ final class X509DataTest extends SerializableXMLTest
2727{
28- /** @var \DOMDocument */
29- private DOMDocument $ document ;
30-
3128 /** @var string */
3229 private string $ certificate ;
3330
@@ -39,6 +36,12 @@ final class X509DataTest extends TestCase
3936 */
4037 public function setUp (): void
4138 {
39+ self ::$ element = X509Data::class;
40+
41+ self ::$ xmlRepresentation = DOMDocumentFactory::fromFile (
42+ dirname (dirname (dirname (dirname (__FILE__ )))) . '/tests/resources/xml/ds_X509Data.xml '
43+ );
44+
4245 $ this ->certificate = str_replace (
4346 [
4447 '-----BEGIN CERTIFICATE----- ' ,
@@ -62,10 +65,6 @@ public function setUp(): void
6265 $ this ->certData = openssl_x509_parse (
6366 PEMCertificatesMock::getPlainPublicKey (PEMCertificatesMock::SELFSIGNED_PUBLIC_KEY )
6467 );
65-
66- $ this ->document = DOMDocumentFactory::fromFile (
67- dirname (dirname (dirname (dirname (__FILE__ )))) . '/tests/resources/xml/ds_X509Data.xml '
68- );
6968 }
7069
7170
@@ -91,32 +90,20 @@ public function testMarshalling(): void
9190 $ this ->assertInstanceOf (X509SubjectName::class, $ data [2 ]);
9291 $ this ->assertInstanceOf (Chunk::class, $ data [3 ]);
9392
94- $ this ->assertEquals ($ this -> document -> saveXML ($ this -> document ->documentElement ), strval ($ X509data ));
93+ $ this ->assertEquals (self :: $ xmlRepresentation -> saveXML (self :: $ xmlRepresentation ->documentElement ), strval ($ X509data ));
9594 }
9695
9796
9897 /**
9998 */
10099 public function testUnmarshalling (): void
101100 {
102- $ X509data = X509Data::fromXML ($ this -> document ->documentElement );
101+ $ X509data = X509Data::fromXML (self :: $ xmlRepresentation ->documentElement );
103102
104103 $ data = $ X509data ->getData ();
105104 $ this ->assertInstanceOf (Chunk::class, $ data [0 ]);
106105 $ this ->assertInstanceOf (X509Certificate::class, $ data [1 ]);
107106 $ this ->assertInstanceOf (X509SubjectName::class, $ data [2 ]);
108107 $ this ->assertInstanceOf (Chunk::class, $ data [3 ]);
109108 }
110-
111-
112- /**
113- * Test serialization / unserialization
114- */
115- public function testSerialization (): void
116- {
117- $ this ->assertEquals (
118- $ this ->document ->saveXML ($ this ->document ->documentElement ),
119- strval (unserialize (serialize (X509Data::fromXML ($ this ->document ->documentElement ))))
120- );
121- }
122109}
0 commit comments