示例#1
0
        public void ParseKeyTest()
        {
            string key = "message-20100319|aa/bb/cc";
            string containerSuffix;
            string blobName;

            BlobStorageClientHelper.ParseKey(key, out containerSuffix, out blobName);

            Assert.AreEqual("message-20100319", containerSuffix);
            Assert.AreEqual("aa/bb/cc", blobName);

            try
            {
                BlobStorageClientHelper.ParseKey("invalidKey", out containerSuffix, out blobName);
                Assert.Fail("ArgumentException must be thrown");
            }
            catch (ArgumentException e)
            {
                Assert.IsTrue(e.Message.Contains("key"), "Exception must contain key.");
            }

            try
            {
                // invalid container name suffix: only lower case letters and numbers are allowed
                BlobStorageClientHelper.ParseKey("Message-20100319|aa/bb/cc", out containerSuffix, out blobName);
                Assert.Fail("ArgumentException must be thrown");
            }
            catch (ArgumentException e)
            {
                Assert.IsTrue(e.Message.Contains("Message-20100319"), "Exception must contain the invalid container name suffix.");
            }
        }
示例#2
0
        public void BuildContainerNamePrefixTest()
        {
            string hubName             = "HubName";
            string containerNamePrefix = BlobStorageClientHelper.BuildContainerNamePrefix(hubName);

            Assert.AreEqual("hubname-dtfx", containerNamePrefix);
        }
示例#3
0
        public void BuildSessionBlobKeyTest()
        {
            string sessionId = "abc";
            string key       = BlobStorageClientHelper.BuildSessionBlobKey(sessionId);
            Regex  regex     = new Regex(@"^session-\d{8}|abc/\w{32}$");

            Assert.IsTrue(regex.Match(key).Success);
        }
示例#4
0
        public void BuildMessageBlobKeyTest()
        {
            string   instanceId      = "aa";
            string   executionId     = "bb";
            DateTime messageFireTime = new DateTime(2015, 05, 17);
            string   key             = BlobStorageClientHelper.BuildMessageBlobKey(instanceId, executionId, messageFireTime);
            Regex    regex           = new Regex(@"message-20150517|aa/bb/\w{32}$");

            Assert.IsTrue(regex.Match(key).Success);

            key   = BlobStorageClientHelper.BuildMessageBlobKey(instanceId, executionId, DateTime.MinValue);
            regex = new Regex(@"message-\d{8}|aa/bb/\w{32}$");
            Assert.IsTrue(regex.Match(key).Success);
        }
示例#5
0
        public void IsContainerExpiredTest()
        {
            Assert.AreEqual("ab-cd", BlobStorageClientHelper.BuildContainerName("ab", "cd"));

            Assert.IsTrue(BlobStorageClientHelper.IsContainerExpired("hubname-dtfx-message-20100101", DateTime.UtcNow));
            Assert.IsFalse(BlobStorageClientHelper.IsContainerExpired("hubname-dtfx-session-20990101", DateTime.UtcNow));

            DateTime dateTime = new DateTime(2015, 05, 17);

            Assert.IsTrue(BlobStorageClientHelper.IsContainerExpired("hubname-dtfx-message-20150516", dateTime));
            Assert.IsFalse(BlobStorageClientHelper.IsContainerExpired("hubname-dtfx-message-20150517", dateTime));
            Assert.IsFalse(BlobStorageClientHelper.IsContainerExpired("hubname-dtfx-message-20150518", dateTime));
            Assert.IsTrue(BlobStorageClientHelper.IsContainerExpired("hubname-dtfx-message-20140518", dateTime));

            // invalid containers are ignored
            Assert.IsFalse(BlobStorageClientHelper.IsContainerExpired("invalidContainerName", DateTime.UtcNow));
            Assert.IsFalse(BlobStorageClientHelper.IsContainerExpired("hubname-dtfx-message-20146789", DateTime.UtcNow));
        }