コード例 #1
0
        public async Task GetQueuesAsync_Prefix()
        {
            QueueServiceClient service = GetServiceClient_SharedKey();
            var         prefix         = "aaa";
            var         queueName      = prefix + GetNewQueueName();
            QueueClient queue          = (await service.CreateQueueAsync(queueName)).Value; // Ensure at least one queue

            try
            {
                AsyncPageable <QueueItem> queues = service.GetQueuesAsync(prefix: prefix);
                IList <QueueItem>         items  = await queues.ToListAsync();

                Assert.AreNotEqual(0, items.Count());
                Assert.IsTrue(items.All(c => c.Name.StartsWith(prefix)));
                Assert.IsNotNull(items.Single(c => c.Name == queueName));
            }
            finally
            {
                await service.DeleteQueueAsync(queueName);
            }
        }
コード例 #2
0
        private static async Task CustomMethod_FindAndDeleteOutgoingRelationshipsAsync(DigitalTwinsClient client, string dtId)
        {
            // Find the relationships for the twin

            try
            {
                // GetRelationshipsAsync will throw an error if a problem occurs
                AsyncPageable <BasicRelationship> rels = client.GetRelationshipsAsync <BasicRelationship>(dtId);

                await foreach (BasicRelationship rel in rels)
                {
                    await client.DeleteRelationshipAsync(dtId, rel.Id).ConfigureAwait(false);

                    Console.WriteLine($"Deleted relationship {rel.Id} from {dtId}");
                }
            }
            catch (RequestFailedException ex)
            {
                Console.WriteLine($"*** Error {ex.Status}/{ex.ErrorCode} retrieving or deleting relationships for {dtId} due to {ex.Message}");
            }
        }
コード例 #3
0
        public async Task GetDeviceClassInstallableUpdates()
        {
            var client   = CreateClient();
            var expected = TestEnvironment;
            AsyncPageable <UpdateId> response = client.GetDeviceClassInstallableUpdatesAsync(expected.DeviceClassId);

            Assert.IsNotNull(response);
            var list = new List <UpdateId>();

            await foreach (var item in response)
            {
                list.Add(item);
            }

            Assert.IsTrue(list.Count > 0);
            Assert.IsTrue(
                list.Any(
                    u => u.Provider == expected.Provider &&
                    u.Name == expected.Model &&
                    u.Version == expected.Version));
        }
コード例 #4
0
        public async Task TestGetReservationOrders()
        {
            AsyncPageable <ReservationOrderResponseResource> response = Collection.GetAllAsync();
            List <ReservationOrderResponseResource>          result   = await response.ToEnumerableAsync();

            Assert.IsNotNull(result);
            Assert.IsTrue(result.Count > 0);
            Assert.IsNotNull(result[0].Data);
            Assert.AreEqual("/providers/microsoft.capacity/reservationOrders/c848cae0-7ade-43c8-a42c-52cc53413a72", result[0].Data.Id.ToString());
            Assert.AreEqual("Microsoft.Capacity/reservationOrders", result[0].Data.ResourceType.ToString());
            Assert.AreEqual("c848cae0-7ade-43c8-a42c-52cc53413a72", result[0].Data.Name);
            Assert.AreEqual(9, result[0].Data.Version);
            Assert.AreEqual("testVM", result[0].Data.DisplayName);
            Assert.AreEqual(ReservationTerm.P1Y, result[0].Data.Term);
            Assert.AreEqual(ProvisioningState.Succeeded, result[0].Data.ProvisioningState);
            Assert.IsNotNull(result[0].Data.Reservations);
            Assert.AreEqual(1, result[0].Data.Reservations.Count);
            Assert.AreEqual("/providers/microsoft.capacity/reservationOrders/c848cae0-7ade-43c8-a42c-52cc53413a72/reservations/34a9427a-0966-4186-86dd-bbcf720913c0", result[0].Data.Reservations[0].Id.ToString());
            Assert.AreEqual(1, result[0].Data.OriginalQuantity);
            Assert.AreEqual(ReservationBillingPlan.Upfront, result[0].Data.BillingPlan);
        }
