public function testRemovingFromRegistryByRouteAndHavingActionUsedForOtherRoute() { $registry = new Registry(); $className = 'DrestTests\\Entities\\Typical\\User'; $className2 = 'DrestTests\\Entities\\Typical\\User'; $routeName = 'route_name'; $routeName2 = 'route_name2'; $serviceAction = new \DrestTests\Action\Custom(); $registry->register($serviceAction, [$className . '::' . $routeName, $className2 . '::' . $routeName2]); $routeMetaData = new \Drest\Mapping\RouteMetaData(); $routeMetaData->setClassMetaData(new \Drest\Mapping\ClassMetaData(new \ReflectionClass($className))); $routeMetaData->setName($routeName); $routeMetaData2 = new \Drest\Mapping\RouteMetaData(); $routeMetaData2->setClassMetaData(new \Drest\Mapping\ClassMetaData(new \ReflectionClass($className2))); $routeMetaData2->setName($routeName2); $registry->unregisterByRoute($routeMetaData); $this->assertFalse($registry->hasServiceAction($routeMetaData)); $this->assertTrue($registry->hasServiceAction($routeMetaData2)); $this->assertSame($registry->getServiceAction($routeMetaData2), $serviceAction); $registry->unregisterByRoute($routeMetaData2); $this->assertFalse($registry->hasServiceAction($routeMetaData)); $this->assertFalse($registry->hasServiceAction($routeMetaData2)); }