using Nonemm.Contests.Rules; using Nonemm.Core; using Nonemm.Storage; namespace Nonemm.Session.Tests; public class ContestDefinitionsTests { [Fact] public void NamesAndModeComeFromTheContest() { ContestDefinition definition = ContestDefinitions.For(new CqWorldWide(ModeCategory.Cw)); Assert.Equal("CQWW", definition.Name); Assert.Equal("CQ-WW-CW", definition.CabrilloName); Assert.Equal("CW", definition.Mode); } [Fact] public void MultiplierNamesFillUpToThree() { ContestDefinition definition = ContestDefinitions.For(new CqWorldWide(ModeCategory.Cw)); Assert.Equal("Zones", definition.Multiplier1Name); Assert.Equal("Countries", definition.Multiplier2Name); Assert.Equal("N/A", definition.Multiplier3Name); } [Theory] [InlineData(typeof(Sweepstakes), 1)] [InlineData(typeof(CqWorldWide), 2)] [InlineData(typeof(IaruHf), 3)] public void DupeScopeBecomesN1mmsDupeType(Type contest, int expected) { object made = contest == typeof(IaruHf) ? new IaruHf() : Activator.CreateInstance(contest, ModeCategory.Cw)!; Assert.Equal(expected, ContestDefinitions.For((Contests.Contest)made).DupeType); } [Fact] public void ContestWithSeveralModesIsBoth() => Assert.Equal("BOTH", ContestDefinitions.For(new IaruHf()).Mode); }