Exemplo n.º 1
0
        public void OnSendingRequest_404FlagSet_ShouldUsePrimary()
        {
            var message = new HttpPipelineMessage(
                CreateMockRequest(MockPrimaryUri),
                new StorageResponseClassifier(MockSecondaryUri));

            message.SetProperty(Constants.GeoRedundantRead.AlternateHostKey, MockSecondaryUri.Host);
            message.SetProperty(Constants.GeoRedundantRead.ResourceNotReplicated, true);
            var policy = new GeoRedundantReadPolicy(MockSecondaryUri);

            policy.OnSendingRequest(message);

            Assert.AreEqual(MockPrimaryUri.Host, message.Request.Uri.Host);
        }
Exemplo n.º 2
0
        public void OnSendingRequest_FirstTry_ShouldUsePrimary_ShouldSetAlternateToSecondary()
        {
            var message = new HttpPipelineMessage(
                CreateMockRequest(MockPrimaryUri),
                new StorageResponseClassifier(MockSecondaryUri));

            var policy = new GeoRedundantReadPolicy(MockSecondaryUri);

            policy.OnSendingRequest(message);

            Assert.AreEqual(MockPrimaryUri.Host, message.Request.Uri.Host);
            Assert.IsTrue(message.TryGetProperty(Constants.GeoRedundantRead.AlternateHostKey, out object val) &&
                          (string)val == MockSecondaryUri.Host);
        }
Exemplo n.º 3
0
        public void OnSendingRequest_PutRequest_ShouldIgnore()
        {
            MockRequest request = CreateMockRequest(MockPrimaryUri);

            request.Method = RequestMethod.Put;
            var message = new HttpPipelineMessage(
                request,
                new StorageResponseClassifier(MockSecondaryUri));

            var policy = new GeoRedundantReadPolicy(MockSecondaryUri);

            policy.OnSendingRequest(message);

            Assert.AreEqual(MockPrimaryUri.Host, message.Request.Uri.Host);
            Assert.IsFalse(message.TryGetProperty(Constants.GeoRedundantRead.AlternateHostKey, out object val) &&
                           (string)val == MockSecondaryUri.Host);
        }
Exemplo n.º 4
0
        public void OnSendingRequest_404onSecondary_ShouldSetNotFoundFlag_ShouldUsePrimary()
        {
            var message = new HttpPipelineMessage(
                CreateMockRequest(MockSecondaryUri),
                new StorageResponseClassifier(MockSecondaryUri))

            {
                Response = new MockResponse(Constants.HttpStatusCode.NotFound)
            };

            message.SetProperty(Constants.GeoRedundantRead.AlternateHostKey, MockSecondaryUri.Host);
            var policy = new GeoRedundantReadPolicy(MockSecondaryUri);

            policy.OnSendingRequest(message);

            Assert.AreEqual(MockSecondaryUri.Host, message.Request.Uri.Host);
            Assert.IsTrue(message.TryGetProperty(Constants.GeoRedundantRead.ResourceNotReplicated, out object val) &&
                          (bool)val);
        }