コード例 #5
0
        public async Task TestListConfigurations()
        {
            ConfigurationFilters configurationFilters = new(GetHierarchyInformation());

            configurationFilters.FilterableProperty.Add(new FilterableProperty(SupportedFilterTypes.ShipToCountries,
                                                                               new List <string>()
            {
                "US"
            }));
            ConfigurationsRequest configurationsRequest = new(
                new List <ConfigurationFilters>()
            {
                configurationFilters
            });
            AsyncPageable <ProductConfiguration> configurations = EdgeOrderExtensions.GetConfigurationsAsync(Subscription,
                                                                                                             configurationsRequest);
            List <ProductConfiguration> configurationsResult = await configurations.ToEnumerableAsync();

            Assert.NotNull(configurationsResult);
            Assert.IsTrue(configurationsResult.Count >= 1);
        }
コード例 #6
0
        public async Task CanGetTags()
        {
            // Arrange
            var client = CreateClient();

            // Act
            AsyncPageable <TagProperties> tags = client.GetTagsAsync();

            bool gotV1Tag = false;

            await foreach (TagProperties tag in tags)
            {
                if (tag.Name.Contains("v1"))
                {
                    gotV1Tag = true;
                }
            }

            // Assert
            Assert.IsTrue(gotV1Tag);
        }
コード例 #7
0
        public async Task TestListProductFamilies()
        {
            IList <FilterableProperty> filterableProperty = new List <FilterableProperty>()
            {
                new FilterableProperty(SupportedFilterTypes.ShipToCountries, new List <string>()
                {
                    "US"
                })
            };
            IDictionary <string, IList <FilterableProperty> > filterableProperties =
                new Dictionary <string, IList <FilterableProperty> >()
            {
                { "azurestackedge", filterableProperty }
            };
            ProductFamiliesRequest        productFamiliesRequest = new(filterableProperties);
            AsyncPageable <ProductFamily> productFamilies        = EdgeOrderExtensions.GetProductFamiliesAsync(Subscription, productFamiliesRequest);
            List <ProductFamily>          productFamiliesResult  = await productFamilies.ToEnumerableAsync();

            Assert.NotNull(productFamiliesResult);
            Assert.IsTrue(productFamiliesResult.Count >= 1);
        }
コード例 #8
0
        public static async Task <string> FindParentAsync(DigitalTwinsClient client, string child, string relname, ILogger log)
        {
            // Find parent using incoming relationships
            try
            {
                AsyncPageable <IncomingRelationship> rels = client.GetIncomingRelationshipsAsync(child);

                await foreach (IncomingRelationship ie in rels)
                {
                    if (ie.RelationshipName == relname)
                    {
                        return(ie.SourceId);
                    }
                }
            }
            catch (RequestFailedException exc)
            {
                log.LogInformation($"*** Error in retrieving parent:{exc.Status}:{exc.Message}");
            }
            return(null);
        }
コード例 #9
0
        /// <summary>
        /// ViewMembersInAThread() - view existing members in a chat thread
        /// </summary>
        /// <returns></returns>
        private static async Task ViewMembersInAThread()
        {
            Console.WriteLine("\n# Viewing members in a thread");

            Console.Write("Enter thread id: ");
            var threadId = Console.ReadLine();

            Uri endpoint = new Uri("https://ACS-INSTANCE.communication.azure.com/");

            CommunicationUserCredential communicationUserCredential = new CommunicationUserCredential(token);
            ChatClient chatClient = new ChatClient(endpoint, communicationUserCredential);

            ChatThreadClient chatThreadClient = chatClient.GetChatThreadClient(threadId);

            AsyncPageable <ChatThreadMember> allMembers = chatThreadClient.GetMembersAsync();

            await foreach (ChatThreadMember member in allMembers)
            {
                Console.WriteLine($"{member.DisplayName}");
            }
        }
        public async Task GetAllAvailabilitySets()
        {
            #region Snippet:Managing_Availability_Set_GetAllAvailabilitySets
            // First, initialize the ArmClient and get the default subscription
            ArmClient armClient = new ArmClient(new DefaultAzureCredential());
            // Now we get a ResourceGroupResource collection for that subscription
            SubscriptionResource subscription = await armClient.GetDefaultSubscriptionAsync();
            ResourceGroupCollection rgCollection = subscription.GetResourceGroups();

            string rgName = "myRgName";
            ResourceGroupResource resourceGroup = await rgCollection.GetAsync(rgName);
            // First, we get the availability set collection from the resource group
            AvailabilitySetCollection availabilitySetCollection = resourceGroup.GetAvailabilitySets();
            // With GetAllAsync(), we can get a list of the availability sets in the collection
            AsyncPageable<AvailabilitySetResource> response = availabilitySetCollection.GetAllAsync();
            await foreach (AvailabilitySetResource availabilitySet in response)
            {
                Console.WriteLine(availabilitySet.Data.Name);
            }
            #endregion Snippet:Managing_Availability_Set_GetAllAvailabilitySets
        }
