예제 #1
0
        private static IStorageBlobContainer CreateContainer(IStorageAccount account, string containerName)
        {
            IStorageBlobClient    client    = account.CreateBlobClient();
            IStorageBlobContainer container = client.GetContainerReference(containerName);

            container.CreateIfNotExists();
            return(container);
        }
        private string CreateAblobAndUploadToContainer(IStorageBlobContainer container, string blobContent = "test")
        {
            string            blobName = Path.GetRandomFileName().Replace(".", "");
            IStorageBlockBlob blob     = container.GetBlockBlobReference(blobName);

            container.CreateIfNotExists();
            blob.UploadText(blobContent);
            return(blobName);
        }
예제 #3
0
        public void TestBlobListener()
        {
            const string              containerName = "container";
            IStorageAccount           account       = CreateFakeStorageAccount();
            IStorageBlobContainer     container     = account.CreateBlobClient().GetContainerReference(containerName);
            IBlobListenerStrategy     product       = new ScanContainersStrategy();
            LambdaBlobTriggerExecutor executor      = new LambdaBlobTriggerExecutor();

            product.Register(container, executor);
            product.Start();

            executor.ExecuteLambda = (_) =>
            {
                throw new InvalidOperationException("shouldn't be any blobs in the container");
            };
            product.Execute();

            const string      expectedBlobName = "foo1.csv";
            IStorageBlockBlob blob             = container.GetBlockBlobReference(expectedBlobName);

            container.CreateIfNotExists();
            blob.UploadText("ignore");

            int count = 0;

            executor.ExecuteLambda = (b) =>
            {
                count++;
                Assert.Equal(expectedBlobName, b.Name);
                return(true);
            };
            product.Execute();
            Assert.Equal(1, count);

            // Now run again; shouldn't show up.
            executor.ExecuteLambda = (_) =>
            {
                throw new InvalidOperationException("shouldn't retrigger the same blob");
            };
            product.Execute();
        }