Esempio n. 1
0
 /// <summary>
 /// Update metadata of DigitalTwinsInstance.
 /// </summary>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='resourceGroupName'>
 /// The name of the resource group that contains the DigitalTwinsInstance.
 /// </param>
 /// <param name='resourceName'>
 /// The name of the DigitalTwinsInstance.
 /// </param>
 /// <param name='digitalTwinsPatchDescription'>
 /// The DigitalTwinsInstance and security metadata.
 /// </param>
 public static DigitalTwinsDescription BeginUpdate(this IDigitalTwinsOperations operations, string resourceGroupName, string resourceName, DigitalTwinsPatchDescription digitalTwinsPatchDescription)
 {
     return(operations.BeginUpdateAsync(resourceGroupName, resourceName, digitalTwinsPatchDescription).GetAwaiter().GetResult());
 }
Esempio n. 2
0
 /// <summary>
 /// Update metadata of DigitalTwinsInstance.
 /// </summary>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='resourceGroupName'>
 /// The name of the resource group that contains the DigitalTwinsInstance.
 /// </param>
 /// <param name='resourceName'>
 /// The name of the DigitalTwinsInstance.
 /// </param>
 /// <param name='digitalTwinsPatchDescription'>
 /// The DigitalTwinsInstance and security metadata.
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task <DigitalTwinsDescription> BeginUpdateAsync(this IDigitalTwinsOperations operations, string resourceGroupName, string resourceName, DigitalTwinsPatchDescription digitalTwinsPatchDescription, CancellationToken cancellationToken = default(CancellationToken))
 {
     using (var _result = await operations.BeginUpdateWithHttpMessagesAsync(resourceGroupName, resourceName, digitalTwinsPatchDescription, null, cancellationToken).ConfigureAwait(false))
     {
         return(_result.Body);
     }
 }
        public async Task TestDigitalTwinsLifecycle()
        {
            using var context = MockContext.Start(GetType());

            Initialize(context);

            // Create Resource Group
            ResourceGroup rg = await ResourcesClient.ResourceGroups.CreateOrUpdateAsync(
                DefaultResourceGroupName,
                new ResourceGroup
            {
                Location = DefaultLocation,
            });

            try
            {
                // Check if instance exists and delete
                CheckNameResult dtNameCheck = await DigitalTwinsClient.DigitalTwins.CheckNameAvailabilityAsync(
                    DefaultLocation,
                    DefaultInstanceName);

                if (!dtNameCheck.NameAvailable.Value)
                {
                    DigitalTwinsDescription dtDelete = await DigitalTwinsClient.DigitalTwins.DeleteAsync(
                        rg.Name,
                        DefaultInstanceName);

                    dtDelete.ProvisioningState.Should().Be(ProvisioningState.Deleted);

                    dtNameCheck = await DigitalTwinsClient.DigitalTwins.CheckNameAvailabilityAsync(
                        DefaultLocation,
                        DefaultInstanceName);

                    dtNameCheck.NameAvailable.Should().BeTrue();
                }

                // Create DigitalTwins resource
                var dtInstance = await DigitalTwinsClient.DigitalTwins.CreateOrUpdateAsync(
                    rg.Name,
                    DefaultInstanceName,
                    new DigitalTwinsDescription
                {
                    Location = DefaultLocation,
                });

                try
                {
                    dtInstance.Should().NotBeNull();
                    dtInstance.Name.Should().Be(DefaultInstanceName);
                    dtInstance.Location.Should().Be(DefaultLocation);

                    // Add and Get Tags
                    const string key2   = "key2";
                    const string value2 = "value2";
                    var          patch  = new DigitalTwinsPatchDescription(
                        tags: new Dictionary <string, string>
                    {
                        { "key1", "value1" },
                        { key2, value2 },
                    });
                    dtInstance = await DigitalTwinsClient.DigitalTwins.UpdateAsync(
                        rg.Name,
                        dtInstance.Name,
                        patch);

                    dtInstance.Should().NotBeNull();
                    dtInstance.Tags.Count().Should().Be(2);
                    dtInstance.Tags[key2].Should().Be(value2);

                    // List DigitalTwins instances in Resource Group
                    var twinsResources = await DigitalTwinsClient.DigitalTwins.ListByResourceGroupAsync(rg.Name);

                    twinsResources.Count().Should().BeGreaterThan(0);

                    // Get all of the available operations, ensure CRUD
                    var operationList = await DigitalTwinsClient.Operations.ListAsync();

                    operationList.Count().Should().BeGreaterThan(0);
                    Assert.Contains(operationList, e => e.Name.Equals($"Microsoft.DigitalTwins/digitalTwinsInstances/read", StringComparison.OrdinalIgnoreCase));
                    Assert.Contains(operationList, e => e.Name.Equals($"Microsoft.DigitalTwins/digitalTwinsInstances/write", StringComparison.OrdinalIgnoreCase));
                    Assert.Contains(operationList, e => e.Name.Equals($"Microsoft.DigitalTwins/digitalTwinsInstances/delete", StringComparison.OrdinalIgnoreCase));

                    // Test other operations

                    // Register Operation
                    var registerOperations = operationList.Where(e => e.Name.Contains($"Microsoft.DigitalTwins/register"));
                    registerOperations.Count().Should().BeGreaterThan(0);

                    // Twin Operations
                    var twinOperations = operationList.Where(e => e.Name.Contains($"Microsoft.DigitalTwins/digitaltwins"));
                    twinOperations.Count().Should().BeGreaterThan(0);

                    // Event Route Operations
                    var eventRouteOperations = operationList.Where(e => e.Name.Contains($"Microsoft.DigitalTwins/eventroutes"));
                    eventRouteOperations.Count().Should().BeGreaterThan(0);

                    // Model operations
                    var modelOperations = operationList.Where(e => e.Name.Contains($"Microsoft.DigitalTwins/models"));
                    modelOperations.Count().Should().BeGreaterThan(0);
                }
                finally
                {
                    // Delete instance
                    DigitalTwinsDescription deleteOp = await DigitalTwinsClient.DigitalTwins.BeginDeleteAsync(
                        rg.Name,
                        dtInstance.Name);

                    deleteOp.ProvisioningState.Should().Be(ProvisioningState.Deleting);
                }
            }
            finally
            {
                await ResourcesClient.ResourceGroups.DeleteAsync(rg.Name);
            }
        }