48 lines
1.7 KiB
C#
48 lines
1.7 KiB
C#
using DocumentFormat.OpenXml.Math;
|
|
using KssSmaPlaLib.AutoTest.Command.Alias;
|
|
using KssSmaPlaLib.AutoTest.Script.Models;
|
|
using KssSmaPlaLib.AutoTest.Script.Parse.Function;
|
|
using System.Linq;
|
|
using System.Reflection;
|
|
|
|
namespace KssSmaPlaLib.AutoTest.Script.Parse
|
|
{
|
|
public static class ParseTryUxer
|
|
{
|
|
public static bool TryParse(StepDTO raw, out ParsedStepDTO parsed, out string resultMessage)
|
|
{
|
|
resultMessage = string.Empty;
|
|
parsed = new ParsedStepDTO(raw); // Raw注入
|
|
|
|
// ステップNo
|
|
if (string.IsNullOrEmpty(raw.StepNo))
|
|
{
|
|
resultMessage = $"UIテストステップ:ステップ番号が指定されていません。";
|
|
return false;
|
|
}
|
|
|
|
// ステップ情報:シグネチャのバリデーション
|
|
if (!FunctionTryUxer.TryFunction(raw.StepText, out var functionName, out var argList, out var messageForMe))
|
|
{
|
|
resultMessage = $"UIテストステップ:ステップ情報のシグネチャの変換に失敗しました。[エラー内容:{messageForMe}]";
|
|
return false;
|
|
}
|
|
|
|
// 関数(機能)名
|
|
if (!CommandAliasUxer.TryTranslate(functionName, out var commandEnum))
|
|
{
|
|
resultMessage = $"UIテストステップ:ステップ情報の関数(機能)名が未登録です。[関数(機能)名:{functionName}]";
|
|
return false;
|
|
}
|
|
|
|
// コマンド(enum値)
|
|
parsed.Command = commandEnum;
|
|
|
|
// パラメータ
|
|
parsed.Parameters = argList;
|
|
|
|
return true;
|
|
}
|
|
}
|
|
}
|