namespace HSchool.Simulation.Tests; public class SchoolTests { private static readonly DateTime Start = new(2012, 4, 3, 6, 0, 0, DateTimeKind.Utc); [Fact] public void Create_StartsRunningAtTheStartDate() { using var school = School.Create(1, "Гимназия", Start); Assert.Equal(1, school.Id); Assert.Equal("Гимназия", school.Name); Assert.Equal(Start, school.Clock.Time); Assert.True(school.Clock.IsRunning); Assert.Equal(ClockSpeed.DefaultIndex, school.Clock.SpeedIndex); } [Fact] public void Load_RestoresTimePauseAndSpeed() { var time = Start.AddHours(3); using var school = School.Load(7, "Сейв", time, running: false, speedIndex: 3); Assert.Equal(7, school.Id); Assert.Equal("Сейв", school.Name); Assert.Equal(time, school.Clock.Time); Assert.False(school.Clock.IsRunning); Assert.Equal(3, school.Clock.SpeedIndex); Assert.Equal(DateTimeKind.Utc, school.Clock.Time.Kind); } [Fact] public void Load_PausedSchool_DoesNotMoveOnTick() { using var school = School.Load(1, "Пауза", Start.AddMinutes(12), running: false, speedIndex: 4); school.Tick(1d / 20d, 5d); Assert.Equal(Start.AddMinutes(12), school.Clock.Time); } }