feat(repo): cosmetic catalog id enumerations on ICollectionRepository

This commit is contained in:
gamer147
2026-05-29 13:29:19 -04:00
parent b4f6992918
commit be19c0ad8d
3 changed files with 44 additions and 0 deletions

View File

@@ -16,4 +16,16 @@ public class CollectionRepository : ICollectionRepository
{
return await _dbContext.Set<LeaderSkinEntry>().AsNoTracking().Include(skin => skin.Class).ToListAsync();
}
public Task<List<int>> GetAllSleeveIds() =>
_dbContext.Set<SleeveEntry>().AsNoTracking().Select(s => s.Id).ToListAsync();
public Task<List<int>> GetAllEmblemIds() =>
_dbContext.Set<EmblemEntry>().AsNoTracking().Select(e => e.Id).ToListAsync();
public Task<List<int>> GetAllDegreeIds() =>
_dbContext.Set<DegreeEntry>().AsNoTracking().Select(d => d.Id).ToListAsync();
public Task<List<int>> GetAllMyPageBackgroundIds() =>
_dbContext.Set<MyPageBackgroundEntry>().AsNoTracking().Select(m => m.Id).ToListAsync();
}

View File

@@ -5,4 +5,8 @@ namespace SVSim.Database.Repositories.Collectibles;
public interface ICollectionRepository
{
Task<List<LeaderSkinEntry>> GetLeaderSkins();
Task<List<int>> GetAllSleeveIds();
Task<List<int>> GetAllEmblemIds();
Task<List<int>> GetAllDegreeIds();
Task<List<int>> GetAllMyPageBackgroundIds();
}

View File

@@ -0,0 +1,28 @@
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.DependencyInjection;
using SVSim.Database;
using SVSim.Database.Models;
using SVSim.Database.Repositories.Collectibles;
using SVSim.UnitTests.Infrastructure;
namespace SVSim.UnitTests.Repositories;
public class CollectionRepositoryTests
{
[Test]
public async Task GetAllSleeveIds_returns_every_master_sleeve()
{
using var factory = new SVSimTestFactory();
await factory.SeedGlobalsAsync();
using var scope = factory.Services.CreateScope();
var db = scope.ServiceProvider.GetRequiredService<SVSimDbContext>();
db.Sleeves.Add(new SleeveEntry { Id = 123456 });
await db.SaveChangesAsync();
var repo = new CollectionRepository(db);
var ids = await repo.GetAllSleeveIds();
Assert.That(ids, Does.Contain(123456));
Assert.That(ids.Count, Is.EqualTo(await db.Sleeves.CountAsync()));
}
}