该类提供在单租户 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());