TriggerMock sınıfı

Ad Alanı: Microsoft.Azure.Workflows.UnitTesting.Definitions

Bu sınıf, Standart mantıksal uygulama iş akışında tetikleyici için bir sahte örnek oluşturur. sınıfı, TriggerMock yürütme bağlamı temelinde statik çıkışlar, hata koşulları veya dinamik davranış kullanarak Standart iş akışlarını test etmek için sahte tetikleyiciler oluşturmak için birden çok yol sağlar.

Kullanım

// 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");

Kurucular

Statik çıkışları olan oluşturucu

Statik çıkışlarla için TriggerMock bir sahte örnek oluşturur.

public TriggerMock(TestWorkflowStatus status, string name = null, MockOutput outputs = null)
İsim Açıklama Türü Gerekli
statü Sahte tetikleyici sonuç durumu TestWorkflowStatus Evet
isim Sahte tetikleyici adı String Hayı
Çıktılar Sahte statik çıkışlar MockOutput Hayı
// 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);

Hata bilgilerini içeren oluşturucu

statik hata bilgileriyle için TriggerMock bir sahte örnek oluşturur.

public TriggerMock(TestWorkflowStatus status, string name = null, TestErrorInfo error = null)
İsim Açıklama Türü Gerekli
statü Sahte tetikleyici sonuç durumu TestWorkflowStatus Evet
isim Sahte tetikleyici adı String Hayı
hata Sahte tetikleyici hata bilgileri TestErrorInfo Hayı
// 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);

Geri çağırma işlevine sahip oluşturucu

Dinamik çıkışlar için geri çağırma işleviyle için TriggerMock bir sahte örnek oluşturur.

public TriggerMock(Func<TestExecutionContext, TriggerMock> onGetTriggerMock, string name = null)
İsim Açıklama Türü Gerekli
onGetTriggerMock Sahte tetikleyiciyi almak için geri çağırma işlevi Func<TestExecutionContext, TriggerMock> Evet
isim Sahte tetikleyici adı String Hayı
// 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");

JSON oluşturucu

JSON'dan için TriggerMock bir sahte örnek oluşturur.

public TriggerMock(TestWorkflowStatus status, string name = null, JToken outputs = null, TestErrorInfo error = null)
İsim Açıklama Türü Gerekli
statü Sahte tetikleyici sonuç durumu TestWorkflowStatus Evet
isim Sahte tetikleyici adı String Hayı
Çıktılar Sahte çıkışlar MockOutput Hayı
hata Sahte hata TestErrorInfo Hayı
// Example: Create a mock trigger from JSON
var triggerFromJson = JsonConvert.DeserializeObject<TriggerMock>(File.ReadAllText(mockDataPath));

Özellikler

İsim Açıklama Türü Gerekli
İsim Sahte işlemin adı String Hayı
Statü İşlem durumu TestWorkflowStatus Hayı
Çıktılar JSON biçiminde statik çıkış JToken Hayı
Hata İşlem hatası TestErrorInfo Hayı