Schlegelmilch Mandy Am Jägersteig 19 40724 Hilden mandy.schlegelmilch@ep-reisen.de 02212722760 255752 Schlegelmilch Mandy Am Jägersteig 19 40724 Hilden mandy.schlegelmilch@ep-reisen.de 02212722760 255752 Danielzik Leon leondanielzik@gmail.com 306886 XML; $anonymizer = new BpnXmlAnonymizer(); $result = $anonymizer->anonymize($xml); $document = new \DOMDocument(); $this->assertTrue($document->loadXML($result)); $xpath = new \DOMXPath($document); $applicantName = trim((string) $xpath->evaluate('string(//anmelder/name)')); $participantOneName = trim((string) $xpath->evaluate('string(//teilnehmer[@id="1"]/name)')); $participantOneEmail = trim((string) $xpath->evaluate('string(//teilnehmer[@id="1"]/kommunikation/email)')); $applicantMobilePhone = trim((string) $xpath->evaluate('string(//anmelder/kommunikation/telefonmobil)')); $participantOneMobilePhone = trim((string) $xpath->evaluate('string(//teilnehmer[@id="1"]/kommunikation/telefonmobil)')); $participantTwoName = trim((string) $xpath->evaluate('string(//teilnehmer[@id="2"]/name)')); $this->assertNotSame('Schlegelmilch', $applicantName); $this->assertSame($applicantName, $participantOneName); $this->assertStringEndsWith('@example.com', $participantOneEmail); $this->assertNotSame('02212722760', $participantOneMobilePhone); $this->assertSame($applicantMobilePhone, $participantOneMobilePhone); $this->assertNotSame($participantOneName, $participantTwoName); $this->assertSame(2, $anonymizer->getLastIdentityCount()); } public function testAnonymizeReplacesKundeAttributes(): void { $xml = <<<'XML' XML; $anonymizer = new BpnXmlAnonymizer(); $result = $anonymizer->anonymize($xml); $document = new \DOMDocument(); $this->assertTrue($document->loadXML($result)); $xpath = new \DOMXPath($document); $firstCustomerLastName = trim((string) $xpath->evaluate('string(//kunde[@id="1"]/@name)')); $firstCustomerFirstName = trim((string) $xpath->evaluate('string(//kunde[@id="1"]/@vorname)')); $this->assertNotSame('Fromme', $firstCustomerLastName); $this->assertNotSame('Björn', $firstCustomerFirstName); } public function testAnonymizeThrowsOnInvalidXml(): void { $anonymizer = new BpnXmlAnonymizer(); $this->expectException(\InvalidArgumentException::class); $anonymizer->anonymize(' Schlegelmilch Mandy Am Jägersteig 19 40724 Hilden mandy.schlegelmilch@ep-reisen.de Schlegelmilch Mandy Am Jägersteig 19 40724 Hilden mandy.schlegelmilch@ep-reisen.de XML; $anonymizer = new BpnXmlAnonymizer(); $result = $anonymizer->anonymize($xml); $document = new \DOMDocument(); $this->assertTrue($document->loadXML($result)); $xpath = new \DOMXPath($document); $applicantName = trim((string) $xpath->evaluate('string(//anmelder/name)')); $participantName = trim((string) $xpath->evaluate('string(//teilnehmer[@id="1"]/name)')); $this->assertSame($applicantName, $participantName); $this->assertSame(1, $anonymizer->getLastIdentityCount()); } public function testAnonymizeCanReuseIdentityAcrossMultipleXmlDocuments(): void { $requestXml = <<<'XML' Schlegelmilch Mandy mandy.schlegelmilch@ep-reisen.de 255752 XML; $responseXml = <<<'XML' Schlegelmilch Mandy mandy.schlegelmilch@ep-reisen.de 255752 XML; $anonymizer = new BpnXmlAnonymizer(); $anonymizedRequest = $anonymizer->anonymize($requestXml, true); $anonymizedResponse = $anonymizer->anonymize($responseXml, false); $requestDocument = new \DOMDocument(); $this->assertTrue($requestDocument->loadXML($anonymizedRequest)); $requestXpath = new \DOMXPath($requestDocument); $requestName = trim((string) $requestXpath->evaluate('string(//anmelder/name)')); $responseDocument = new \DOMDocument(); $this->assertTrue($responseDocument->loadXML($anonymizedResponse)); $responseXpath = new \DOMXPath($responseDocument); $responseName = trim((string) $responseXpath->evaluate('string(//teilnehmer[@id="1"]/name)')); $this->assertSame($requestName, $responseName); $this->assertSame(1, $anonymizer->getLastIdentityCount()); } }