public void TestTable()
        {
            FunctionDescriptor func = IndexMethod("Table").Item1;

            Assert.NotNull(func);
            var parameters = func.Parameters;

            Assert.Single(parameters);

            ParameterDescriptor firstParameter = parameters.First();

            Assert.NotNull(firstParameter);
            Assert.Equal("table", firstParameter.Name);
            Assert.IsType <TableParameterDescriptor>(firstParameter);
            TableParameterDescriptor typedTableParameter = (TableParameterDescriptor)firstParameter;

            Assert.Equal("TableName", typedTableParameter.TableName);
        }
Example #2
0
        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);
            }
        }
Example #3
0
        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);
            }
        }