ApiPlatform\Core\Tests\NelmioApiDoc\Parser\ApiPlatformParserTest::testParseDateTime PHP Method

testParseDateTime() public method

public testParseDateTime ( )
    public function testParseDateTime()
    {
        $resourceMetadataFactoryProphecy = $this->prophesize(ResourceMetadataFactoryInterface::class);
        $resourceMetadataFactoryProphecy->create(Dummy::class)->willReturn(new ResourceMetadata('dummy', 'dummy', null, [], []))->shouldBeCalled();
        $resourceMetadataFactory = $resourceMetadataFactoryProphecy->reveal();
        $propertyNameCollectionFactoryProphecy = $this->prophesize(PropertyNameCollectionFactoryInterface::class);
        $propertyNameCollectionFactoryProphecy->create(Dummy::class, Argument::cetera())->willReturn(new PropertyNameCollection(['dummyDate']))->shouldBeCalled();
        $propertyNameCollectionFactory = $propertyNameCollectionFactoryProphecy->reveal();
        $propertyMetadataFactoryProphecy = $this->prophesize(PropertyMetadataFactoryInterface::class);
        $dummyDatePropertyMetadata = (new PropertyMetadata())->withType(new Type(Type::BUILTIN_TYPE_OBJECT, true, \DateTime::class))->withDescription('A dummy date.')->withReadable(true)->withWritable(true)->withRequired(false);
        $propertyMetadataFactoryProphecy->create(Dummy::class, 'dummyDate')->willReturn($dummyDatePropertyMetadata)->shouldBeCalled();
        $propertyMetadataFactory = $propertyMetadataFactoryProphecy->reveal();
        $apiPlatformParser = new ApiPlatformParser($resourceMetadataFactory, $propertyNameCollectionFactory, $propertyMetadataFactory);
        $actual = $apiPlatformParser->parse(['class' => sprintf('%s:%s:%s', ApiPlatformParser::OUT_PREFIX, Dummy::class, 'get')]);
        $this->assertEquals(['dummyDate' => ['dataType' => DataTypes::DATETIME, 'required' => false, 'description' => 'A dummy date.', 'readonly' => false, 'format' => sprintf('{DateTime %s}', \DateTime::RFC3339)]], $actual);
    }