コード例 #11
0
        public async Task GetRevisionsByKeyAndLabel()
        {
            // The service keeps revision history even after the key was removed
            // Avoid reusing ids
            Recording.DisableIdReuse();

            ConfigurationClient  service     = GetClient();
            ConfigurationSetting testSetting = CreateSetting();

            //Prepare environment
            ConfigurationSetting setting = testSetting;

            setting.Key = GenerateKeyId("key-");
            ConfigurationSetting testSettingUpdate = setting.Clone();

            testSettingUpdate.Label = "test_label_update";

            try
            {
                await service.SetConfigurationSettingAsync(setting);

                await service.SetConfigurationSettingAsync(testSettingUpdate);

                AsyncPageable <ConfigurationSetting> revisions = service.GetRevisionsAsync(testSettingUpdate.Key, testSettingUpdate.Label, CancellationToken.None);

                int resultsReturned = 0;
                await foreach (ConfigurationSetting value in revisions)
                {
                    Assert.True(ConfigurationSettingEqualityComparer.Instance.Equals(value, testSettingUpdate));
                    resultsReturned++;
                }

                Assert.AreEqual(1, resultsReturned);
            }
            finally
            {
                AssertStatus200(await service.DeleteConfigurationSettingAsync(setting.Key, setting.Label));
                AssertStatus200(await service.DeleteConfigurationSettingAsync(testSettingUpdate.Key, testSettingUpdate.Label));
            }
        }
コード例 #12
0
        public async Task QueryTablesAsync()
        {
            string storageUri        = StorageUri;
            string accountName       = StorageAccountName;
            string storageAccountKey = PrimaryStorageAccountKey;
            string tableName         = "OfficeSupplies3p2";
            char   label             = 'A';

            var serviceClient = new TableServiceClient(
                new Uri(storageUri),
                new TableSharedKeyCredential(accountName, storageAccountKey));

            for (int i = 0; i < 10; i++)
            {
                await serviceClient.CreateTableAsync(tableName + (char)(label + i));
            }

            try
            {
                #region Snippet:TablesSample3QueryTablesAsync
                // Use the <see cref="TableServiceClient"> to query the service. Passing in OData filter strings is optional.
                AsyncPageable <TableItem> queryTableResults = serviceClient.GetTablesAsync(filter: $"TableName gt '{tableName + (char)(label + 4)}'");

                Console.WriteLine("The following are the names of the tables in the query results:");

                // Iterate the <see cref="Pageable"> in order to access individual queried tables.
                await foreach (TableItem table in queryTableResults)
                {
                    Console.WriteLine(table.TableName);
                }
                #endregion
            }
            finally
            {
                for (int i = 0; i < 10; i++)
                {
                    await serviceClient.DeleteTableAsync(tableName + (char)(label + i));
                }
            }
        }
        /// <summary>List files</summary>
        /// <param name="directoryName">The directory of interest or null if you want the root directory</param>
        /// <param name="returnDirectoriesAndFiles">If true, you will get both directories and file.  If false, you will get only files.</param>
        /// <param name="cancellationToken"></param>
        /// <param name="options"></param>
        /// <returns></returns>
        public async Task <List <ShareFileItem> > ListFilesAsync(string directoryName,
                                                                 bool returnDirectoriesAndFiles, CancellationToken cancellationToken = default,
                                                                 ShareDirectoryGetFilesAndDirectoriesOptions options = null)
        {
            var result = new List <ShareFileItem>();

            ShareDirectoryClient directory = string.IsNullOrWhiteSpace(directoryName) ?
                                             _share.GetRootDirectoryClient() :
                                             _share.GetDirectoryClient(directoryName);


            // For >= C# 8.0 use:
            //await foreach (ShareFileItem fileItem in directory.GetFilesAndDirectoriesAsync(options, cancellationToken))
            //{
            //    result.Add(fileItem);
            //}

            // For < C# 8.0 use:
            AsyncPageable <ShareFileItem>    filePages  = directory.GetFilesAndDirectoriesAsync(options, cancellationToken);
            IAsyncEnumerator <ShareFileItem> enumerator = filePages.GetAsyncEnumerator();

            try
            {
                while (await enumerator.MoveNextAsync())
                {
                    if (returnDirectoriesAndFiles == false && enumerator.Current.IsDirectory)
                    {
                        continue;
                    }
                    result.Add(enumerator.Current);
                }
            }
            finally
            {
                await enumerator.DisposeAsync();
            }


            return(result);
        }
