namespace HSchool.People.Tests; public class OpinionStoreTests { [Fact] public void SetZero_RemovesTheEntry() { var person = Blank("a"); Assert.True(OpinionStore.Set(person, "b", 12)); Assert.Equal(12, OpinionStore.Get(person, "b")); Assert.True(OpinionStore.Set(person, "b", 0)); Assert.Null(OpinionStore.Get(person, "b")); Assert.False(person.Opinions.ContainsKey("b")); } [Fact] public void Set_ClampsToMinusOneHundredAndOneHundred() { var person = Blank("a"); OpinionStore.Set(person, "b", 500); Assert.Equal(100, person.Opinions["b"]); OpinionStore.Set(person, "b", -500); Assert.Equal(-100, person.Opinions["b"]); } private static Person Blank(string id) { var cases = new CaseTable { Nom = id, Gen = id, Dat = id, Acc = id, Ins = id, Pre = id, }; return new Person { Id = id, FamilyId = "f", Female = false, BirthDate = new DateTime(2000, 1, 1, 0, 0, 0, DateTimeKind.Utc), Name = new PersonName(id, id, id, cases, cases, cases), IsStudent = true, IsStaff = false, IsParent = false, Numbers = new Dictionary(StringComparer.Ordinal), Choices = new Dictionary(StringComparer.Ordinal), Skills = new Dictionary(StringComparer.Ordinal), Traits = [], Needs = new Dictionary(StringComparer.Ordinal), Opinions = new Dictionary(StringComparer.Ordinal), }; } }