private static function getAllAccessConditions()
 {
     $ret = self::getTemporalAccessConditions();
     array_push($ret, AccessCondition::ifMatch(null));
     array_push($ret, AccessCondition::ifMatch(self::$badETag));
     array_push($ret, AccessCondition::ifNoneMatch(null));
     array_push($ret, AccessCondition::ifNoneMatch(self::$badETag));
     return $ret;
 }
 /**
  * @covers WindowsAzure\Blob\BlobRestProxy::createPageBlob
  * @covers WindowsAzure\Blob\BlobRestProxy::getBlob
  * @covers WindowsAzure\Blob\BlobRestProxy::getBlobProperties
  */
 public function testGetBlobWithIfNoneMatchETagAccessConditionWorks()
 {
     // Act
     $this->restProxy->createPageBlob(self::$_test_container_for_blobs, 'test', 4096);
     $props = $this->restProxy->getBlobProperties(self::$_test_container_for_blobs, 'test');
     try {
         $opts = new GetBlobOptions();
         $opts->setAccessCondition(AccessCondition::ifNoneMatch($props->getProperties()->getETag()));
         $this->restProxy->getBlob(self::$_test_container_for_blobs, 'test', $opts);
         $this->fail('getBlob should throw an exception');
     } catch (ServiceException $e) {
         if (!$this->hasSecureEndpoint() && $e->getCode() == TestResources::STATUS_FORBIDDEN) {
             // Proxies can eat the access condition headers of
             // unsecured (http) requests, which causes the authentication
             // to fail, with a 403:Forbidden. There is nothing much that
             // can be done about this, other than ignore it.
             $this->markTestSkipped('Appears that a proxy ate your access condition');
         } else {
             $this->assertEquals(TestResources::STATUS_NOT_MODIFIED, $e->getCode(), 'got the expected exception');
         }
     }
 }
 /**
  * @covers WindowsAzure\Blob\Models\AccessCondition::ifNoneMatch
  * @covers WindowsAzure\Blob\Models\AccessCondition::getHeader
  * @covers WindowsAzure\Blob\Models\AccessCondition::getValue
  */
 public function testIfNoneMatch()
 {
     // Setup
     $expectedHeader = Resources::IF_NONE_MATCH;
     $expectedValue = '0x8CAFB82EFF70C46';
     // Test
     $actual = AccessCondition::ifNoneMatch($expectedValue);
     // Assert
     $this->assertEquals($expectedHeader, $actual->getHeader());
     $this->assertEquals($expectedValue, $actual->getValue());
 }
 /**
  * @covers WindowsAzure\Blob\BlobRestProxy::createPageBlob
  * @covers WindowsAzure\Blob\BlobRestProxy::getBlob
  * @covers WindowsAzure\Blob\BlobRestProxy::getBlobProperties
  */
 public function testGetBlobWithIfNoneMatchETagAccessConditionWorks()
 {
     // Act
     $this->restProxy->createPageBlob(self::$_test_container_for_blobs, 'test', 4096);
     $props = $this->restProxy->getBlobProperties(self::$_test_container_for_blobs, 'test');
     try {
         $opts = new GetBlobOptions();
         $opts->setAccessCondition(AccessCondition::ifNoneMatch($props->getProperties()->getEtag()));
         $this->restProxy->getBlob(self::$_test_container_for_blobs, 'test', $opts);
         $this->fail('getBlob should throw an exception');
     } catch (ServiceException $e) {
         $this->assertEquals(304, $e->getCode(), 'got the expected exception');
     }
 }