Files
git.stella-ops.org/src/StellaOps.Concelier.Models.Tests/NevraPrimitiveExtensionsTests.cs
2025-10-20 14:19:25 +03:00

45 lines
1.6 KiB
C#

using StellaOps.Concelier.Models;
using Xunit;
namespace StellaOps.Concelier.Models.Tests;
public sealed class NevraPrimitiveExtensionsTests
{
[Fact]
public void ToNormalizedVersionRule_ProducesRangeWhenBoundsAvailable()
{
var primitive = new NevraPrimitive(
Introduced: new NevraComponent("openssl", 1, "1.1.1k", "4", "x86_64"),
Fixed: new NevraComponent("openssl", 1, "1.1.1n", "5", "x86_64"),
LastAffected: null);
var rule = primitive.ToNormalizedVersionRule("rhel-8");
Assert.NotNull(rule);
Assert.Equal(NormalizedVersionSchemes.Nevra, rule!.Scheme);
Assert.Equal(NormalizedVersionRuleTypes.Range, rule.Type);
Assert.Equal("openssl-1:1.1.1k-4.x86_64", rule.Min);
Assert.True(rule.MinInclusive);
Assert.Equal("openssl-1:1.1.1n-5.x86_64", rule.Max);
Assert.False(rule.MaxInclusive);
Assert.Equal("rhel-8", rule.Notes);
}
[Fact]
public void ToNormalizedVersionRule_UsesLastAffectedAsInclusiveUpperBound()
{
var primitive = new NevraPrimitive(
Introduced: null,
Fixed: null,
LastAffected: new NevraComponent("kernel", 0, "5.15.0", "1024.18", "x86_64"));
var rule = primitive.ToNormalizedVersionRule();
Assert.NotNull(rule);
Assert.Equal(NormalizedVersionSchemes.Nevra, rule!.Scheme);
Assert.Equal(NormalizedVersionRuleTypes.LessThanOrEqual, rule.Type);
Assert.Equal("kernel-5.15.0-1024.18.x86_64", rule.Max);
Assert.True(rule.MaxInclusive);
}
}