*/ public static function cloningRegistryMembersProvider() : \Generator{ yield [function() : \stdClass{ return TestCloningRegistry::TEST1(); }]; yield [function() : \stdClass{ return TestCloningRegistry::TEST2(); }]; yield [function() : \stdClass{ return TestCloningRegistry::TEST3(); }]; } /** * @dataProvider cloningRegistryMembersProvider * @phpstan-param \Closure() : \stdClass $provider */ public function testEachMemberClone(\Closure $provider) : void{ self::assertNotSame($provider(), $provider(), "Cloning registry should never return the same object twice"); } public function testGetAllClone() : void{ $list1 = TestCloningRegistry::getAll(); $list2 = TestCloningRegistry::getAll(); foreach(Utils::promoteKeys($list1) as $k => $member){ self::assertNotSame($member, $list2[$k], "VanillaBlocks ought to clone its members"); } } }