Example #1
0
        public void CloneAndExtendExpirationUpdatesTheSignatureValue()
        {
            var keyName            = "rootShared";
            var key                = "ABC123FFF333";
            var validFor           = TimeSpan.FromMinutes(30);
            var composedSignature  = new SharedAccessSignature("amqps://some.namespace.com/hubName", keyName, key, validFor);
            var parsedSignature    = new SharedAccessSignature(composedSignature.ToString(), keyName) as SharedAccessSignature;
            var initialParsedValue = parsedSignature.Value;

            parsedSignature = parsedSignature.CloneWithNewExpiration(TimeSpan.FromHours(4));
            Assert.That(parsedSignature.Value, Is.Not.EqualTo(initialParsedValue));
        }
Example #2
0
        public void CloneAndExtendExpirationUpdatesTheExpirationTime()
        {
            var            keyName           = "rootShared";
            var            key               = "ABC123FFF333";
            var            validFor          = TimeSpan.FromMinutes(30);
            var            extendBy          = TimeSpan.FromHours(1);
            DateTimeOffset expiration        = DateTimeOffset.UtcNow.Add(extendBy);
            var            composedSignature = new SharedAccessSignature("amqps://some.namespace.com/hubName", keyName, key, validFor);
            var            parsedSignature   = new SharedAccessSignature(composedSignature.ToString(), keyName) as SharedAccessSignature;

            parsedSignature = parsedSignature.CloneWithNewExpiration(extendBy);
            Assert.That(parsedSignature.SignatureExpiration, Is.EqualTo(expiration).Within(TimeSpan.FromSeconds(5)));
        }
Example #3
0
        public void CloneProducesACopy()
        {
            var resource  = "amqps://some.namespace.com/hubName";
            var keyName   = "rootShared";
            var key       = "ABC123FFF333";
            var validFor  = TimeSpan.FromMinutes(30);
            var extendBy  = TimeSpan.FromMinutes(12);
            var signature = new SharedAccessSignature(resource, keyName, key, validFor);

            var clone = signature.CloneWithNewExpiration(extendBy);
            var expectedCloneExpiration = DateTimeOffset.UtcNow.Add(extendBy);

            Assert.That(clone, Is.Not.Null, "There should have been a copy produced.");
            Assert.That(clone, Is.Not.SameAs(signature), "The clone should be a unique instance.");
            Assert.That(clone.Resource, Is.EqualTo(signature.Resource), "The resource should match.");
            Assert.That(clone.SharedAccessKeyName, Is.EqualTo(signature.SharedAccessKeyName), "The key name should match.");
            Assert.That(clone.SharedAccessKey, Is.EqualTo(signature.SharedAccessKey), "The key should match.");
            Assert.That(clone.SignatureExpiration, Is.EqualTo(expectedCloneExpiration).Within(TimeSpan.FromSeconds(5)), "The expiration should have been extended.");
        }
Example #4
0
        public void ExtendValidityValidatesTheKey()
        {
            var signature = new SharedAccessSignature("SharedAccessSignature sr=amqps%3A%2F%2Fmy.eh.com%2Fsomepath%2F&sig=%2BLsuqDlN8Us5lp%2FGdyEUMnU1XA4HdXx%2BJUdtkRNr7qI%3D&se=1562258488&skn=keykeykey&notreal=123");

            Assert.That(() => signature.CloneWithNewExpiration(TimeSpan.FromMilliseconds(21)), Throws.InvalidOperationException);
        }