Example #1
0
        public void AzureBlobAnalyticsLink_Validate(string name, string dataverse, string connectionString, string accountName, string accountKey, string sharedAccessSignature, string blobEndpoint, string endpointSuffix, bool expectValid)
        {
            var link = new AzureBlobExternalAnalyticsLink(name, dataverse)
            {
                ConnectionString      = connectionString,
                AccountName           = accountName,
                AccountKey            = accountKey,
                SharedAccessSignature = sharedAccessSignature,
                BlobEndpoint          = blobEndpoint,
                EndpointSuffix        = endpointSuffix
            };

            Assert.Equal("azureblob", link.LinkType);

            var isValid = link.TryValidateForRequest(out var errors);

            Assert.Equal(expectValid, isValid);
            if (expectValid)
            {
                Assert.Empty(errors);
            }
            else
            {
                Assert.NotEmpty(errors);
                Assert.Throws <ArgumentException>(link.ValidateForRequest);
            }
        }
        public async Task AnalyticsIndexes_CreateLink_AzureBlob()
        {
            // this test is useful for running locally, but outside the scope of normal Combination Tests since they run against a single cluster
            // Make sure you do not commit any real user/password data if you change this locally.

            // TODO: still need to test 'azureblob' against a server version that supports it.
            // (requires DP enabled)
            var linkName      = nameof(AnalyticsIndexes_CreateLink_AzureBlob) + Guid.NewGuid().ToString();
            var dataverseName = "default";
            var cluster       = await _fixture.GetCluster().ConfigureAwait(false);

            var manager = cluster.AnalyticsIndexes;
            await manager.CreateDataverseAsync(dataverseName, (new Couchbase.Management.Analytics.CreateAnalyticsDataverseOptions()).IgnoreIfExists(true));

            var link = new AzureBlobExternalAnalyticsLink(linkName, dataverseName)
                       .WithConnectionString("http://user@localhost");

            await manager.CreateLinkAsync(link);

            _outputHelper.WriteLine($"Create link succeeded for {link}");
        }