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());
}
}