コード例 #14
0
        public async Task UsageTest()
        {
            string resourceGroupName = Recording.GenerateAssetName("csmrg");

            string location = await NetworkManagementTestUtilities.GetResourceLocation(ResourceManagementClient, "Microsoft.Network/networkSecurityGroups");

            await ResourceGroupsOperations.CreateOrUpdateAsync(resourceGroupName, new ResourceGroup(location));

            string networkSecurityGroupName           = Recording.GenerateAssetName("azsmnet");
            NetworkSecurityGroup networkSecurityGroup = new NetworkSecurityGroup()
            {
                Location = location,
            };

            // Put Nsg
            NetworkSecurityGroupsCreateOrUpdateOperation putNsgResponseOperation = await NetworkManagementClient.NetworkSecurityGroups.StartCreateOrUpdateAsync(resourceGroupName, networkSecurityGroupName, networkSecurityGroup);

            Response <NetworkSecurityGroup> putNsgResponse = await WaitForCompletionAsync(putNsgResponseOperation);

            Assert.AreEqual("Succeeded", putNsgResponse.Value.ProvisioningState.ToString());

            Response <NetworkSecurityGroup> getNsgResponse = await NetworkManagementClient.NetworkSecurityGroups.GetAsync(resourceGroupName, networkSecurityGroupName);

            // Query for usages
            AsyncPageable <Usage> usagesResponseAP = NetworkManagementClient.Usages.ListAsync(getNsgResponse.Value.Location.Replace(" ", string.Empty));
            List <Usage>          usagesResponse   = await usagesResponseAP.ToEnumerableAsync();

            // Verify that the strings are populated
            Assert.NotNull(usagesResponse);
            Assert.True(usagesResponse.Any());

            foreach (Usage usage in usagesResponse)
            {
                Assert.True(usage.Limit > 0);
                Assert.NotNull(usage.Name);
                Assert.True(!string.IsNullOrEmpty(usage.Name.LocalizedValue));
                Assert.True(!string.IsNullOrEmpty(usage.Name.Value));
            }
        }
コード例 #15
0
        private async Task <Feature> GetFirst(AsyncPageable <Feature> asyncPageable, bool?isRegistered = null)
        {
            Feature result = null;

            await foreach (var feature in asyncPageable)
            {
                if (isRegistered.HasValue)
                {
                    if (isRegistered.Value == (feature.Data.Properties.State == "Registered"))
                    {
                        result = feature;
                        break;
                    }
                }
                else
                {
                    result = feature;
                    break;
                }
            }
            return(result);
        }
コード例 #16
0
        public async Task CanGetRepositories()
        {
            // Arrange
            var client = CreateClient();

            // Act
            AsyncPageable <string> repositories = client.GetRepositoryNamesAsync();

            bool gotHelloWorld = false;

            await foreach (string repository in repositories)
            {
                if (repository.Contains("library/hello-world"))
                {
                    gotHelloWorld = true;
                    break;
                }
            }

            // Assert
            Assert.IsTrue(gotHelloWorld);
        }
コード例 #17
0
        public async Task CanGetRepositoriesWithCustomPageSize()
        {
            // Arrange
            var client           = CreateClient();
            int pageSize         = 2;
            int minExpectedPages = 2;

            // Act
            AsyncPageable <string> repositories = client.GetRepositoryNamesAsync();
            var pages = repositories.AsPages(pageSizeHint: pageSize);

            int pageCount = 0;

            await foreach (var page in pages)
            {
                Assert.IsTrue(page.Values.Count <= pageSize);
                pageCount++;
            }

            // Assert
            Assert.GreaterOrEqual(pageCount, minExpectedPages);
        }
