NodePipeline/NodePipeline.Configuration.Yaml.Tests/YamlGraphLoaderTests.cs
2026-01-02 20:55:25 +03:00

53 lines
1.7 KiB
C#

using System.Text;
using NodePipeline.Configuration.Yaml.Exceptions;
using NodePipeline.Configuration.Yaml.Loader;
namespace NodePipeline.Configuration.Yaml.Tests;
public class YamlGraphLoaderTests
{
[Fact]
public void ConvertsEditorConfigToRuntimeConfig()
{
const string yaml = """
name: runtime-test
nodes:
- id: node1
type: FileImageSource
parameters:
FileName:
value: "input.jpg"
outputs:
Output:
label: "Выход"
""";
using var stream = new MemoryStream(Encoding.UTF8.GetBytes(yaml));
var loader = new YamlGraphLoader();
var config = loader.Load(stream);
Assert.Equal("runtime-test", config.Name);
Assert.Single(config.Nodes);
var node = config.Nodes[0];
Assert.Equal("node1", node.Id);
Assert.Equal("FileImageSource", node.Type);
Assert.Single(node.Parameters);
Assert.Equal("input.jpg", node.Parameters["FileName"]);
Assert.Single(node.Outputs);
Assert.Contains("Output", node.Outputs);
}
[Fact]
public void ThrowsOnEmptyYaml()
{
const string emptyYaml = "";
var loader = new YamlGraphLoader();
var ex = Assert.Throws<YamlFileIsEmptyException>(() =>
{
using var stream = new MemoryStream(Encoding.UTF8.GetBytes(emptyYaml));
loader.Load(stream);
});
Assert.Null(ex.FileName);
}
}