public virtual PSHub CreatePSHub(CreatePSHubParameters parameters) { if (parameters == null) { throw new ArgumentNullException("parameters"); } PSHub hub = null; Action createHub = () => { hub = new PSHub( this.CreateOrUpdateHub( parameters.ResourceGroupName, parameters.DataFactoryName, parameters.Name, parameters.RawJsonContent)) { DataFactoryName = parameters.DataFactoryName, ResourceGroupName = parameters.ResourceGroupName }; if (!DataFactoryCommonUtilities.IsSucceededProvisioningState(hub.ProvisioningState)) { // ToDo: service side should set the error message for provisioning failures. throw new ProvisioningFailedException(Resources.HubProvisioningFailed); } }; if (parameters.Force) { createHub(); } else { bool hubExists = this.CheckHubExists( parameters.ResourceGroupName, parameters.DataFactoryName, parameters.Name); parameters.ConfirmAction( !hubExists, string.Format( CultureInfo.InvariantCulture, Resources.HubExists, parameters.Name, parameters.DataFactoryName), string.Format( CultureInfo.InvariantCulture, Resources.HubCreating, parameters.Name, parameters.DataFactoryName), parameters.Name, createHub); } return(hub); }
private bool CheckHubExists(string resourceGroupName, string dataFactoryName, string hubName) { try { PSHub hub = this.GetHub(resourceGroupName, dataFactoryName, hubName); return(true); } catch (CloudException e) { if (e.Response.StatusCode == HttpStatusCode.NotFound) { return(false); } throw; } }
public void CanGetHub() { // Arrange PSHub expected = new PSHub() { DataFactoryName = DataFactoryName, ResourceGroupName = ResourceGroupName, HubName = hubName }; dataFactoriesClientMock .Setup( c => c.FilterPSHubs( It.Is <HubFilterOptions>( options => options.ResourceGroupName == ResourceGroupName && options.DataFactoryName == DataFactoryName && options.Name == hubName))) .CallBase() .Verifiable(); dataFactoriesClientMock .Setup(c => c.GetHub(ResourceGroupName, DataFactoryName, hubName)) .Returns(expected) .Verifiable(); // Action cmdlet.Name = hubName; cmdlet.ExecuteCmdlet(); // Assert dataFactoriesClientMock.VerifyAll(); commandRuntimeMock.Verify(f => f.WriteObject(expected), Times.Once()); }