public void TestQueueOutput() { FunctionDescriptor func = IndexMethod("QueueOutput").Item1; Assert.NotNull(func); var parameters = func.Parameters; Assert.Single(parameters); ParameterDescriptor firstParameter = parameters.First(); QueueParameterDescriptor queueParameter = (QueueParameterDescriptor)firstParameter; Assert.Equal("inputqueue", queueParameter.QueueName); // queue name gets normalized. Assert.Equal("inputQueue", firstParameter.Name); // parameter name does not. }
internal static ParameterSnapshot CreateParameterSnapshot(ParameterDescriptor parameter) { // If display hints have already been provided by the descriptor // use them. Otherwise, we construct a new snapshot below. Note that // for extensibility (e.g. custom binding extensions), this is the // mechanism that must be used, since the Dashboard doesn't share type info // with custom extensions, we won't have access to the actual type as we do below. if (parameter.DisplayHints != null) { return(new DisplayHintsParameterSnapshot(parameter.DisplayHints)); } switch (parameter.Type) { case "Blob": BlobParameterDescriptor blobParameter = (BlobParameterDescriptor)parameter; return(new BlobParameterSnapshot { ContainerName = blobParameter.ContainerName, BlobName = blobParameter.BlobName, IsInput = blobParameter.Access == FileAccess.Read }); case "BlobTrigger": BlobTriggerParameterDescriptor blobTriggerParameter = (BlobTriggerParameterDescriptor)parameter; return(new BlobParameterSnapshot { ContainerName = blobTriggerParameter.ContainerName, BlobName = blobTriggerParameter.BlobName, IsInput = true }); case "Queue": QueueParameterDescriptor queueParameter = (QueueParameterDescriptor)parameter; return(new QueueParameterSnapshot { QueueName = queueParameter.QueueName, IsInput = queueParameter.Access == FileAccess.Read }); case "QueueTrigger": QueueTriggerParameterDescriptor queueTriggerParameter = (QueueTriggerParameterDescriptor)parameter; return(new QueueParameterSnapshot { QueueName = queueTriggerParameter.QueueName, IsInput = true }); case "Table": TableParameterDescriptor tableParameter = (TableParameterDescriptor)parameter; return(new TableParameterSnapshot { TableName = tableParameter.TableName }); case "TableEntity": TableEntityParameterDescriptor tableEntityParameter = (TableEntityParameterDescriptor)parameter; return(new TableEntityParameterSnapshot { TableName = tableEntityParameter.TableName, PartitionKey = tableEntityParameter.PartitionKey, RowKey = tableEntityParameter.RowKey }); case "ServiceBus": // TEMP: This is here for back compat // Latest versions of the SDK send a display info // via ParameterDescriptor.DisplayHints ServiceBusParameterDescriptor serviceBusParameter = (ServiceBusParameterDescriptor)parameter; return(new ServiceBusParameterSnapshot { EntityPath = serviceBusParameter.QueueOrTopicName, IsInput = false }); case "ServiceBusTrigger": // TEMP: This is here for back compat // Latest versions of the SDK send display info // via ParameterDescriptor.DisplayHints ServiceBusTriggerParameterDescriptor serviceBusTriggerParameter = (ServiceBusTriggerParameterDescriptor)parameter; return(new ServiceBusParameterSnapshot { EntityPath = serviceBusTriggerParameter.QueueName != null ? serviceBusTriggerParameter.QueueName : serviceBusTriggerParameter.TopicName + "/Subscriptions/" + serviceBusTriggerParameter.SubscriptionName, IsInput = true }); case "CallerSupplied": case "BindingData": return(new InvokeParameterSnapshot()); default: // Don't convert parameters that aren't used for invoke purposes. return(null); } }
internal static ParameterSnapshot CreateParameterSnapshot(ParameterDescriptor parameter) { switch (parameter.Type) { case "Blob": BlobParameterDescriptor blobParameter = (BlobParameterDescriptor)parameter; return(new BlobParameterSnapshot { ContainerName = blobParameter.ContainerName, BlobName = blobParameter.BlobName, IsInput = blobParameter.Access == FileAccess.Read }); case "BlobTrigger": BlobTriggerParameterDescriptor blobTriggerParameter = (BlobTriggerParameterDescriptor)parameter; return(new BlobParameterSnapshot { ContainerName = blobTriggerParameter.ContainerName, BlobName = blobTriggerParameter.BlobName, IsInput = true }); case "Queue": QueueParameterDescriptor queueParameter = (QueueParameterDescriptor)parameter; return(new QueueParameterSnapshot { QueueName = queueParameter.QueueName, IsInput = queueParameter.Access == FileAccess.Read }); case "QueueTrigger": QueueTriggerParameterDescriptor queueTriggerParameter = (QueueTriggerParameterDescriptor)parameter; return(new QueueParameterSnapshot { QueueName = queueTriggerParameter.QueueName, IsInput = true }); case "Table": TableParameterDescriptor tableParameter = (TableParameterDescriptor)parameter; return(new TableParameterSnapshot { TableName = tableParameter.TableName }); case "TableEntity": TableEntityParameterDescriptor tableEntityParameter = (TableEntityParameterDescriptor)parameter; return(new TableEntityParameterSnapshot { TableName = tableEntityParameter.TableName, PartitionKey = tableEntityParameter.PartitionKey, RowKey = tableEntityParameter.RowKey }); case "ServiceBus": ServiceBusParameterDescriptor serviceBusParameter = (ServiceBusParameterDescriptor)parameter; return(new ServiceBusParameterSnapshot { EntityPath = serviceBusParameter.QueueOrTopicName, IsInput = false }); case "ServiceBusTrigger": ServiceBusTriggerParameterDescriptor serviceBusTriggerParameter = (ServiceBusTriggerParameterDescriptor)parameter; return(new ServiceBusParameterSnapshot { EntityPath = serviceBusTriggerParameter.QueueName != null ? serviceBusTriggerParameter.QueueName : serviceBusTriggerParameter.TopicName + "/Subscriptions/" + serviceBusTriggerParameter.SubscriptionName, IsInput = true }); case "CallerSupplied": case "BindingData": return(new InvokeParameterSnapshot()); default: // Don't convert parameters that aren't used for invoke purposes. return(null); } }