Files
actions/sh.actions.package-cleanup.Tests/Service/PackageServiceTests.cs
2026-02-15 03:02:20 +01:00

146 lines
3.5 KiB
C#

using Moq;
using sh.actions.package_cleanup.Models;
using sh.actions.package_cleanup.Service;
using Xunit;
namespace sh.actions.package_cleanup.Tests.Service;
public class PackageFilterTests
{
private readonly IPackageService _packageService;
private readonly Mock<IGiteaPackageService> _giteaPackageServiceMock = new Mock<IGiteaPackageService>();
private readonly List<GiteaPackage> _packages;
public PackageFilterTests()
{
_packageService = new PackageService(_giteaPackageServiceMock.Object);
_packages = _versions.Select(v => new GiteaPackage
{
Version = v,
Name = $"test-{v}"
}).ToList();
}
[Fact]
public void TestFilterPackagesToDelete()
{
var toDelete = _packageService.FilterPackagesToDelete(_packages);
var toDeleteVersions = toDelete
.Select(x => x.Version)
.OrderByDescending(x => x)
.ToList();
var expected = _expectDeleted.OrderByDescending(x => x).ToList();
Assert.Equal(expected.Count, toDeleteVersions.Count);
Assert.Equal(expected, toDeleteVersions);
}
private readonly List<string> _versions =
[
"0.1.0",
"0.1.1",
"0.1.2",
"1.0",
"1.1",
"1.2",
"2024.8.6.0",
"2024.8.7.0",
"2024.8.8.0",
"2024.8.9.0",
"2024.8.10.0",
"2024.8.11.0",
"latest",
// dev
"0-dev",
"1-dev",
"2-dev",
"1.0-dev",
"1.1-dev",
"1.2-dev",
"0.1.0-dev",
"0.1.1-dev",
"0.1.2-dev",
"2024.8.6.0-dev",
"2024.8.6.1-dev",
"2024.8.7.0-dev",
"2024.8.7.1-dev",
"2024.8.8.0-dev",
"2024.8.8.1-dev",
"2024.8.9.0-dev",
"2024.8.9.1-dev",
"2024.8.10.0-dev",
"2024.8.10.1-dev",
"2024.8.11.0-dev",
"2024.8.11.1-dev",
// test
"0.1.0-test",
"0.1.1-test",
"0.1.2-test",
"2024.8.6.0-test",
"2024.8.6.1-test",
"2024.8.7.0-test",
"2024.8.7.1-test",
"2024.8.8.0-test",
"2024.8.8.1-test",
"2024.8.9.0-test",
"2024.8.9.1-test",
"2024.8.10.0-test",
"2024.8.10.1-test",
"2024.8.11.0-test",
// exp
"0.1.0-exp",
"0.1.1-exp",
"0.1.2-exp",
"2024.8.6.0-exp",
"2024.8.6.1-exp",
"2024.8.7.0-exp",
"2024.8.7.1-exp",
"2024.8.8.0-exp",
"2024.8.8.1-exp",
"2024.8.9.0-exp",
"2024.8.9.1-exp",
"2024.8.10.0-exp",
"2024.8.10.1-exp",
"2024.8.11.0-exp",
"2024.8.11.2-exp"
];
private readonly List<string> _versionsToHold =
[
// prod (no suffix)
"0.1.0",
"0.1.1",
"0.1.2",
"1.0",
"1.1",
"1.2",
"2024.8.6.0",
"2024.8.7.0",
"2024.8.8.0",
"2024.8.9.0",
"2024.8.10.0",
"2024.8.11.0",
"latest",
// dev
"1-dev",
"2-dev",
"1.1-dev",
"1.2-dev",
"0.1.1-dev",
"0.1.2-dev",
"2024.8.11.0-dev",
"2024.8.11.1-dev",
// test
"0.1.1-test",
"0.1.2-test",
"2024.8.10.1-test",
"2024.8.11.0-test",
// exp
"0.1.1-exp",
"0.1.2-exp",
"2024.8.11.0-exp",
"2024.8.11.2-exp"
];
private List<string> _expectDeleted => _versions.Except(_versionsToHold).ToList();
}