This commit is contained in:
cutemeli
2025-12-22 10:35:30 +00:00
parent 0bfc6c8425
commit 5ce7ca2c5d
38927 changed files with 0 additions and 4594700 deletions

View File

@@ -1,120 +0,0 @@
<?php
namespace GoetasWebservices\Xsd\XsdToPhpRuntime\Tests\Jms\Handler;
use Doctrine\Common\Annotations\AnnotationReader;
use GoetasWebservices\Xsd\XsdToPhpRuntime\Jms\Handler\XmlSchemaDateHandler;
use JMS\Serializer\Accessor\DefaultAccessorStrategy;
use JMS\Serializer\Construction\UnserializeObjectConstructor;
use JMS\Serializer\DeserializationContext;
use JMS\Serializer\EventDispatcher\EventDispatcher;
use JMS\Serializer\GraphNavigator;
use JMS\Serializer\Handler\HandlerRegistry;
use JMS\Serializer\Metadata\Driver\AnnotationDriver;
use JMS\Serializer\Naming\IdenticalPropertyNamingStrategy;
use JMS\Serializer\XmlDeserializationVisitor;
use JMS\Serializer\XmlSerializationVisitor;
use Metadata\MetadataFactory;
use PHPUnit\Framework\TestCase;
class XmlSchemaDateHandlerDeserializationTest extends TestCase
{
/**
* @var XmlSchemaDateHandler
*/
protected $handler;
/**
* @var DeserializationContext
*/
protected $context;
/**
* @var XmlDeserializationVisitor
*/
protected $visitor;
public function setUp(): void
{
$this->handler = new XmlSchemaDateHandler();
$this->context = DeserializationContext::create();
$naming = new IdenticalPropertyNamingStrategy();
$dispatcher = new EventDispatcher();
$handlerRegistry= new HandlerRegistry();
$cons = new UnserializeObjectConstructor();
$navigator = class_exists('JMS\Serializer\GraphNavigator\DeserializationGraphNavigator')
? $this->initJmsv2($naming, $handlerRegistry, $cons, $dispatcher)
: $this->initJmsv1($naming, $handlerRegistry, $cons, $dispatcher)
;
$this->visitor->setNavigator($navigator);
}
private function initJmsv2($naming, $handlerRegistry, $cons, $dispatcher)
{
$accessor = new DefaultAccessorStrategy();
$this->visitor = new XmlDeserializationVisitor();
$metadataFactory = new MetadataFactory(new AnnotationDriver(new AnnotationReader(), $naming));
return new GraphNavigator\DeserializationGraphNavigator($metadataFactory, $handlerRegistry, $cons, $accessor, $dispatcher);
}
private function initJmsv1($naming, $handlerRegistry, $cons, $dispatcher)
{
$this->visitor = new XmlDeserializationVisitor($naming);
$metadataFactory = new MetadataFactory(new AnnotationDriver(new AnnotationReader()));
return new GraphNavigator($metadataFactory, $handlerRegistry, $cons, $dispatcher);
}
/**
* @dataProvider getDeserializeDate
* @param string $date
* @param \DateTime $expected
*/
public function testDeserializeDate($date, \DateTime $expected)
{
$element = new \SimpleXMLElement("<Date>$date</Date>");
$deserialized = $this->handler->deserializeDate($this->visitor, $element, [], $this->context);
$this->assertEquals($expected, $deserialized);
}
/**
* @dataProvider getDeserializeDateInterval
* @param string $dateInterval
* @param \DateTime $expected
*/
public function testDeserializeDateInterval($dateInterval, $expected)
{
$element = new \SimpleXMLElement("<DateInterval>$dateInterval</DateInterval>");
$deserialized = $this->handler->deserializeDateIntervalXml($this->visitor, $element, [], $this->context);
if (isset($deserialized->f)) {
$this->assertEquals($expected['f'], $deserialized->f);
}
$this->assertEquals($expected['s'], $deserialized->s);
}
public function getDeserializeDateInterval()
{
return [
['P0Y0M0DT3H5M7.520S', ['s' => 7, 'f' => 0.52]],
['P0Y0M0DT3H5M7S', ['s' => 7, 'f' => 0]]
];
}
public function getDeserializeDate()
{
return [
['2015-01-01', new \DateTime('2015-01-01')],
['2015-01-01Z', new \DateTime('2015-01-01', new \DateTimeZone("UTC"))],
['2015-01-01+06:00', new \DateTime('2015-01-01', new \DateTimeZone("+06:00"))],
['2015-01-01-20:00', new \DateTime('2015-01-01', new \DateTimeZone("-20:00"))],
];
}
public function testDeserializeInvalidDate()
{
$this->expectException(\RuntimeException::class);
$element = new \SimpleXMLElement("<Date>2015-01-01T</Date>");
$this->handler->deserializeDate($this->visitor, $element, [], $this->context);
}
}

View File

