public async Task WaitForDeploymentCompletionAsync_WithStatusMessage200Or201_ReturnsDeploymentSucceededMessage(int status) { var responseMessage = "sample response"; var armDeploymentResourceResponse = StrictMock.Of <Response <ArmDeploymentResource> >(); armDeploymentResourceResponse.Setup(m => m.GetRawResponse().Status).Returns(status); armDeploymentResourceResponse.Setup(m => m.ToString()).Returns(responseMessage); var armDeploymentResourceOperation = StrictMock.Of <ArmOperation <ArmDeploymentResource> >(); armDeploymentResourceOperation.Setup(m => m.WaitForCompletionAsync(CancellationToken.None)).Returns(ValueTask.FromResult(armDeploymentResourceResponse.Object)); armDeploymentResourceOperation.Setup(m => m.HasValue).Returns(true); var documentPath = "some_path"; var deploymentId = "bicep_deployment"; var deploymentOperationsCache = new DeploymentOperationsCache(); deploymentOperationsCache.CacheDeploymentOperation(deploymentId, armDeploymentResourceOperation.Object); var bicepDeployWaitForCompletionResponse = await DeploymentHelper.WaitForDeploymentCompletionAsync( deploymentId, documentPath, deploymentOperationsCache); var expectedDeploymentOutputMessage = string.Format(LangServerResources.DeploymentSucceededMessage, documentPath); bicepDeployWaitForCompletionResponse.isSuccess.Should().BeTrue(); bicepDeployWaitForCompletionResponse.outputMessage.Should().Be(expectedDeploymentOutputMessage); }
public async Task WaitForDeploymentCompletionAsync_WhenCalled_RemovesDeployIdFromDeploymentOperationsCache() { var responseMessage = "sample response"; var armDeploymentResourceResponse = StrictMock.Of <Response <ArmDeploymentResource> >(); armDeploymentResourceResponse.Setup(m => m.GetRawResponse().Status).Returns(It.IsAny <int>); armDeploymentResourceResponse.Setup(m => m.ToString()).Returns(responseMessage); var armDeploymentResourceOperation = StrictMock.Of <ArmOperation <ArmDeploymentResource> >(); armDeploymentResourceOperation.Setup(m => m.WaitForCompletionAsync(CancellationToken.None)).Returns(ValueTask.FromResult(armDeploymentResourceResponse.Object)); armDeploymentResourceOperation.Setup(m => m.HasValue).Returns(true); var documentPath = "some_path"; var deploymentId1 = "bicep_deployment_1"; var deploymentId2 = "bicep_deployment_2"; var deploymentOperationsCache = new DeploymentOperationsCache(); deploymentOperationsCache.CacheDeploymentOperation(deploymentId1, armDeploymentResourceOperation.Object); deploymentOperationsCache.CacheDeploymentOperation(deploymentId2, armDeploymentResourceOperation.Object); await DeploymentHelper.WaitForDeploymentCompletionAsync( deploymentId1, documentPath, deploymentOperationsCache); deploymentOperationsCache.FindAndRemoveDeploymentOperation(deploymentId1).Should().BeNull(); deploymentOperationsCache.FindAndRemoveDeploymentOperation(deploymentId2).Should().NotBeNull(); }
public async Task StartDeploymentAsync_WithValidScopeAndInput_ShouldUpdateDeploymentOperationsCache() { var template = @"{ ""$schema"": ""https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#"", ""resources"": [ { ""type"": ""Microsoft.Storage/storageAccounts"", ""apiVersion"": ""2021-06-01"", ""name"": ""storageaccount"", ""location"": ""[resourceGroup().location]"", ""properties"": {} } ] }"; var armDeploymentResourceOperation = StrictMock.Of <ArmOperation <ArmDeploymentResource> >().Object; var deploymentCollection = StrictMock.Of <ArmDeploymentCollection>(); deploymentCollection .Setup(m => m.CreateOrUpdateAsync( It.IsAny <WaitUntil>(), It.IsAny <string>(), It.IsAny <ArmDeploymentContent>(), It.IsAny <CancellationToken>())).Returns(Task.FromResult(armDeploymentResourceOperation)); var deploymentCollectionProvider = StrictMock.Of <IDeploymentCollectionProvider>(); deploymentCollectionProvider .Setup(m => m.GetDeploymentCollection(It.IsAny <ArmClient>(), It.IsAny <ResourceIdentifier>(), LanguageConstants.TargetScopeTypeSubscription)) .Returns(deploymentCollection.Object); var deploymentOperationsCache = new DeploymentOperationsCache(); var deployId = "bicep_deployment1"; var bicepDeployStartResponse = await DeploymentHelper.StartDeploymentAsync( deploymentCollectionProvider.Object, CreateMockArmClient(), "some_path", template, string.Empty, "/subscriptions/07268dd7-4c50-434b-b1ff-67b8164edb41/resourceGroups/bhavyatest", LanguageConstants.TargetScopeTypeSubscription, "eastus", deployId, string.Empty, ParametersFileUpdateOption.None, new List <BicepUpdatedDeploymentParameter>(), "https://portal.azure.com", "deployment_name", deploymentOperationsCache); deploymentOperationsCache.FindAndRemoveDeploymentOperation(deployId).Should().NotBeNull(); }