/**
  * @covers MicrosoftAzure\Storage\Blob\BlobRestProxy::createContainer
  * @covers MicrosoftAzure\Storage\Blob\BlobRestProxy::deleteContainer
  * @covers MicrosoftAzure\Storage\Blob\BlobRestProxy::listContainers
  */
 public function setUp()
 {
     parent::setUp();
     $settings = StorageServiceSettings::createFromConnectionString($this->connectionString);
     $accountName = $settings->getBlobEndpointUri();
     $firstSlash = strpos($accountName, '/');
     $accountName = substr($accountName, $firstSlash + 2);
     $firstDot = strpos($accountName, '.');
     $accountName = substr($accountName, 0, $firstDot);
     BlobServiceFunctionalTestData::setupData($accountName);
     $hasRoot = false;
     foreach ($this->restProxy->listContainers()->getContainers() as $container) {
         if ($container->getName() == '$root') {
             $hasRoot = true;
             $this->safeDeleteContainerContents('$root');
         } else {
             $this->safeDeleteContainer($container->getName());
         }
     }
     foreach (BlobServiceFunctionalTestData::$testContainerNames as $name) {
         $this->safeCreateContainer($name);
     }
     if (!$hasRoot) {
         $this->safeCreateContainer('$root');
     }
     if (!self::$isOneTimeSetup) {
         self::$isOneTimeSetup = true;
     }
 }
 public static function tearDownAfterClass()
 {
     if (self::$isOneTimeSetup) {
         $integrationTestBase = new IntegrationTestBase();
         $integrationTestBase->setUp();
         if ($integrationTestBase->isEmulated()) {
             $serviceProperties = BlobServiceFunctionalTestData::getDefaultServiceProperties();
             $integrationTestBase->restProxy->setServiceProperties($serviceProperties);
         }
         self::$isOneTimeSetup = false;
     }
     parent::tearDownAfterClass();
 }
 public static function tearDownAfterClass()
 {
     if (self::$isOneTimeSetup) {
         $inst = new IntegrationTestBase();
         $inst->setUp();
         $inst->deleteContainers(self::$_testContainers, self::$_testContainersPrefix);
         $inst->deleteContainers(self::$_creatableContainers, self::$_createableContainersPrefix);
         self::$isOneTimeSetup = false;
     }
     parent::tearDownAfterClass();
 }