コード例 #18
0
            public static async Task AssertPaginationAsync(AsyncPageable <T> enumerableResource, int expectedPageSize, int expectedTotalResources)
            {
                string?continuationToken = null;
                int    expectedRoundTrips = (expectedTotalResources / expectedPageSize) + 1;
                int    actualPageSize, actualTotalResources = 0, actualRoundTrips = 0;

                await foreach (Page <T> page in enumerableResource.AsPages(continuationToken, expectedPageSize))
                {
                    actualRoundTrips++;
                    actualPageSize = 0;
                    foreach (T resource in page.Values)
                    {
                        actualPageSize++;
                        actualTotalResources++;
                    }
                    continuationToken = page.ContinuationToken;
                    Assert.GreaterOrEqual(expectedPageSize, actualPageSize);
                }
                Assert.IsNull(continuationToken);
                Assert.AreEqual(expectedTotalResources, actualTotalResources);
                Assert.AreEqual(expectedRoundTrips, actualRoundTrips);
            }
コード例 #19
0
        public async Task CachesDifferentResponse(bool isAsync)
        {
            string getClientRequestId;

            if (isAsync)
            {
                Response <KeyVaultSecret> response = await _fixture.Client.GetSecretAsync(_fixture.SecretName);

                getClientRequestId = response.GetRawResponse().ClientRequestId;
            }
            else
            {
                Response <KeyVaultSecret> response = _fixture.Client.GetSecret(_fixture.SecretName);
                getClientRequestId = response.GetRawResponse().ClientRequestId;
            }

            string listClientRequestId = null;

            if (isAsync)
            {
                AsyncPageable <SecretProperties> response = _fixture.Client.GetPropertiesOfSecretsAsync();
                await foreach (Page <SecretProperties> page in response.AsPages())
                {
                    listClientRequestId = page.GetRawResponse().ClientRequestId;
                    break;
                }
            }
            else
            {
                Pageable <SecretProperties> response = _fixture.Client.GetPropertiesOfSecrets();
                foreach (Page <SecretProperties> page in response.AsPages())
                {
                    listClientRequestId = page.GetRawResponse().ClientRequestId;
                    break;
                }
            }

            Assert.NotEqual(getClientRequestId, listClientRequestId);
        }
コード例 #20
0
        public async Task CanGetArtifactsWithCustomPageSize()
        {
            // Arrange
            var client           = CreateClient();
            int pageSize         = 2;
            int minExpectedPages = 2;

            // Act
            AsyncPageable <RegistryArtifactProperties> artifacts = client.GetRegistryArtifactsAsync();
            var pages = artifacts.AsPages(pageSizeHint: pageSize);

            int pageCount = 0;

            await foreach (var page in pages)
            {
                Assert.GreaterOrEqual(page.Values.Count, pageSize);
                pageCount++;
            }

            // Assert
            Assert.IsTrue(pageCount >= minExpectedPages);
        }
コード例 #21
0
        public async Task CanGetTagsWithCustomPageSize()
        {
            // Arrange
            var client           = CreateClient();
            int pageSize         = 2;
            int minExpectedPages = 2;

            // Act
            AsyncPageable <TagProperties> tags = client.GetTagsAsync();
            var pages = tags.AsPages(pageSizeHint: pageSize);

            int pageCount = 0;

            await foreach (var page in pages)
            {
                Assert.IsTrue(page.Values.Count <= pageSize);
                pageCount++;
            }

            // Assert
            Assert.IsTrue(pageCount >= minExpectedPages);
        }
