68 lines
2.2 KiB
C#
68 lines
2.2 KiB
C#
using Microsoft.EntityFrameworkCore;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
using SVSim.Database;
|
|
using SVSim.Database.Enums;
|
|
using SVSim.Database.Models;
|
|
using SVSim.EmulatedEntrypoint.Services;
|
|
using SVSim.UnitTests.Infrastructure;
|
|
|
|
namespace SVSim.UnitTests.Services;
|
|
|
|
public class DbCardPoolProviderTests
|
|
{
|
|
[Test]
|
|
public async Task GetPool_for_standard_pack_returns_cards_of_matching_set()
|
|
{
|
|
using var factory = new SVSimTestFactory();
|
|
long anyCardId;
|
|
int setId;
|
|
using (var scope = factory.Services.CreateScope())
|
|
{
|
|
var db = scope.ServiceProvider.GetRequiredService<SVSimDbContext>();
|
|
var setWithCards = await db.CardSets.Include(s => s.Cards)
|
|
.FirstAsync(s => s.Cards.Count > 0);
|
|
setId = setWithCards.Id;
|
|
anyCardId = setWithCards.Cards.First().Id;
|
|
}
|
|
|
|
using var scope2 = factory.Services.CreateScope();
|
|
var provider = scope2.ServiceProvider.GetRequiredService<ICardPoolProvider>();
|
|
var pool = provider.GetPool(new PackConfigEntry
|
|
{
|
|
Id = setId, BasePackId = setId, PackCategory = PackCategory.None
|
|
});
|
|
|
|
Assert.That(pool.Any(c => c.Id == anyCardId), Is.True);
|
|
}
|
|
|
|
[Test]
|
|
public void GetPool_for_legendary_special_returns_cards_from_rotation_sets()
|
|
{
|
|
using var factory = new SVSimTestFactory();
|
|
using var scope = factory.Services.CreateScope();
|
|
var provider = scope.ServiceProvider.GetRequiredService<ICardPoolProvider>();
|
|
|
|
var pool = provider.GetPool(new PackConfigEntry
|
|
{
|
|
Id = 92001, BasePackId = 90001, PackCategory = PackCategory.SpecialCardPack
|
|
});
|
|
|
|
Assert.That(pool.Count, Is.GreaterThan(0));
|
|
}
|
|
|
|
[Test]
|
|
public void GetPool_for_skin_pack_returns_empty()
|
|
{
|
|
using var factory = new SVSimTestFactory();
|
|
using var scope = factory.Services.CreateScope();
|
|
var provider = scope.ServiceProvider.GetRequiredService<ICardPoolProvider>();
|
|
|
|
var pool = provider.GetPool(new PackConfigEntry
|
|
{
|
|
Id = 70001, BasePackId = 70001, PackCategory = PackCategory.LeaderSkinPack
|
|
});
|
|
|
|
Assert.That(pool, Is.Empty);
|
|
}
|
|
}
|