53 lines
1.5 KiB
C#
53 lines
1.5 KiB
C#
using Inspectron.Epson.PrintServer.Telemetry;
|
|
|
|
namespace Inspectron.Epson.Tests.Telemetry;
|
|
|
|
public class InsinMessageFormatterTests
|
|
{
|
|
[Fact]
|
|
public void Format_single_pair_no_spaces()
|
|
{
|
|
var result = InsinMessageFormatter.Format(("printer", "192.168.1.10"));
|
|
Assert.Equal("printer=192.168.1.10", result);
|
|
}
|
|
|
|
[Fact]
|
|
public void Format_multiple_pairs_joined_by_space()
|
|
{
|
|
var result = InsinMessageFormatter.Format(
|
|
("printer", "192.168.1.10"),
|
|
("jobId", "42"));
|
|
Assert.Equal("printer=192.168.1.10 jobId=42", result);
|
|
}
|
|
|
|
[Fact]
|
|
public void Format_quotes_value_containing_space()
|
|
{
|
|
var result = InsinMessageFormatter.Format(("error", "paper end detected"));
|
|
Assert.Equal("error=\"paper end detected\"", result);
|
|
}
|
|
|
|
[Fact]
|
|
public void Format_escapes_embedded_double_quote()
|
|
{
|
|
var result = InsinMessageFormatter.Format(("error", "he said \"nope\""));
|
|
Assert.Equal("error=\"he said \\\"nope\\\"\"", result);
|
|
}
|
|
|
|
[Fact]
|
|
public void Format_treats_null_or_empty_value_as_empty_string()
|
|
{
|
|
var result = InsinMessageFormatter.Format(("model", (string?)null), ("name", ""));
|
|
Assert.Equal("model= name=", result);
|
|
}
|
|
|
|
[Fact]
|
|
public void Format_omits_pairs_with_null_or_empty_key()
|
|
{
|
|
var result = InsinMessageFormatter.Format(
|
|
("", "ignored"),
|
|
("printer", "192.168.1.10"));
|
|
Assert.Equal("printer=192.168.1.10", result);
|
|
}
|
|
}
|