Skip to content

Commit e7dcc5e

Browse files
author
AndrewMorgan1
committed
Added new test class PromptInstanceTests
1 parent f68521d commit e7dcc5e

File tree

1 file changed

+47
-0
lines changed

1 file changed

+47
-0
lines changed
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
using PromptStream.AI.Models;
2+
using Xunit;
3+
4+
namespace PromptStream.AI.Tests.Models
5+
{
6+
public class PromptInstanceTests
7+
{
8+
[Fact]
9+
public void Constructor_ShouldThrowArgumentNullException_WhenTemplateIsNull()
10+
{
11+
var vars = new Dictionary<string, string>();
12+
var ex = Assert.Throws<ArgumentNullException>(() => new PromptInstance(null!, vars, "Hello"));
13+
Assert.Equal("template", ex.ParamName);
14+
}
15+
16+
[Fact]
17+
public void Constructor_ShouldThrowArgumentNullException_WhenVariablesIsNull()
18+
{
19+
var template = new PromptTemplate { Template = "Hi" };
20+
var ex = Assert.Throws<ArgumentNullException>(() => new PromptInstance(template, null!, "Hello"));
21+
Assert.Equal("variables", ex.ParamName);
22+
}
23+
24+
[Fact]
25+
public void Constructor_ShouldThrowArgumentNullException_WhenRenderedTextIsNull()
26+
{
27+
var template = new PromptTemplate { Template = "Hi" };
28+
var vars = new Dictionary<string, string>();
29+
var ex = Assert.Throws<ArgumentNullException>(() => new PromptInstance(template, vars, null!));
30+
Assert.Equal("renderedText", ex.ParamName);
31+
}
32+
33+
[Fact]
34+
public void Constructor_ShouldCreateInstance_WhenAllArgumentsValid()
35+
{
36+
var template = new PromptTemplate { Template = "Hi" };
37+
var vars = new Dictionary<string, string> { ["name"] = "Andrew" };
38+
39+
var instance = new PromptInstance(template, vars, "Hi Andrew");
40+
41+
Assert.Equal(template, instance.Template);
42+
Assert.Equal(vars, instance.Variables);
43+
Assert.Equal("Hi Andrew", instance.RenderedText);
44+
Assert.True(instance.CreatedUtc <= DateTime.UtcNow);
45+
}
46+
}
47+
}

0 commit comments

Comments
 (0)