Compartilhar via


Classe TriggerMock

Namespace: Microsoft.Azure.Workflows.UnitTesting.Definitions

Essa classe cria uma instância simulada para um gatilho em um fluxo de trabalho do aplicativo lógico Standard. A TriggerMock classe fornece várias maneiras de criar gatilhos fictícios para testar fluxos de trabalho Standard usando saídas estáticas, condições de erro ou comportamento dinâmico com base no contexto de execução.

Uso

// Simple trigger mock with success status
var successTrigger = new TriggerMock(TestWorkflowStatus.Succeeded, "HttpTrigger");

// Trigger mock with specific outputs
var outputTrigger = new TriggerMock(
    TestWorkflowStatus.Succeeded,
    "EmailTrigger",
    new MockOutput { 
        Body = JToken.Parse(@"{""subject"": ""Test Email"", ""from"": ""test@example.com""}") 
    });

// Failed trigger with error information
var failedTrigger = new TriggerMock(
    TestWorkflowStatus.Failed,
    "DatabaseTrigger",
    new TestErrorInfo(
        ErrorResponseCode.ConnectionError,
        "Failed to connect to database"
    ));

// Dynamic trigger that changes behavior based on execution context
var dynamicTrigger = new TriggerMock(
    (context) => {
        var actionName = context.ActionContext.ActionName;
        
        if (actionName == "ProcessOrder") {
            return new TriggerMock(
                TestWorkflowStatus.Succeeded, 
                "OrderTrigger",
                new MockOutput { Body = JToken.Parse(@"{""orderId"": 12345}") }
            );
        }
        
        return new TriggerMock(TestWorkflowStatus.Failed, "OrderTrigger");
    },
    "ContextAwareTrigger");

Construtores

Construtor com saídas estáticas

Cria uma instância simulada para TriggerMock saídas estáticas.

public TriggerMock(TestWorkflowStatus status, string name = null, MockOutput outputs = null)
Nome Descrição Tipo Obrigatório
estado O status do resultado do gatilho fictício TestWorkflowStatus Sim
nome O nome do gatilho fictício corda Não
saídas As saídas estáticas simuladas MockOutput Não
// Example: Create a mock trigger with successful status and static outputs
var outputs = new MockOutput { 
    Body = JToken.Parse(@"{""webhookData"": ""sample payload""}")
};
var triggerMock = new TriggerMock(TestWorkflowStatus.Succeeded, "WebhookTrigger", outputs);

Construtor com informações de erro

Cria uma instância simulada para TriggerMock com informações de erro estáticas.

public TriggerMock(TestWorkflowStatus status, string name = null, TestErrorInfo error = null)
Nome Descrição Tipo Obrigatório
estado O status do resultado do gatilho fictício TestWorkflowStatus Sim
nome O nome do gatilho fictício corda Não
erro As informações de erro do gatilho fictício TestErrorInfo Não
// Example: Create a mock trigger with failed status and error information
var errorInfo = new TestErrorInfo(
    ErrorResponseCode.Unauthorized,
    "Authentication failed for trigger"
);
var triggerMock = new TriggerMock(TestWorkflowStatus.Failed, "SecureTrigger", errorInfo);

Construtor com função de retorno de chamada

Cria uma instância simulada para TriggerMock uma função de retorno de chamada para saídas dinâmicas.

public TriggerMock(Func<TestExecutionContext, TriggerMock> onGetTriggerMock, string name = null)
Nome Descrição Tipo Obrigatório
onGetTriggerMock A função de retorno de chamada para obter o gatilho fictício Func<TestExecutionContext, TriggerMock> Sim
nome O nome do gatilho fictício corda Não
// Example: Create a mock trigger with dynamic outputs based on execution context
var triggerMock = new TriggerMock(
    (context) => {
        var inputs = context.ActionContext.ActionInputs;
        var eventType = inputs["eventType"]?.Value<string>();
        
        // Return different mock based on event type
        if (eventType == "priority") {
            return new TriggerMock(
                TestWorkflowStatus.Succeeded, 
                "EventTrigger", 
                new MockOutput { Body = JToken.Parse(@"{""priority"": true}") }
            );
        }
        
        return new TriggerMock(TestWorkflowStatus.Succeeded, "EventTrigger");
    }, 
    "ConditionalEventTrigger");

Construtor JSON

Cria uma instância simulada para TriggerMock o JSON.

public TriggerMock(TestWorkflowStatus status, string name = null, JToken outputs = null, TestErrorInfo error = null)
Nome Descrição Tipo Obrigatório
estado O status do resultado do gatilho fictício TestWorkflowStatus Sim
nome O nome do gatilho fictício corda Não
saídas As saídas simuladas MockOutput Não
erro O erro de simulação TestErrorInfo Não
// Example: Create a mock trigger from JSON
var triggerFromJson = JsonConvert.DeserializeObject<TriggerMock>(File.ReadAllText(mockDataPath));

Propriedades

Nome Descrição Tipo Obrigatório
Nome O nome da operação simulada corda Não
Situação O status da operação TestWorkflowStatus Não
Saídas A saída estática no formato JSON JToken Não
Erro O erro de operação TestErrorInfo Não