DataMapTestExecutor 类

该类提供在单租户 Azure 逻辑应用中编译、生成 XSLT 并执行标准逻辑应用工作流数据映射测试的功能。 该类作为测试数据映射数据转换的主要入口。

Namespace

Microsoft.Azure.Workflows.UnitTesting

Usage

你可以用该 DataMapTestExecutor 类从数据映射定义生成XSLT并执行数据转换:

using Microsoft.Azure.Workflows.Data.Entities;

// Initialize with app directory path
var executor = new DataMapTestExecutor("path/to/logic-app-project");

// Generate XSLT from map name
var xslt = await executor.GenerateXslt("MyDataMap");

// Generate XSLT from map content
var generateXsltInput = new GenerateXsltInput { MapContent = mapContent };
var xsltContent = await executor.GenerateXslt(generateXsltInput);

// Execute data map transformation by map name
var inputData = System.Text.Encoding.UTF8.GetBytes(xmlInput);
var result = await executor.RunMapAsync("MyDataMap", inputData);

// Execute data map transformation with XSLT content
var result = await executor.RunMapAsync(xsltContent, inputData);

Constructors

DataMapTestExecutor(string)

通过使用 Logic 应用的项目根路径初始化该 DataMapTestExecutor 类的新实例。

参数

Name 类型 Description 必选
app目录路径 字符串 逻辑应用项目根路径 是的

Example

var executor = new DataMapTestExecutor("C:\\MyLogicApp");

属性

App目录路径

Logic 应用项目根目录路径。

资产 类型 Description 必选
App目录路径 字符串 逻辑应用项目的根路径 是的

Methods

生成Xslt(字符串)

编译数据映射并生成XSLT。 该作使用映射名称来查找数据映射。

参数

Name 类型 Description 必选
地图名称 字符串 没有“爱我的生活扩展”的数据映射文件名 是的

退货

Task<byte[]>: 表示异步作的任务,将生成的 XSLT 内容返回为字节数组。

例外

  • ArgumentException当数据映射文件不在预期路径中时,会被抛出。

Example

var executor = new DataMapTestExecutor("C:\\MyLogicApp");
var xslt = await executor.GenerateXslt("OrderToInvoice");

注释

该方法查找路径中的数据映射文件: {appDirectoryPath}\Artifacts\MapDefinitions\{mapName}.lml

生成Xslt(生成Xslt输入)

编译数据映射并从提供的映射内容生成XSLT。

参数

Name 类型 Description 必选
生成Xslt输入 生成Xslt输入 包含数据映射内容的输入 是的

退货

Task<byte[]>: 表示异步作的任务,将生成的 XSLT 内容返回为字节数组。

Example

var mapContent = await File.ReadAllTextAsync("CustomMap.lml");
var generateXsltInput = new GenerateXsltInput { MapContent = mapContent };
var xslt = await executor.GenerateXslt(generateXsltInput);

RunMapAsync(字符串,字节[])

通过对采样输入数据应用给定的XSLT执行数据映射。 该作使用映射名称来查找XSLT。

参数

Name 类型 Description 必选
地图名称 字符串 不含扩展名的数据映射 XSLT 文件名 是的
inputContent byte[] 内容要变换 是的

退货

Task<JToken>:一个任务,表示异步作,将转换后的输出返回为JSON令牌。

Example

var xmlInput = "<Order><Item>Widget</Item></Order>";
var inputData = System.Text.Encoding.UTF8.GetBytes(xmlInput);
var result = await executor.RunMapAsync("OrderToInvoice", inputData);
Console.WriteLine(result.ToString());

注释

该方法在路径中寻找 XSLT 文件: {appDirectoryPath}\Artifacts\Maps\{mapName}.xslt

RunMapAsync(byte[], byte[])

通过将给定的 XSLT 内容应用于采样输入数据来执行数据映射。

参数

Name 类型 Description 必选
xslt内容 byte[] 数据映射 XSLT 内容 是的
inputContent byte[] 需要转换的输入内容 是的

退货

Task<JToken>:一个任务,表示异步作,将转换后的输出返回为JSON令牌。

Example

// First generate XSLT
var xslt = await executor.GenerateXslt("OrderToInvoice");

// Then execute transformation
var xmlInput = "<Order><Item>Widget</Item></Order>";
var inputData = System.Text.Encoding.UTF8.GetBytes(xmlInput
var result = await executor.RunMapAsync(xslt, inputData);
Console.WriteLine(result.ToString());