Example #1
0
 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));
 }