Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
using Xunit;

#pragma warning disable IDE0130
namespace Prompty.Core;
#pragma warning restore IDE0130


public class FileNotFoundErrorConversionTests
{
[Fact]
public void LoadYamlInput()
{
string yamlData = """
message: "Prompty file not found: ./chat.prompty"
path: ./chat.prompty

""";

var instance = FileNotFoundError.FromYaml(yamlData);

Assert.NotNull(instance);
Assert.Equal("Prompty file not found: ./chat.prompty", instance.Message);
Assert.Equal("./chat.prompty", instance.Path);
}

[Fact]
public void LoadJsonInput()
{
string jsonData = """
{
"message": "Prompty file not found: ./chat.prompty",
"path": "./chat.prompty"
}
""";

var instance = FileNotFoundError.FromJson(jsonData);
Assert.NotNull(instance);
Assert.Equal("Prompty file not found: ./chat.prompty", instance.Message);
Assert.Equal("./chat.prompty", instance.Path);
}

[Fact]
public void RoundtripJson()
{
// Test that FromJson -> ToJson -> FromJson produces equivalent data
string jsonData = """
{
"message": "Prompty file not found: ./chat.prompty",
"path": "./chat.prompty"
}
""";

var original = FileNotFoundError.FromJson(jsonData);
Assert.NotNull(original);

var json = original.ToJson();
Assert.False(string.IsNullOrEmpty(json));

var reloaded = FileNotFoundError.FromJson(json);
Assert.NotNull(reloaded);
Assert.Equal("Prompty file not found: ./chat.prompty", reloaded.Message);
Assert.Equal("./chat.prompty", reloaded.Path);
}

[Fact]
public void RoundtripYaml()
{
// Test that FromYaml -> ToYaml -> FromYaml produces equivalent data
string yamlData = """
message: "Prompty file not found: ./chat.prompty"
path: ./chat.prompty

""";

var original = FileNotFoundError.FromYaml(yamlData);
Assert.NotNull(original);

var yaml = original.ToYaml();
Assert.False(string.IsNullOrEmpty(yaml));

var reloaded = FileNotFoundError.FromYaml(yaml);
Assert.NotNull(reloaded);
Assert.Equal("Prompty file not found: ./chat.prompty", reloaded.Message);
Assert.Equal("./chat.prompty", reloaded.Path);
}

[Fact]
public void ToJsonProducesValidJson()
{
string jsonData = """
{
"message": "Prompty file not found: ./chat.prompty",
"path": "./chat.prompty"
}
""";

var instance = FileNotFoundError.FromJson(jsonData);
var json = instance.ToJson();

// Verify it's valid JSON by parsing it
var parsed = System.Text.Json.JsonDocument.Parse(json);
Assert.NotNull(parsed);
}

[Fact]
public void ToYamlProducesValidYaml()
{
string yamlData = """
message: "Prompty file not found: ./chat.prompty"
path: ./chat.prompty

""";

var instance = FileNotFoundError.FromYaml(yamlData);
var yaml = instance.ToYaml();

// Verify it's valid YAML by parsing it
var deserializer = new YamlDotNet.Serialization.DeserializerBuilder().Build();
var parsed = deserializer.Deserialize<object>(yaml);
Assert.NotNull(parsed);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
using Xunit;

#pragma warning disable IDE0130
namespace Prompty.Core;
#pragma warning restore IDE0130


public class InvokerErrorConversionTests
{
[Fact]
public void LoadYamlInput()
{
string yamlData = """
message: "No renderer registered for key: jinja2"
component: renderer
key: jinja2

""";

var instance = InvokerError.FromYaml(yamlData);

Assert.NotNull(instance);
Assert.Equal("No renderer registered for key: jinja2", instance.Message);
Assert.Equal("renderer", instance.Component);
Assert.Equal("jinja2", instance.Key);
}

[Fact]
public void LoadJsonInput()
{
string jsonData = """
{
"message": "No renderer registered for key: jinja2",
"component": "renderer",
"key": "jinja2"
}
""";

var instance = InvokerError.FromJson(jsonData);
Assert.NotNull(instance);
Assert.Equal("No renderer registered for key: jinja2", instance.Message);
Assert.Equal("renderer", instance.Component);
Assert.Equal("jinja2", instance.Key);
}

[Fact]
public void RoundtripJson()
{
// Test that FromJson -> ToJson -> FromJson produces equivalent data
string jsonData = """
{
"message": "No renderer registered for key: jinja2",
"component": "renderer",
"key": "jinja2"
}
""";

var original = InvokerError.FromJson(jsonData);
Assert.NotNull(original);

var json = original.ToJson();
Assert.False(string.IsNullOrEmpty(json));

var reloaded = InvokerError.FromJson(json);
Assert.NotNull(reloaded);
Assert.Equal("No renderer registered for key: jinja2", reloaded.Message);
Assert.Equal("renderer", reloaded.Component);
Assert.Equal("jinja2", reloaded.Key);
}

[Fact]
public void RoundtripYaml()
{
// Test that FromYaml -> ToYaml -> FromYaml produces equivalent data
string yamlData = """
message: "No renderer registered for key: jinja2"
component: renderer
key: jinja2

""";

var original = InvokerError.FromYaml(yamlData);
Assert.NotNull(original);

var yaml = original.ToYaml();
Assert.False(string.IsNullOrEmpty(yaml));

var reloaded = InvokerError.FromYaml(yaml);
Assert.NotNull(reloaded);
Assert.Equal("No renderer registered for key: jinja2", reloaded.Message);
Assert.Equal("renderer", reloaded.Component);
Assert.Equal("jinja2", reloaded.Key);
}

[Fact]
public void ToJsonProducesValidJson()
{
string jsonData = """
{
"message": "No renderer registered for key: jinja2",
"component": "renderer",
"key": "jinja2"
}
""";

var instance = InvokerError.FromJson(jsonData);
var json = instance.ToJson();

// Verify it's valid JSON by parsing it
var parsed = System.Text.Json.JsonDocument.Parse(json);
Assert.NotNull(parsed);
}

[Fact]
public void ToYamlProducesValidYaml()
{
string yamlData = """
message: "No renderer registered for key: jinja2"
component: renderer
key: jinja2

""";

var instance = InvokerError.FromYaml(yamlData);
var yaml = instance.ToYaml();

// Verify it's valid YAML by parsing it
var deserializer = new YamlDotNet.Serialization.DeserializerBuilder().Build();
var parsed = deserializer.Deserialize<object>(yaml);
Assert.NotNull(parsed);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
using Xunit;

#pragma warning disable IDE0130
namespace Prompty.Core;
#pragma warning restore IDE0130


public class ValidationErrorConversionTests
{
[Fact]
public void LoadYamlInput()
{
string yamlData = """
message: "Missing required input: firstName"
property: firstName
constraint: required

""";

var instance = ValidationError.FromYaml(yamlData);

Assert.NotNull(instance);
Assert.Equal("Missing required input: firstName", instance.Message);
Assert.Equal("firstName", instance.Property);
Assert.Equal("required", instance.Constraint);
}

[Fact]
public void LoadJsonInput()
{
string jsonData = """
{
"message": "Missing required input: firstName",
"property": "firstName",
"constraint": "required"
}
""";

var instance = ValidationError.FromJson(jsonData);
Assert.NotNull(instance);
Assert.Equal("Missing required input: firstName", instance.Message);
Assert.Equal("firstName", instance.Property);
Assert.Equal("required", instance.Constraint);
}

[Fact]
public void RoundtripJson()
{
// Test that FromJson -> ToJson -> FromJson produces equivalent data
string jsonData = """
{
"message": "Missing required input: firstName",
"property": "firstName",
"constraint": "required"
}
""";

var original = ValidationError.FromJson(jsonData);
Assert.NotNull(original);

var json = original.ToJson();
Assert.False(string.IsNullOrEmpty(json));

var reloaded = ValidationError.FromJson(json);
Assert.NotNull(reloaded);
Assert.Equal("Missing required input: firstName", reloaded.Message);
Assert.Equal("firstName", reloaded.Property);
Assert.Equal("required", reloaded.Constraint);
}

[Fact]
public void RoundtripYaml()
{
// Test that FromYaml -> ToYaml -> FromYaml produces equivalent data
string yamlData = """
message: "Missing required input: firstName"
property: firstName
constraint: required

""";

var original = ValidationError.FromYaml(yamlData);
Assert.NotNull(original);

var yaml = original.ToYaml();
Assert.False(string.IsNullOrEmpty(yaml));

var reloaded = ValidationError.FromYaml(yaml);
Assert.NotNull(reloaded);
Assert.Equal("Missing required input: firstName", reloaded.Message);
Assert.Equal("firstName", reloaded.Property);
Assert.Equal("required", reloaded.Constraint);
}

[Fact]
public void ToJsonProducesValidJson()
{
string jsonData = """
{
"message": "Missing required input: firstName",
"property": "firstName",
"constraint": "required"
}
""";

var instance = ValidationError.FromJson(jsonData);
var json = instance.ToJson();

// Verify it's valid JSON by parsing it
var parsed = System.Text.Json.JsonDocument.Parse(json);
Assert.NotNull(parsed);
}

[Fact]
public void ToYamlProducesValidYaml()
{
string yamlData = """
message: "Missing required input: firstName"
property: firstName
constraint: required

""";

var instance = ValidationError.FromYaml(yamlData);
var yaml = instance.ToYaml();

// Verify it's valid YAML by parsing it
var deserializer = new YamlDotNet.Serialization.DeserializerBuilder().Build();
var parsed = deserializer.Deserialize<object>(yaml);
Assert.NotNull(parsed);
}
}
Loading
Loading