Exemplo n.º 1
0
$service2->addScope($scopes[1]);
// service3 has three scopes
$service3->addScope($scopes[0]);
$service3->addScope($scopes[1]);
$service3->addScope($scopes[2]);
//  service4 has all scopes
for ($i = 0; $i < $scopeCount; $i++) {
    $service4->addScope($scopes[$i]);
}
// Services ****************************
// ServiceGroups ****************************
$sg0 = TestUtil::createSampleServiceGroup("SG0");
$sg1 = TestUtil::createSampleServiceGroup("SG1");
$sg2 = TestUtil::createSampleServiceGroup("SG2");
$sg3 = TestUtil::createSampleServiceGroup("SG3");
$sg4 = TestUtil::createSampleServiceGroup("SG4");
$this->em->persist($sg0);
$this->em->persist($sg1);
$this->em->persist($sg2);
$this->em->persist($sg3);
$this->em->persist($sg4);
// Add different scopes to selected sgs:
// sg0 has no scope
// sg1 has one scope
$sg1->addScope($scopes[0]);
// sg2 has two scopes
$sg2->addScope($scopes[0]);
$sg2->addScope($scopes[1]);
// sg3 has three scopes
$sg3->addScope($scopes[0]);
$sg3->addScope($scopes[1]);
Exemplo n.º 2
0
 /**
  * An example test showing the creation of a service group and properties 
  * and that all data is removed on deletion of a service group or property
  */
 public function testServiceGroupPropertyDeletions()
 {
     print __METHOD__ . "\n";
     //Create a service
     $service = TestUtil::createSampleService("TestService");
     //Create a NGI
     $ngi = TestUtil::createSampleNGI("TestNGI");
     //Create a site
     $site = TestUtil::createSampleSite("TestSite");
     //Create a service group
     $sg = TestUtil::createSampleServiceGroup("TestServiceGroup");
     //Join service to site, and site to NGI.
     $ngi->addSiteDoJoin($site);
     $site->addServiceDoJoin($service);
     //Finally add service to service group
     $sg->addService($service);
     //Create service group properties
     $prop1 = TestUtil::createSampleServiceGroupProperty("VO", "Atlas");
     $prop2 = TestUtil::createSampleServiceGroupProperty("VO", "CMS");
     $prop3 = TestUtil::createSampleServiceGroupProperty("VO", "Alice");
     $sg->addServiceGroupPropertyDoJoin($prop1);
     $sg->addServiceGroupPropertyDoJoin($prop2);
     $sg->addServiceGroupPropertyDoJoin($prop3);
     //Persist the service, ngi, site, service group & property in the entity manager
     $this->em->persist($service);
     $this->em->persist($ngi);
     $this->em->persist($site);
     $this->em->persist($sg);
     $this->em->persist($prop1);
     $this->em->persist($prop2);
     $this->em->persist($prop3);
     //Commit the entites to the database
     $this->em->flush();
     //Check that the service group has 3 properties associated with it
     $properties = $sg->getServiceGroupProperties();
     $this->assertTrue(count($properties) == 3);
     //Create an admin user that can delete a property
     $adminUser = TestUtil::createSampleUser('my', 'admin', '/my/admin');
     $adminUser->setAdmin(TRUE);
     $this->em->persist($adminUser);
     //Delete the property from the service group
     $serviceService = new org\gocdb\services\ServiceGroup();
     $serviceService->setEntityManager($this->em);
     $serviceService->deleteServiceGroupProperty($sg, $adminUser, $prop1);
     //Check that the sg now only has 2 properties
     $properties = $sg->getServiceGroupProperties();
     $this->assertTrue(count($properties) == 2);
     $this->em->flush();
     //Print names of properties
     //foreach($properties as $prop){
     //	print($prop->getKeyName()."-");
     //	print($prop->getKeyValue()."\n");
     //}
     //Check this via the database
     $con = $this->getConnection();
     //Get servicegroup id to use in sql statements
     $sgId = $sg->getId();
     $result = $con->createQueryTable('results', "SELECT * FROM servicegroup_properties WHERE PARENTSERVICEGROUP_ID = '{$sgId}'");
     //Assert that only 2 service group properties exist in the database for this service
     $this->assertEquals(2, $result->getRowCount());
     //Now delete the service group and check that it cascades the delete to remove the services associated properties
     $serviceService->deleteServiceGroup($sg, $adminUser, true);
     $this->em->flush();
     //Check service group is gone
     $result = $con->createQueryTable('results', "SELECT * FROM ServiceGroups WHERE ID = '{$sgId}'");
     $this->assertEquals(0, $result->getRowCount());
     //Check properties are gone
     $result = $con->createQueryTable('results', "SELECT * FROM servicegroup_properties WHERE PARENTSERVICEGROUP_ID = '{$sgId}'");
     $this->assertEquals(0, $result->getRowCount());
 }