@@ -1,114 +0,0 @@
<?php
namespace GoetasWebservices\Xsd\XsdToPhpRuntime\Tests\Jms\Handler;
use Doctrine\Common\Annotations\AnnotationReader;
use GoetasWebservices\Xsd\XsdToPhpRuntime\Jms\Handler\XmlSchemaDateHandler;
use JMS\Serializer\Accessor\DefaultAccessorStrategy;
use JMS\Serializer\Construction\UnserializeObjectConstructor;
use JMS\Serializer\EventDispatcher\EventDispatcher;
use JMS\Serializer\GraphNavigator;
use JMS\Serializer\Handler\HandlerRegistry;
use JMS\Serializer\Metadata\Driver\AnnotationDriver;
use JMS\Serializer\Naming\IdenticalPropertyNamingStrategy;
use JMS\Serializer\SerializationContext;
use JMS\Serializer\XmlSerializationVisitor;
use Metadata\MetadataFactory;
use PHPUnit\Framework\TestCase;
class XmlSchemaDateHandlerSerializationTest extends TestCase
{
/**
* @var XmlSchemaDateHandler
*/
protected $handler;
/**
* @var SerializationContext
*/
protected $context;
/**
* @var XmlSerializationVisitor
*/
protected $visitor;
public function setUp(): void
{
$this->handler = new XmlSchemaDateHandler();
$this->context = SerializationContext::create();
$naming = new IdenticalPropertyNamingStrategy();
$cons = new UnserializeObjectConstructor();
$dispatcher = new EventDispatcher();
$handlerRegistry= new HandlerRegistry();
$navigator = class_exists('JMS\Serializer\GraphNavigator\DeserializationGraphNavigator')
? $this->initJmsv2($naming, $handlerRegistry, $cons, $dispatcher)
: $this->initJmsv1($naming, $handlerRegistry, $cons, $dispatcher)
;
$this->visitor->setNavigator($navigator);
}
private function initJmsv2($naming, $handlerRegistry, $cons, $dispatcher)
{
$accessor = new DefaultAccessorStrategy();
$this->visitor = new XmlSerializationVisitor();
$metadataFactory = new MetadataFactory(new AnnotationDriver(new AnnotationReader(), $naming));
return new GraphNavigator\SerializationGraphNavigator($metadataFactory, $handlerRegistry, $accessor, $dispatcher);
}
private function initJmsv1($naming, $handlerRegistry, $cons, $dispatcher)
{
$this->visitor = new XmlSerializationVisitor($naming);
$metadataFactory = new MetadataFactory(new AnnotationDriver(new AnnotationReader()));
return new GraphNavigator($metadataFactory, $handlerRegistry, $cons, $dispatcher);
}
/**
* @dataProvider getSerializeDateTime
* @param \DateTime $date
*/
public function testSerializeDateTime(\DateTime $date, $expected)
{
$ret = $this->handler->serializeDateTime($this->visitor, $date, [], $this->context);
$actual = $ret ? $ret->nodeValue : $this->visitor->getCurrentNode()->nodeValue;
$this->assertEquals($expected, $actual);
}
public function getSerializeDateTime()
{
return [
[new \DateTime('2015-01-01 12:00+00:00'), '2015-01-01T12:00:00+00:00'],
[new \DateTime('2015-01-01 12:00:56+00:00'), '2015-01-01T12:00:56+00:00'],
[new \DateTime('2015-01-01 12:00:56+00:00'), '2015-01-01T12:00:56+00:00'],
[new \DateTime('2015-01-01 12:00:56+20:00'), '2015-01-01T12:00:56+20:00'],
[new \DateTime('2015-01-01 12:00:56', new \DateTimeZone("Europe/London")), '2015-01-01T12:00:56+00:00'],
[new \DateTime('2015-01-01 12:00:56+00:00', new \DateTimeZone("Europe/London")), '2015-01-01T12:00:56+00:00'],
[new \DateTime('2015-01-01 12:00:56', new \DateTimeZone("Europe/Rome")), '2015-01-01T12:00:56+01:00'],
];
}
/**
* @dataProvider getSerializeDate
* @param \DateTime $date
* @param string $expected
*/
public function testSerializeDate(\DateTime $date, $expected)
{
$ret = $this->handler->serializeDate($this->visitor, $date, [], $this->context);
$actual = $ret ? $ret->nodeValue : $this->visitor->getCurrentNode()->nodeValue;
$this->assertEquals($expected, $actual);
}
public function getSerializeDate()
{
return [
[new \DateTime('2015-01-01 12:00'), '2015-01-01'],
[new \DateTime('2015-01-01 12:00:56'), '2015-01-01'],
[new \DateTime('2015-01-01 12:00:56+00:00'), '2015-01-01'],
[new \DateTime('2015-01-01 12:00:56+20:00'), '2015-01-01'],
[new \DateTime('2015-01-01 12:00:56', new \DateTimeZone("Europe/London")), '2015-01-01'],
];
}
}