146 lines
3.5 KiB
C#
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();
|
|
} |