public async void Given_Parameters_CreateOrUpdateWebTestAsync_ShouldReturn_Result(string name, string url, TestStatus testStatus, TestFrequency testFrequency, TestTimeout testTimeout, bool parseDependentRequests, RetriesForWebTestFailure retriesForWebTestFailure, AuthType authType, string accessToken, TestLocations testLocations, string resourceGroup, string location) { var successCriteria = new Mock <SucessCriteriaElement>(); successCriteria.SetupGet(p => p.Timeout).Returns(testTimeout); this._webTest.SetupGet(p => p.TestType).Returns(TestType.UrlPingTest); this._webTest.SetupGet(p => p.Status).Returns(testStatus); this._webTest.SetupGet(p => p.Frequency).Returns(testFrequency); this._webTest.SetupGet(p => p.ParseDependentRequests).Returns(parseDependentRequests); this._webTest.SetupGet(p => p.SuccessCriteria).Returns(successCriteria.Object); this._webTest.SetupGet(p => p.RetriesForWebTestFailure).Returns(retriesForWebTestFailure); this._webTest.SetupGet(p => p.TestLocations).Returns(testLocations); this._appInsights.SetupGet(p => p.ResourceGroup).Returns(resourceGroup); this._settings.SetupGet(p => p.ApplicationInsight).Returns(this._appInsights.Object); var resource = new GenericResourceExtended(location); var resourceResult = new ResourceCreateOrUpdateResult() { StatusCode = HttpStatusCode.OK, Resource = resource }; this._resourceOperations.Setup(p => p.CreateOrUpdateAsync(It.IsAny <string>(), It.IsAny <ResourceIdentity>(), It.IsAny <GenericResource>(), It.IsAny <CancellationToken>())).ReturnsAsync(resourceResult); this._resourceClient.Setup(p => p.Resources).Returns(this._resourceOperations.Object); var id = Guid.NewGuid(); var insightsResource = new ResourceBaseExtended(location) { Id = id.ToString(), Name = name }; var result = await this._service.CreateOrUpdateWebTestAsync(name, url, authType, accessToken, this._webTest.Object, this._resourceClient.Object, insightsResource).ConfigureAwait(false); result.Location.Should().BeEquivalentTo(location); }
/// <summary> /// Creates a new resource. /// </summary> /// <param name="parameters">The create parameters</param> /// <returns>The created resource</returns> public virtual PSResource CreatePSResource(CreatePSResourceParameters parameters) { ResourceIdentity resourceIdentity = parameters.ToResourceIdentity(); if (ResourceManagementClient.ResourceGroups.CheckExistence(parameters.ResourceGroupName).Exists) { WriteVerbose(string.Format("Resource group \"{0}\" is found.", parameters.ResourceGroupName)); } else { parameters.ConfirmAction(parameters.Force, ProjectResources.ResourceGroupDoesntExistsAdd, ProjectResources.AddingResourceGroup, parameters.Name, () => CreateOrUpdateResourceGroup(parameters.ResourceGroupName, parameters.Location, null)); if (!ResourceManagementClient.ResourceGroups.CheckExistence(parameters.ResourceGroupName).Exists) { throw new ArgumentException(ProjectResources.ResourceGroupDoesntExists); } else { WriteVerbose(string.Format("Created resource group '{0}' in location '{1}'", parameters.Name, parameters.Location)); } } bool resourceExists = ResourceManagementClient.Resources.CheckExistence(parameters.ResourceGroupName, resourceIdentity).Exists; Action createOrUpdateResource = () => { WriteVerbose(string.Format("Creating resource \"{0}\" started.", parameters.Name)); Dictionary <string, string> tagDictionary = TagsConversionHelper.CreateTagDictionary(parameters.Tag, validate: true); ResourceCreateOrUpdateResult createOrUpdateResult = ResourceManagementClient.Resources.CreateOrUpdate(parameters.ResourceGroupName, resourceIdentity, new BasicResource { Location = parameters.Location, Properties = SerializeHashtable(parameters.PropertyObject, addValueLayer: false), Tags = tagDictionary }); if (createOrUpdateResult.Resource != null) { WriteVerbose(string.Format("Creating resource \"{0}\" complete.", parameters.Name)); } }; if (resourceExists && !parameters.Force) { parameters.ConfirmAction(parameters.Force, ProjectResources.ResourceAlreadyExists, ProjectResources.NewResourceMessage, parameters.Name, createOrUpdateResource); } else { createOrUpdateResource(); } ResourceGetResult getResult = ResourceManagementClient.Resources.Get(parameters.ResourceGroupName, resourceIdentity); return(getResult.Resource.ToPSResource(this, false)); }