コード例 #22
0
        public async Task OrderInGetReadReceiptsIteratorIsNotAltered()
        {
            //arrange
            var baseSenderId   = "8:acs:1b5cc06b-f352-4571-b1e6-d9b259b7c776_00000007-0464-274b-b274-5a3a0d00010";
            var baseReadOnDate = DateTimeOffset.Parse("2020-12-15T00:00:00Z");
            ChatThreadClient chatThreadClient = CreateMockChatThreadClient(200, AllReadReceiptsApiResponsePayload);

            //act
            AsyncPageable <ChatMessageReadReceipt> allReadReceipts = chatThreadClient.GetReadReceiptsAsync();

            //assert
            int idCounter = 0;

            await foreach (ChatMessageReadReceipt readReceipt in allReadReceipts)
            {
                idCounter++;
                Assert.AreEqual($"{idCounter}", readReceipt.ChatMessageId);
                Assert.AreEqual($"{baseSenderId}{idCounter}", ((UnknownIdentifier)readReceipt.Sender).Id);
                Assert.AreEqual(baseReadOnDate.AddSeconds(idCounter), readReceipt.ReadOn);
            }
            Assert.AreEqual(5, idCounter);
        }
コード例 #23
0
        /// <summary>
        /// Gets all the models within the ADT service instance.
        /// </summary>
        public async Task GetAllModelsAsync()
        {
            PrintHeader("LISTING MODELS");
            try
            {
                // Get all the twin types

                #region Snippet:DigitalTwinsSampleGetModels

                AsyncPageable <ModelData> allModels = client.GetModelsAsync();
                await foreach (ModelData model in allModels)
                {
                    Console.WriteLine($"Retrieved model with Id {model.Id}, display name {model.DisplayName["en"]}, upload time {model.UploadTime}, and decommissioned: {model.Decommissioned}");
                }

                #endregion Snippet:DigitalTwinsSampleGetModels
            }
            catch (RequestFailedException ex)
            {
                FatalError($"Failed to get all the models due to:\n{ex}");
            }
        }
コード例 #24
0
        public async Task SendingGroupSMSMessageWithOptions()
        {
            SmsClient smsClient = CreateSmsClient();

            #region Snippet:Azure_Communication_SmsClient_Send_GroupSmsWithOptions
            AsyncPageable <SmsSendResult> results = smsClient.SendAsync(
                //@@ from: "<from-phone-number>", // Your E.164 formatted from phone number used to send SMS
                //@@ to: new string[] { "<to-phone-number-1>", "<to-phone-number-2>" }, // E.164 formatted recipient phone numbers
                /*@@*/ from: TestEnvironment.FromPhoneNumber,
                /*@@*/ to: new string[] { TestEnvironment.ToPhoneNumber, TestEnvironment.ToPhoneNumber },
                message: "Weekly Promotion!",
                options: new SmsSendOptions(enableDeliveryReport: true) // OPTIONAL
            {
                Tag = "marketing",                                      // custom tags
            });
            await foreach (SmsSendResult result in results)
            {
                Console.WriteLine($"Sms id: {result.MessageId}");
                Console.WriteLine($"Send Result Successful: {result.Successful}");
            }
            #endregion Snippet:Azure_Communication_SmsClient_Send_GroupSmsWithOptions
        }
コード例 #25
0
        public static async Task ReadProperty(DigitalTwinsClient client)
        {
            string dtID;
            string prop;

            Console.Write("Digital twin ID: ");
            dtID = Console.ReadLine();

            Console.Write("Property name: ");
            prop = Console.ReadLine();

            string q = string.Format("SELECT v.{0}, v.$metadata.{0}.lastUpdateTime FROM DIGITALTWINS v WHERE v.$dtId = '{1}' AND IS_PRIMITIVE(v.{0}) and IS_PRIMITIVE(v.$metadata.{0}.lastUpdateTime)", prop, dtID);

            Console.WriteLine("Query: {0}\n\r", q);

            AsyncPageable <string> result = client.QueryAsync(q);

            await foreach (string s in result)
            {
                Console.WriteLine(s);
            }
        }
コード例 #26
0
        public async Task FindAndDeleteOutgoingRelationshipsAsync(string dtId)
        {
            // Find the relationships for the twin

            try
            {
                // GetRelationshipsAsync will throw if an error occurs
                AsyncPageable <string> relsJson = client.GetRelationshipsAsync(dtId);

                await foreach (string relJson in relsJson)
                {
                    var rel = System.Text.Json.JsonSerializer.Deserialize <BasicRelationship>(relJson);
                    await client.DeleteRelationshipAsync(dtId, rel.Id).ConfigureAwait(false);

                    Console.WriteLine($"Deleted relationship {rel.Id} from {dtId}");
                }
            }
            catch (RequestFailedException ex)
            {
                Console.WriteLine($"*** Error {ex.Status}/{ex.ErrorCode} retrieving or deleting relationships for {dtId} due to {ex.Message}");
            }
        }
