Files
dnsmasq-webui/src/DnsmasqWebUI.Tests/Models/EffectiveConfig/PendingManagedHostsChangeTests.cs
T
alex eae29de045 Hosts: inline file comments (hosts(5)) and Comment column
- HostEntry.InlineComment; parse at first # on data lines; ToLine + SanitizeInlineComment
- HostsPageRow + HostsCache; pending change equality and save diff include comments
- Hosts table: dedicated Comment column; edit in own cell; empty shown as em dash
- Parser and pending-change tests
2026-04-01 11:52:21 +10:00

54 lines
2.2 KiB
C#

using DnsmasqWebUI.Models.Dnsmasq.EffectiveConfig;
using DnsmasqWebUI.Models.Hosts;
namespace DnsmasqWebUI.Tests.Models.EffectiveConfig;
public class PendingManagedHostsChangeTests
{
[Fact]
public void HasChanges_WhenEntriesDiffer_ReturnsTrue()
{
var oldEntries = new List<HostEntry> { new() { Id = "1", Address = "192.168.1.1", Names = new List<string> { "host1" } } };
var newEntries = new List<HostEntry> { new() { Id = "1", Address = "192.168.1.2", Names = new List<string> { "host1" } } };
var pending = new PendingManagedHostsChange(oldEntries, newEntries, "/etc/hosts");
Assert.True(pending.HasChanges);
}
[Fact]
public void HasChanges_WhenEntriesSame_ReturnsFalse()
{
var entries = new List<HostEntry> { new() { Id = "1", Address = "192.168.1.1", Names = new List<string> { "host1" } } };
var clone = entries.Select(e => new HostEntry { Id = e.Id, Address = e.Address, Names = new List<string>(e.Names) }).ToList();
var pending = new PendingManagedHostsChange(entries, clone, "/etc/hosts");
Assert.False(pending.HasChanges);
}
[Fact]
public void HasChanges_WhenCountDiffers_ReturnsTrue()
{
var oldEntries = new List<HostEntry> { new() { Id = "1", Address = "192.168.1.1", Names = new List<string>() } };
var newEntries = new List<HostEntry>
{
new() { Id = "1", Address = "192.168.1.1", Names = new List<string>() },
new() { Id = "2", Address = "192.168.1.2", Names = new List<string>() }
};
var pending = new PendingManagedHostsChange(oldEntries, newEntries, "/etc/hosts");
Assert.True(pending.HasChanges);
}
[Fact]
public void HasChanges_WhenInlineCommentDiffers_ReturnsTrue()
{
var oldEntries = new List<HostEntry>
{
new() { Id = "1", Address = "10.0.0.1", Names = new List<string> { "a" }, InlineComment = "old" }
};
var newEntries = new List<HostEntry>
{
new() { Id = "1", Address = "10.0.0.1", Names = new List<string> { "a" }, InlineComment = "new" }
};
var pending = new PendingManagedHostsChange(oldEntries, newEntries, "/etc/hosts");
Assert.True(pending.HasChanges);
}
}