From 9864a5a9b9c85abe50a3ce6a897ad347b42f317c Mon Sep 17 00:00:00 2001 From: Alessandro Lai Date: Fri, 18 Aug 2017 12:11:09 +0200 Subject: [PATCH] Add unit test for HierarchyDiscriminatorResolverTest --- .../HierarchyDiscriminatorResolverTest.php | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 tests/Doctrine/Tests/ORM/Utility/HierarchyDiscriminatorResolverTest.php diff --git a/tests/Doctrine/Tests/ORM/Utility/HierarchyDiscriminatorResolverTest.php b/tests/Doctrine/Tests/ORM/Utility/HierarchyDiscriminatorResolverTest.php new file mode 100644 index 000000000..cffb8cd3b --- /dev/null +++ b/tests/Doctrine/Tests/ORM/Utility/HierarchyDiscriminatorResolverTest.php @@ -0,0 +1,56 @@ +name = 'Some\Class\Child\Name'; + $childClassMetadata->discriminatorValue = 'child-discriminator'; + + $classMetadata = new ClassMetadata('Entity'); + $classMetadata->subClasses = [$childClassMetadata->name]; + $classMetadata->name = 'Some\Class\Name'; + $classMetadata->discriminatorValue = 'discriminator'; + + $em = $this->prophesize(EntityManagerInterface::class); + $em->getClassMetadata($classMetadata->name) + ->shouldBeCalled() + ->willReturn($classMetadata); + $em->getClassMetadata($childClassMetadata->name) + ->shouldBeCalled() + ->willReturn($childClassMetadata); + + $discriminators = HierarchyDiscriminatorResolver::resolveDiscriminatorsForClass($classMetadata, $em->reveal()); + + $this->assertCount(2, $discriminators); + $this->assertArrayHasKey($classMetadata->discriminatorValue, $discriminators); + $this->assertArrayHasKey($childClassMetadata->discriminatorValue, $discriminators); + } + + public function testResolveDiscriminatorsForClassWithNoSubclasses() + { + $classMetadata = new ClassMetadata('Entity'); + $classMetadata->subClasses = []; + $classMetadata->name = 'Some\Class\Name'; + $classMetadata->discriminatorValue = 'discriminator'; + + $em = $this->prophesize(EntityManagerInterface::class); + $em->getClassMetadata($classMetadata->name) + ->shouldBeCalled() + ->willReturn($classMetadata); + + $discriminators = HierarchyDiscriminatorResolver::resolveDiscriminatorsForClass($classMetadata, $em->reveal()); + + $this->assertCount(1, $discriminators); + $this->assertArrayHasKey($classMetadata->discriminatorValue, $discriminators); + } +}