コード例 #27
0
        public async Task CanGetManifestsOrdered()
        {
            // Arrange
            string repositoryName = $"library/node";
            string tag            = "newest";
            var    client         = CreateClient();
            var    repository     = client.GetRepository(repositoryName);
            var    artifact       = client.GetArtifact(repositoryName, tag);

            try
            {
                if (Mode != RecordedTestMode.Playback)
                {
                    await ImportImage(TestEnvironment.Registry, repositoryName, tag);
                }

                // Act
                AsyncPageable <ArtifactManifestProperties> manifests = repository.GetManifestsAsync(ManifestOrderBy.LastUpdatedOnDescending);

                // Assert
                string digest = null;
                await foreach (ArtifactManifestProperties manifest in manifests)
                {
                    // Make sure we're looking at a manifest list, which has the tag
                    if (manifest.References != null && manifest.References.Count > 0)
                    {
                        digest = manifest.Digest;
                        Assert.That(manifest.RepositoryName.Contains(repositoryName));
                        Assert.That(manifest.Tags.Contains(tag));
                        break;
                    }
                }
            }
            finally
            {
                // Clean up
                await artifact.DeleteAsync();
            }
        }
コード例 #28
0
        public async Task CanGetArtifactsOrdered()
        {
            // Arrange
            string repository = $"library/node";
            string tag        = "newest";
            var    client     = CreateClient(repository);

            try
            {
                if (Mode != RecordedTestMode.Playback)
                {
                    await ImportImage(repository, tag);
                }

                // Act
                AsyncPageable <RegistryArtifactProperties> artifacts = client.GetRegistryArtifactsAsync(new GetRegistryArtifactsOptions(RegistryArtifactOrderBy.LastUpdatedOnDescending));

                // Assert
                string digest = null;
                await foreach (RegistryArtifactProperties artifact in artifacts)
                {
                    // Make sure we're looking at a manifest list, which has the tag
                    if (artifact.References != null && artifact.References.Count > 0)
                    {
                        digest = artifact.Digest;
                        Assert.That(artifact.Repository.Contains(repository));
                        Assert.That(artifact.Tags.Contains(tag));
                        break;
                    }
                }
            }
            finally
            {
                // Clean up
                var properties = await client.GetTagPropertiesAsync(tag).ConfigureAwait(false);

                await client.DeleteRegistryArtifactAsync(properties.Value.Digest);
            }
        }
コード例 #29
0
        public async Task GetCursor()
        {
            // Arrange
            string shardPath   = "shardPath";
            long   chunkIndex  = 2;
            long   blockOffset = 100;
            long   eventIndex  = 200;

            ShardCursor shardCursor = new ShardCursor(
                chunkIndex,
                blockOffset,
                eventIndex);

            Mock <BlobContainerClient> containerClient = new Mock <BlobContainerClient>(MockBehavior.Strict);
            Mock <ChunkFactory>        chunkFactory    = new Mock <ChunkFactory>(MockBehavior.Strict);
            Mock <Chunk> chunk = new Mock <Chunk>(MockBehavior.Strict);

            if (IsAsync)
            {
                AsyncPageable <BlobHierarchyItem> asyncPageable = PageResponseEnumerator.CreateAsyncEnumerable(GetChunkPagesFuncAsync);

                containerClient.Setup(r => r.GetBlobsByHierarchyAsync(
コード例 #30
0
        public async Task AsyncPageableAsPages()
        {
            // create a client
            var client = new SecretClient(new Uri("http://example.com"), new DefaultAzureCredential());

            #region Snippet:AsyncPageableAsPages
            // call a service method, which returns AsyncPageable<T>
            AsyncPageable <SecretProperties> response = client.GetPropertiesOfSecretsAsync();

            await foreach (Page <SecretProperties> page in response.AsPages())
            {
                // enumerate through page items
                foreach (SecretProperties secretProperties in page.Values)
                {
                    Console.WriteLine(secretProperties.Name);
                }

                // get continuation token that can be used in AsPages call to resume enumeration
                Console.WriteLine(page.ContinuationToken);
            }
            #endregion
        }