public void ToStringReflectsTheValue()
        {
            var expected  = "This is the value of the SAS";
            var signature = new SharedAccessSignature(string.Empty, "keyName", "key", expected, DateTimeOffset.UtcNow.AddHours(4));

            Assert.That(signature.ToString(), Is.EqualTo(expected));
        }
        public void ExtendExpirationUpdatesTheSignatureValue()
        {
            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.ExtendExpiration(TimeSpan.FromHours(4));
            Assert.That(parsedSignature.Value, Is.Not.EqualTo(initialParsedValue));
        }
        public void ExtendExpirationUpdatesTheExpirationTime()
        {
            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.ExtendExpiration(extendBy);
            Assert.That(parsedSignature.SignatureExpiration, Is.EqualTo(expiration).Within(TimeSpan.FromSeconds(5)));
        }
Example #4
0
        public void ExtendExpirationUpdatesTheSignatureValue()
        {
            var host               = "my.hubthing.com";
            var path               = "someHubInstance";
            var keyName            = "rootShared";
            var key                = "ABC123FFF333";
            var validFor           = TimeSpan.FromMinutes(30);
            var composedSignature  = new SharedAccessSignature(TransportType.AmqpTcp, host, path, keyName, key, validFor);
            var parsedSignature    = new SharedAccessSignature(composedSignature.ToString(), keyName) as SharedAccessSignature;
            var initialParsedValue = parsedSignature.Value;

            parsedSignature.ExtendExpiration(TimeSpan.FromHours(4));
            Assert.That(parsedSignature.Value, Is.Not.EqualTo(initialParsedValue));
        }
Example #5
0
        public void ParseProducesCorrectValues()
        {
            var resource   = "amqps://some.namespace.com/hubName";
            var keyName    = "rootShared";
            var key        = "ABC123FFF333";
            var validFor   = TimeSpan.FromMinutes(30);
            var expiration = DateTimeOffset.UtcNow.Add(validFor);
            var signature  = new SharedAccessSignature(resource, keyName, key, validFor);
            var parsed     = ParseSignature(signature.ToString());

            Assert.That(parsed, Is.Not.Null, "There should have been a result returned.");
            Assert.That(parsed.Resource, Is.EqualTo("amqps://some.namespace.com/hubName"), "The resource should match.");
            Assert.That(parsed.KeyName, Is.EqualTo(keyName), "The key name should have been parsed.");
            Assert.That(parsed.ExpirationTime, Is.EqualTo(expiration).Within(TimeSpan.FromSeconds(5)), "The expiration should be parsed.");
        }
Example #6
0
        public void ExtendExpirationUpdatesTheExpirationTime()
        {
            var host              = "my.hubthing.com";
            var path              = "someHubInstance";
            var keyName           = "rootShared";
            var key               = "ABC123FFF333";
            var validFor          = TimeSpan.FromMinutes(30);
            var extendBy          = TimeSpan.FromHours(1);
            var expiration        = DateTime.UtcNow.Add(extendBy);
            var composedSignature = new SharedAccessSignature(TransportType.AmqpTcp, host, path, keyName, key, validFor);
            var parsedSignature   = new SharedAccessSignature(composedSignature.ToString(), keyName) as SharedAccessSignature;

            parsedSignature.ExtendExpiration(extendBy);
            Assert.That(parsedSignature.ExpirationUtc, Is.EqualTo(expiration).Within(TimeSpan.FromSeconds(5)));
        }
        public void SignatureConstructorsParseTheSignature(Func <string, string, object> constructor,
                                                           string description)
        {
            var            resource          = "amqps://some.namespace.com/hubName";
            var            keyName           = "rootShared";
            var            key               = "ABC123FFF333";
            var            validFor          = TimeSpan.FromMinutes(30);
            DateTimeOffset expiration        = DateTimeOffset.UtcNow.Add(validFor);
            var            composedSignature = new SharedAccessSignature("amqps://some.namespace.com/hubName", keyName, key, validFor);
            var            parsedSignature   = constructor(composedSignature.ToString(), keyName) as SharedAccessSignature;

            Assert.That(parsedSignature, Is.Not.Null, "There should have been a result returned.");
            Assert.That(parsedSignature.Resource, Is.EqualTo(resource), "The resource should match.");
            Assert.That(parsedSignature.SharedAccessKeyName, Is.EqualTo(keyName), "The key name should have been parsed.");
            Assert.That(parsedSignature.SignatureExpiration, Is.EqualTo(expiration).Within(TimeSpan.FromSeconds(5)), "The expiration should be parsed.");
        }
Example #8
0
        public void ParseProducesCorrectValues()
        {
            var host       = "my.hubthing.com";
            var path       = "someHubInstance";
            var keyName    = "rootShared";
            var key        = "ABC123FFF333";
            var validFor   = TimeSpan.FromMinutes(30);
            var expiration = DateTime.UtcNow.Add(validFor);
            var signature  = new SharedAccessSignature(TransportType.AmqpTcp, host, path, keyName, key, validFor);
            var parsed     = SharedAccessSignature.ParseSignature(signature.ToString());

            Assert.That(parsed, Is.Not.Null, "There should have been a result returned.");
            Assert.That(parsed.Resource, Contains.Substring(host.ToLower()), "The resource should contain the host.");
            Assert.That(parsed.Resource, Contains.Substring(path.ToLower()), "The resource should contain the Event Hub path.");
            Assert.That(parsed.KeyName, Is.EqualTo(keyName), "The key name should have been parsed.");
            Assert.That(parsed.ExpirationUtc, Is.EqualTo(expiration).Within(TimeSpan.FromSeconds(5)), "The expiration should be parsed.");
        }
Example #9
0
        public void SignatureConstructorsParseTheSignature(Func <string, string, object> constructor,
                                                           string description)
        {
            var host              = "my.hubthing.com";
            var path              = "someHubInstance";
            var keyName           = "rootShared";
            var key               = "ABC123FFF333";
            var validFor          = TimeSpan.FromMinutes(30);
            var expiration        = DateTime.UtcNow.Add(validFor);
            var composedSignature = new SharedAccessSignature(TransportType.AmqpTcp, host, path, keyName, key, validFor);
            var parsedSignature   = constructor(composedSignature.ToString(), keyName) as SharedAccessSignature;

            Assert.That(parsedSignature, Is.Not.Null, "There should have been a result returned.");
            Assert.That(parsedSignature.Resource, Contains.Substring(host.ToLower()), "The resource should contain the host.");
            Assert.That(parsedSignature.Resource, Contains.Substring(path.ToLower()), "The resource should contain the Event Hub path.");
            Assert.That(parsedSignature.SharedAccessKeyName, Is.EqualTo(keyName), "The key name should have been parsed.");
            Assert.That(parsedSignature.ExpirationUtc, Is.EqualTo(expiration).Within(TimeSpan.FromSeconds(5)), "The expiration should be parsed.");
        }