From 6668f6e7b631478b01d059b95feffad26df452af Mon Sep 17 00:00:00 2001 From: Baptiste Leduc Date: Wed, 8 Jan 2020 09:51:37 +0100 Subject: [PATCH] Upgrade phpunit 6.x -> 8.x --- .gitignore | 1 + composer.json | 2 +- src/AutoMapper/Tests/AutoMapperTest.php | 78 +++++++++---------- src/AutoMapper/composer.json | 2 +- .../Context/UniqueVariableScopeTest.php | 2 +- src/JsonSchema/Tests/JaneBaseTest.php | 6 +- src/JsonSchema/Tests/LibraryTest.php | 4 +- src/JsonSchema/composer.json | 2 +- .../Normalizer/ReferenceNormalizerTest.php | 8 +- src/JsonSchemaRuntime/Tests/ReferenceTest.php | 4 +- src/JsonSchemaRuntime/composer.json | 2 +- src/OpenApi/Tests/JaneOpenApiResourceTest.php | 4 +- src/OpenApi/composer.json | 2 +- .../Tests/JaneOpenApiResourceTest.php | 4 +- src/OpenApi2/composer.json | 2 +- .../Tests/Client/Psr18ClientTest.php | 2 +- .../Tests/Client/Psr7EndpointTraitTest.php | 8 +- .../Tests/Client/Psr7HttplugClientTest.php | 2 +- src/OpenApiRuntime/composer.json | 2 +- 19 files changed, 69 insertions(+), 68 deletions(-) diff --git a/.gitignore b/.gitignore index adfd8956ba..646fb44260 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ .idea .php_cs.cache +.phpunit.result.cache vendor composer.lock bin/* diff --git a/composer.json b/composer.json index 741c825e58..3c15b31f3d 100644 --- a/composer.json +++ b/composer.json @@ -47,7 +47,7 @@ "friendsofphp/php-cs-fixer": "2.15.3", "localheinz/composer-normalize": "~0.8.0", "phpbench/phpbench": "@dev", - "phpunit/phpunit": "^6.0", + "phpunit/phpunit": "^8.0", "symfony/framework-bundle": "^4.4 || ^5.0", "symfony/phpunit-bridge": "^4.1 || ^5.0" }, diff --git a/src/AutoMapper/Tests/AutoMapperTest.php b/src/AutoMapper/Tests/AutoMapperTest.php index 2844259002..58136fee5e 100644 --- a/src/AutoMapper/Tests/AutoMapperTest.php +++ b/src/AutoMapper/Tests/AutoMapperTest.php @@ -34,7 +34,7 @@ class AutoMapperTest extends TestCase /** @var AutoMapper */ private $autoMapper; - public function setUp() + public function setUp(): void { @unlink(__DIR__ . '/cache/registry.php'); @@ -47,7 +47,7 @@ public function setUp() $this->autoMapper = AutoMapper::create(true, $loader); } - public function testAutoMapping() + public function testAutoMapping(): void { $configurationUser = $this->autoMapper->getConfiguration(User::class, UserDTO::class); $configurationUser->forMember('yearOfBirth', function (User $user) { @@ -75,7 +75,7 @@ public function testAutoMapping() self::assertSame('Toulon', $userDto->addresses[0]->city); } - public function testAutoMapperFromArray() + public function testAutoMapperFromArray(): void { $user = [ 'id' => 1, @@ -96,7 +96,7 @@ public function testAutoMapperFromArray() self::assertEquals(1987, $userDto->createdAt->format('Y')); } - public function testAutoMapperToArray() + public function testAutoMapperToArray(): void { $address = new Address(); $address->setCity('Toulon'); @@ -106,13 +106,13 @@ public function testAutoMapperToArray() $userData = $this->autoMapper->map($user, 'array'); - self::assertInternalType('array', $userData); + self::assertIsArray($userData); self::assertEquals(1, $userData['id']); - self::assertInternalType('array', $userData['address']); - self::assertInternalType('string', $userData['createdAt']); + self::assertIsArray($userData['address']); + self::assertIsString($userData['createdAt']); } - public function testAutoMapperFromStdObject() + public function testAutoMapperFromStdObject(): void { $user = new \stdClass(); $user->id = 1; @@ -124,7 +124,7 @@ public function testAutoMapperFromStdObject() self::assertEquals(1, $userDto->id); } - public function testAutoMapperToStdObject() + public function testAutoMapperToStdObject(): void { $userDto = new UserDTO(); $userDto->id = 1; @@ -135,28 +135,28 @@ public function testAutoMapperToStdObject() self::assertEquals(1, $user->id); } - public function testGroups() + public function testGroups(): void { $foo = new Foo(); $foo->setId(10); $fooArray = $this->autoMapper->map($foo, 'array', new Context(['test'])); - self::assertInternalType('array', $fooArray); + self::assertIsArray($fooArray); self::assertEquals(10, $fooArray['id']); $fooArray = $this->autoMapper->map($foo, 'array', new Context([])); - self::assertInternalType('array', $fooArray); + self::assertIsArray($fooArray); self::assertArrayNotHasKey('id', $fooArray); $fooArray = $this->autoMapper->map($foo, 'array'); - self::assertInternalType('array', $fooArray); + self::assertIsArray($fooArray); self::assertArrayNotHasKey('id', $fooArray); } - public function testDeepCloning() + public function testDeepCloning(): void { $nodeA = new Node(); $nodeB = new Node(); @@ -177,7 +177,7 @@ public function testDeepCloning() self::assertSame($newNode, $newNode->parent->parent->parent); } - public function testDeepCloningArray() + public function testDeepCloningArray(): void { $nodeA = new Node(); $nodeB = new Node(); @@ -188,14 +188,14 @@ public function testDeepCloningArray() $newNode = $this->autoMapper->map($nodeA, 'array'); - self::assertInternalType('array', $newNode); - self::assertInternalType('array', $newNode['parent']); - self::assertInternalType('array', $newNode['parent']['parent']); - self::assertInternalType('array', $newNode['parent']['parent']['parent']); + self::assertIsArray($newNode); + self::assertIsArray($newNode['parent']); + self::assertIsArray($newNode['parent']['parent']); + self::assertIsArray($newNode['parent']['parent']['parent']); self::assertSame($newNode, $newNode['parent']['parent']['parent']); } - public function testCircularReferenceArray() + public function testCircularReferenceArray(): void { $nodeA = new Node(); $nodeB = new Node(); @@ -205,13 +205,13 @@ public function testCircularReferenceArray() $newNode = $this->autoMapper->map($nodeA, 'array'); - self::assertInternalType('array', $newNode); - self::assertInternalType('array', $newNode['childs'][0]); - self::assertInternalType('array', $newNode['childs'][0]['childs'][0]); + self::assertIsArray($newNode); + self::assertIsArray($newNode['childs'][0]); + self::assertIsArray($newNode['childs'][0]['childs'][0]); self::assertSame($newNode, $newNode['childs'][0]['childs'][0]); } - public function testPrivate() + public function testPrivate(): void { $user = new PrivateUser(10, 'foo', 'bar'); /** @var PrivateUserDTO $userDto */ @@ -223,7 +223,7 @@ public function testPrivate() self::assertSame('bar', $userDto->getLastName()); } - public function testConstructor() + public function testConstructor(): void { $user = new UserDTO(); $user->id = 10; @@ -238,7 +238,7 @@ public function testConstructor() self::assertSame(3, $userDto->getAge()); } - public function testConstructorWithDefault() + public function testConstructorWithDefault(): void { $user = new UserDTONoAge(); $user->id = 10; @@ -252,7 +252,7 @@ public function testConstructorWithDefault() self::assertSame(30, $userDto->getAge()); } - public function testConstructorDisable() + public function testConstructorDisable(): void { $user = new UserDTONoName(); $user->id = 10; @@ -265,7 +265,7 @@ public function testConstructorDisable() self::assertNull($userDto->getAge()); } - public function testMaxDepth() + public function testMaxDepth(): void { $foo = new FooMaxDepth(0, new FooMaxDepth(1, new FooMaxDepth(2, new FooMaxDepth(3, new FooMaxDepth(4))))); $fooArray = $this->autoMapper->map($foo, 'array'); @@ -275,7 +275,7 @@ public function testMaxDepth() self::assertFalse(isset($fooArray['child']['child']['child'])); } - public function testObjectToPopulate() + public function testObjectToPopulate(): void { $configurationUser = $this->autoMapper->getConfiguration(User::class, UserDTO::class); $configurationUser->forMember('yearOfBirth', function (User $user) { @@ -292,7 +292,7 @@ public function testObjectToPopulate() self::assertSame($userDtoToPopulate, $userDto); } - public function testCircularReferenceLimitOnContext() + public function testCircularReferenceLimitOnContext(): void { $nodeA = new Node(); $nodeA->parent = $nodeA; @@ -305,7 +305,7 @@ public function testCircularReferenceLimitOnContext() $this->autoMapper->map($nodeA, 'array', $context); } - public function testCircularReferenceLimitOnMapper() + public function testCircularReferenceLimitOnMapper(): void { $nodeA = new Node(); $nodeA->parent = $nodeA; @@ -318,7 +318,7 @@ public function testCircularReferenceLimitOnMapper() $mapper->map($nodeA, new Context()); } - public function testCircularReferenceHandlerOnContext() + public function testCircularReferenceHandlerOnContext(): void { $nodeA = new Node(); $nodeA->parent = $nodeA; @@ -333,7 +333,7 @@ public function testCircularReferenceHandlerOnContext() self::assertSame('foo', $nodeArray['parent']); } - public function testCircularReferenceHandlerOnMapper() + public function testCircularReferenceHandlerOnMapper(): void { $nodeA = new Node(); $nodeA->parent = $nodeA; @@ -348,7 +348,7 @@ public function testCircularReferenceHandlerOnMapper() self::assertSame('foo', $nodeArray['parent']); } - public function testAllowedAttributes() + public function testAllowedAttributes(): void { $configurationUser = $this->autoMapper->getConfiguration(User::class, UserDTO::class); $configurationUser->forMember('yearOfBirth', function (User $user) { @@ -363,7 +363,7 @@ public function testAllowedAttributes() self::assertNull($userDto->name); } - public function testIgnoredAttributes() + public function testIgnoredAttributes(): void { $configurationUser = $this->autoMapper->getConfiguration(User::class, UserDTO::class); $configurationUser->forMember('yearOfBirth', function (User $user) { @@ -378,7 +378,7 @@ public function testIgnoredAttributes() self::assertNull($userDto->name); } - public function testNameConverter() + public function testNameConverter(): void { $nameConverter = new class() implements AdvancedNameConverterInterface { public function normalize($propertyName, string $class = null, string $format = null, array $context = []) @@ -405,12 +405,12 @@ public function denormalize($propertyName, string $class = null, string $format $userArray = $autoMapper->map($user, 'array', new Context()); - self::assertInternalType('array', $userArray); + self::assertIsArray($userArray); self::assertArrayHasKey('@id', $userArray); self::assertSame(1, $userArray['@id']); } - public function testDefaultArguments() + public function testDefaultArguments(): void { $user = new UserDTONoAge(); $user->id = 10; @@ -425,7 +425,7 @@ public function testDefaultArguments() self::assertSame(50, $userDto->getAge()); } - public function testDiscriminator() + public function testDiscriminator(): void { $data = [ 'type' => 'cat', diff --git a/src/AutoMapper/composer.json b/src/AutoMapper/composer.json index e2eaae5669..0d68e1bd61 100644 --- a/src/AutoMapper/composer.json +++ b/src/AutoMapper/composer.json @@ -17,7 +17,7 @@ }, "require-dev": { "doctrine/annotations": "^1.5", - "phpunit/phpunit": "^6.0", + "phpunit/phpunit": "^8.0", "symfony/framework-bundle": "^4.4 || ^5.0", "symfony/serializer": "^4.2 || ^5.0", "symfony/yaml": "^4.2 || ^5.0" diff --git a/src/JsonSchema/Tests/Generator/Context/UniqueVariableScopeTest.php b/src/JsonSchema/Tests/Generator/Context/UniqueVariableScopeTest.php index f8b9f7426c..6d925a8d42 100644 --- a/src/JsonSchema/Tests/Generator/Context/UniqueVariableScopeTest.php +++ b/src/JsonSchema/Tests/Generator/Context/UniqueVariableScopeTest.php @@ -7,7 +7,7 @@ class UniqueVariableScopeTest extends TestCase { - public function testUniqueVariable() + public function testUniqueVariable(): void { $uniqueVariableScope = new UniqueVariableScope(); diff --git a/src/JsonSchema/Tests/JaneBaseTest.php b/src/JsonSchema/Tests/JaneBaseTest.php index 7d45b68a3b..6c6f553abd 100644 --- a/src/JsonSchema/Tests/JaneBaseTest.php +++ b/src/JsonSchema/Tests/JaneBaseTest.php @@ -14,7 +14,7 @@ class JaneBaseTest extends TestCase /** * @dataProvider schemaProvider */ - public function testRessources($name, SplFileInfo $testDirectory) + public function testRessources(SplFileInfo $testDirectory): void { // 1. Generate $command = new GenerateCommand(); @@ -54,14 +54,14 @@ public function testRessources($name, SplFileInfo $testDirectory) } } - public function schemaProvider() + public function schemaProvider(): array { $finder = new Finder(); $finder->directories()->in(__DIR__ . '/fixtures'); $finder->depth('< 1'); $data = []; foreach ($finder as $directory) { - $data[] = [$directory->getFilename(), $directory]; + $data[] = [$directory]; } return $data; diff --git a/src/JsonSchema/Tests/LibraryTest.php b/src/JsonSchema/Tests/LibraryTest.php index f6efb84067..22b86b0f18 100644 --- a/src/JsonSchema/Tests/LibraryTest.php +++ b/src/JsonSchema/Tests/LibraryTest.php @@ -18,7 +18,7 @@ class LibraryTest extends TestCase protected $printer; - public function setUp() + public function setUp(): void { $this->jane = Jane::build([ 'reference' => true, @@ -32,7 +32,7 @@ public function setUp() /** * Unique test with ~70% coverage, library generated from json schema must be the same as the library used. */ - public function testLibrary() + public function testLibrary(): void { $registry = new Registry(); $registry->addSchema(new Schema(__DIR__ . '/data/json-schema.json', 'Jane\JsonSchema', __DIR__ . '/generated', 'JsonSchema')); diff --git a/src/JsonSchema/composer.json b/src/JsonSchema/composer.json index ecf45a934a..0efd80b9bb 100644 --- a/src/JsonSchema/composer.json +++ b/src/JsonSchema/composer.json @@ -26,7 +26,7 @@ }, "require-dev": { "friendsofphp/php-cs-fixer": "2.15.3", - "phpunit/phpunit": "^6.0" + "phpunit/phpunit": "^8.0" }, "suggest": { "friendsofphp/php-cs-fixer": "Allow to automatically fix cs on generated code for better visualisation" diff --git a/src/JsonSchemaRuntime/Tests/Normalizer/ReferenceNormalizerTest.php b/src/JsonSchemaRuntime/Tests/Normalizer/ReferenceNormalizerTest.php index f57a804414..666d6cb488 100644 --- a/src/JsonSchemaRuntime/Tests/Normalizer/ReferenceNormalizerTest.php +++ b/src/JsonSchemaRuntime/Tests/Normalizer/ReferenceNormalizerTest.php @@ -11,12 +11,12 @@ class ReferenceNormalizerTest extends TestCase /** @var ReferenceNormalizer */ private $referenceNormalizer; - public function setUp() + public function setUp(): void { $this->referenceNormalizer = new ReferenceNormalizer(); } - public function testSupports() + public function testSupports(): void { $this->assertFalse($this->referenceNormalizer->supportsNormalization('toto')); $this->assertTrue($this->referenceNormalizer->supportsNormalization(new Reference('reference', 'schema'))); @@ -25,7 +25,7 @@ public function testSupports() /** * @dataProvider normalizeProvider */ - public function testNormalize($referenceString) + public function testNormalize($referenceString): void { $reference = new Reference($referenceString, 'schema'); $normalized = $this->referenceNormalizer->normalize($reference); @@ -33,7 +33,7 @@ public function testNormalize($referenceString) $this->assertEquals($referenceString, $normalized->{'$ref'}); } - public function normalizeProvider() + public function normalizeProvider(): array { return [ ['#pointer'], diff --git a/src/JsonSchemaRuntime/Tests/ReferenceTest.php b/src/JsonSchemaRuntime/Tests/ReferenceTest.php index 566d06a20b..c7a0df3517 100644 --- a/src/JsonSchemaRuntime/Tests/ReferenceTest.php +++ b/src/JsonSchemaRuntime/Tests/ReferenceTest.php @@ -10,14 +10,14 @@ class ReferenceTest extends TestCase /** * @dataProvider resolveProvider */ - public function testResolve($reference, $origin, $expected, $denormalizerCallback) + public function testResolve($reference, $origin, $expected, $denormalizerCallback): void { $reference = new Reference($reference, $origin); self::assertEquals($expected, $reference->resolve($denormalizerCallback)); } - public function resolveProvider() + public function resolveProvider(): array { return [ ['#', __DIR__ . '/schema.json', json_decode(file_get_contents(__DIR__ . '/schema.json')), null], diff --git a/src/JsonSchemaRuntime/composer.json b/src/JsonSchemaRuntime/composer.json index f62b472797..79c6ed6c53 100644 --- a/src/JsonSchemaRuntime/composer.json +++ b/src/JsonSchemaRuntime/composer.json @@ -22,7 +22,7 @@ "symfony/yaml": "^3.1 || ^4.0 || ^5.0" }, "require-dev": { - "phpunit/phpunit": "^6.0" + "phpunit/phpunit": "^8.0" }, "config": { "sort-packages": true diff --git a/src/OpenApi/Tests/JaneOpenApiResourceTest.php b/src/OpenApi/Tests/JaneOpenApiResourceTest.php index dd68d79c93..4825f772b8 100644 --- a/src/OpenApi/Tests/JaneOpenApiResourceTest.php +++ b/src/OpenApi/Tests/JaneOpenApiResourceTest.php @@ -14,7 +14,7 @@ class JaneOpenApiResourceTest extends TestCase /** * @dataProvider resourceProvider */ - public function testRessources($name, SplFileInfo $testDirectory) + public function testRessources($name, SplFileInfo $testDirectory): void { // 1. Generate $command = new GenerateCommand(); @@ -52,7 +52,7 @@ public function testRessources($name, SplFileInfo $testDirectory) } } - public function resourceProvider() + public function resourceProvider(): array { $finder = new Finder(); $finder->directories()->in(__DIR__ . '/fixtures'); diff --git a/src/OpenApi/composer.json b/src/OpenApi/composer.json index a04fb8b746..927b0d2bb5 100644 --- a/src/OpenApi/composer.json +++ b/src/OpenApi/composer.json @@ -31,7 +31,7 @@ }, "require-dev": { "friendsofphp/php-cs-fixer": "2.15.3", - "phpunit/phpunit": "^6.0" + "phpunit/phpunit": "^8.0" }, "suggest": { "friendsofphp/php-cs-fixer": "To have a nice formatting of the generated files" diff --git a/src/OpenApi2/Tests/JaneOpenApiResourceTest.php b/src/OpenApi2/Tests/JaneOpenApiResourceTest.php index e6a64682e9..11072cc1d5 100644 --- a/src/OpenApi2/Tests/JaneOpenApiResourceTest.php +++ b/src/OpenApi2/Tests/JaneOpenApiResourceTest.php @@ -15,7 +15,7 @@ class JaneOpenApiResourceTest extends TestCase /** * @dataProvider resourceProvider */ - public function testRessources($name, SplFileInfo $testDirectory) + public function testRessources($name, SplFileInfo $testDirectory): void { // 1. Cleanup generated $filesystem = new Filesystem(); @@ -65,7 +65,7 @@ public function testRessources($name, SplFileInfo $testDirectory) } } - public function resourceProvider() + public function resourceProvider(): array { $finder = new Finder(); $finder->directories()->in(__DIR__ . '/fixtures'); diff --git a/src/OpenApi2/composer.json b/src/OpenApi2/composer.json index 062141a9d6..ef06c74ee1 100644 --- a/src/OpenApi2/composer.json +++ b/src/OpenApi2/composer.json @@ -32,7 +32,7 @@ }, "require-dev": { "friendsofphp/php-cs-fixer": "2.15.3", - "phpunit/phpunit": "^6.0" + "phpunit/phpunit": "^8.0" }, "suggest": { "friendsofphp/php-cs-fixer": "To have a nice formatting of the generated files" diff --git a/src/OpenApiRuntime/Tests/Client/Psr18ClientTest.php b/src/OpenApiRuntime/Tests/Client/Psr18ClientTest.php index 24d0718bde..f7f62bddb9 100644 --- a/src/OpenApiRuntime/Tests/Client/Psr18ClientTest.php +++ b/src/OpenApiRuntime/Tests/Client/Psr18ClientTest.php @@ -21,7 +21,7 @@ class Psr18ClientTest extends TestCase * @covers \Jane\OpenApiRuntime\Client\Psr18Client::__construct * @covers \Jane\OpenApiRuntime\Client\Psr18Client::executePsr7Endpoint */ - public function testExecutePsr7Endpoint() + public function testExecutePsr7Endpoint(): void { $responseMock = $this->createMock(ResponseInterface::class); $httpClientMock = $this->createMock(ClientInterface::class); diff --git a/src/OpenApiRuntime/Tests/Client/Psr7EndpointTraitTest.php b/src/OpenApiRuntime/Tests/Client/Psr7EndpointTraitTest.php index 7202426d75..98309a19b2 100644 --- a/src/OpenApiRuntime/Tests/Client/Psr7EndpointTraitTest.php +++ b/src/OpenApiRuntime/Tests/Client/Psr7EndpointTraitTest.php @@ -16,7 +16,7 @@ class Psr7EndpointTraitTest extends TestCase /** * @covers \Jane\OpenApiRuntime\Client\Psr7EndpointTrait::parsePSR7Response */ - public function testParsePSR7ResponseWithObjectFetchModeShouldTransformResponseBody() + public function testParsePSR7ResponseWithObjectFetchModeShouldTransformResponseBody(): void { $endpoint = $this->getEndpointInstance(); @@ -45,7 +45,7 @@ public function testParsePSR7ResponseWithObjectFetchModeShouldTransformResponseB /** * @covers \Jane\OpenApiRuntime\Client\Psr7EndpointTrait::parsePSR7Response */ - public function testParsePSR7ResponseWithResponseFetchModeShouldReturnResponse() + public function testParsePSR7ResponseWithResponseFetchModeShouldReturnResponse(): void { $endpoint = $this->getEndpointInstance(); @@ -58,7 +58,7 @@ public function testParsePSR7ResponseWithResponseFetchModeShouldReturnResponse() /** * @covers \Jane\OpenApiRuntime\Client\Psr7EndpointTrait::parsePSR7Response */ - public function testParsePSR7ResponseWithInvalidFetchModeShouldThrowException() + public function testParsePSR7ResponseWithInvalidFetchModeShouldThrowException(): void { $endpoint = $this->getEndpointInstance(); @@ -70,7 +70,7 @@ public function testParsePSR7ResponseWithInvalidFetchModeShouldThrowException() $endpoint->parsePSR7Response($responseMock, $serializerMock, 'foo'); } - private function getEndpointInstance() + private function getEndpointInstance(): object { static $endpoint = null; if ($endpoint === null) { diff --git a/src/OpenApiRuntime/Tests/Client/Psr7HttplugClientTest.php b/src/OpenApiRuntime/Tests/Client/Psr7HttplugClientTest.php index de4ea1e6da..c39ea7ea9f 100644 --- a/src/OpenApiRuntime/Tests/Client/Psr7HttplugClientTest.php +++ b/src/OpenApiRuntime/Tests/Client/Psr7HttplugClientTest.php @@ -20,7 +20,7 @@ class Psr7HttplugClientTest extends TestCase * @covers \Jane\OpenApiRuntime\Client\Psr7HttplugClient::__construct * @covers \Jane\OpenApiRuntime\Client\Psr7HttplugClient::executePsr7Endpoint */ - public function testExecutePsr7Endpoint() + public function testExecutePsr7Endpoint(): void { $responseMock = $this->createMock(ResponseInterface::class); $httpClientMock = $this->createMock(HttpClient::class); diff --git a/src/OpenApiRuntime/composer.json b/src/OpenApiRuntime/composer.json index b8e4f1b60f..1944647bd9 100644 --- a/src/OpenApiRuntime/composer.json +++ b/src/OpenApiRuntime/composer.json @@ -25,7 +25,7 @@ "symfony/options-resolver": "^3.1 || ^4.0 || ^5.0" }, "require-dev": { - "phpunit/phpunit": "^6.0" + "phpunit/phpunit": "^8.0" }, "config": { "sort-packages": true