From c318c451dc65978c3c1fff2f0d89229bda13daad Mon Sep 17 00:00:00 2001 From: naomi Date: Sun, 5 Jun 2022 13:15:33 +0100 Subject: [PATCH] refactored tests, added EntityTrait --- tests/src/Unit/EntityTrait.php | 30 ++++++++++++++++++++++++++++++ tests/src/Unit/OCActorTest.php | 32 ++++++++++++++++---------------- 2 files changed, 46 insertions(+), 16 deletions(-) create mode 100644 tests/src/Unit/EntityTrait.php diff --git a/tests/src/Unit/EntityTrait.php b/tests/src/Unit/EntityTrait.php new file mode 100644 index 0000000..fd8d5b8 --- /dev/null +++ b/tests/src/Unit/EntityTrait.php @@ -0,0 +1,30 @@ +getMockBuilder('\\Drupal\\Core\\Entity\\EntityTypeManager')->disableOriginalConstructor()->getMock(); + } + + public function getStorage(MockObject $entityTypeManager, string $entityTypeId): MockObject { + $storage = $this->getMockBuilder('\\Drupal\\Core\\Entity\\EntityStorageInterface')->disableOriginalConstructor()->getMock(); + $entityTypeManager->method('getStorage')->with($entityTypeId)->willReturn($storage); + return $storage; + } + + public function getQuery(MockObject $storage): MockObject { + $query = $this->getMockBuilder('\\Drupal\\Core\\Entity\\Query\\QueryInterface')->getMock(); + $storage->method('getQuery')->willReturn($query); + return $query; + } + + public function setupContainer(array $services): void { + $container = new ContainerBuilder(); + foreach ($services as $key => $mock) { + $container->set($key, $mock); + } + \Drupal::setContainer($container); + } +} \ No newline at end of file diff --git a/tests/src/Unit/OCActorTest.php b/tests/src/Unit/OCActorTest.php index 3e332a1..05a8232 100644 --- a/tests/src/Unit/OCActorTest.php +++ b/tests/src/Unit/OCActorTest.php @@ -1,31 +1,31 @@ entityTypeManager = $this->getMockBuilder('\\Drupal\\Core\\Entity\\EntityTypeManager')->disableOriginalConstructor()->getMock(); - $container = new ContainerBuilder(); - $container->set('entity_type.manager', $this->entityTypeManager); - \Drupal::setContainer($container); - $this->actor = $this->getMockBuilder(OCActor::class)->disableOriginalConstructor() - ->onlyMethods(['id']) - ->getMock(); + $this->etm = $this->getEntityTypeManager(); + $this->setupContainer([ + 'entity_type.manager' => $this->etm + ]); } - public function testGetCountOfCaseProvisions(){ - $caseProvisionStorage = $this->getMockBuilder('\\Drupal\\Core\\Entity\\EntityStorageInterface')->disableOriginalConstructor()->getMock(); - $this->entityTypeManager->expects($this->once())->method('getStorage')->with('oc_case_provision')->willReturn($caseProvisionStorage); - $query = $this->getMockBuilder('\\Drupal\\Core\\Entity\\Query\\QueryInterface')->getMock(); - $caseProvisionStorage->method('getQuery')->willReturn($query); - $this->actor->expects($this->once())->method('id')->willReturn(5); + public function testGetCountOfCaseProvisions(): void{ + $storage = $this->getStorage($this->etm, 'oc_case_provision'); + $query = $this->getQuery($storage); + $actor = $this->getMockBuilder('\\Drupal\\opencase_entities\\Entity\\OCActor')->disableOriginalConstructor() + ->onlyMethods(['id']) + ->getMock(); + $actor->expects($this->once())->method('id')->willReturn(5); $query->expects($this->once())->method('condition')->with('oc_provider', 5); $query->expects($this->once())->method('execute')->willReturn([1,2,3,4]); - $count = $this->actor->getCountOfCaseProvisions(); + $count = $actor->getCountOfCaseProvisions(); $this->assertTrue($count == 4); } }