Пример #1
0
        public void Heater_WhenStopped_HasFallingPressure()
        {
            int previousPressure = 0;

            for (int i = 0; i < 10; i++)
            {
                FireTimersWithPeriod(1000u, 1000);
                BoilerDataType model    = GetBoilerModel();
                int            pressure = model.Pressure;

                pressure.Should().BeGreaterThan(previousPressure, "pressure should build when heater is on");
                previousPressure = pressure;
            }

            TurnHeaterOff();

            for (int i = 0; i < 5; i++)
            {
                FireTimersWithPeriod(1000u, 1000);
                BoilerDataType model    = GetBoilerModel();
                int            pressure = model.Pressure;

                pressure.Should().BeLessThan(previousPressure, "pressure should drop when heater is off");
                previousPressure = pressure;
            }
        }
Пример #2
0
        public void Heater_WhenRunning_HasRisingPressure()
        {
            int previousPressure = 0;

            for (int i = 0; i < 5; i++)
            {
                FireTimersWithPeriod(1000u, 1000);
                BoilerDataType model    = GetBoilerModel();
                int            pressure = model.Pressure;

                pressure.Should().BeGreaterThan(previousPressure, "pressure should build when heater is on");
                previousPressure = pressure;
            }
        }
Пример #3
0
        public void Heater_AtStartUp_IsTurnedOn()
        {
            FireTimersWithPeriod(1000u, 1000);

            BoilerDataType model = GetBoilerModel();

            BoilerHeaterStateType state       = model.HeaterState;
            BoilerTemperatureType temperature = model.Temperature;
            int pressure = model.Pressure;

            state.Should().Be(BoilerHeaterStateType.On, "heater should start in 'on' state");
            pressure.Should().BeGreaterThan(10_000, "pressure should start at 10k and get higher");

            temperature.Top.Should().Be(pressure - 100_005, "top is always 100,005 less than pressure. Pressure: {0}", pressure);
            temperature.Bottom.Should().Be(pressure - 100_000, "bottom is always 100,000 less than pressure. Pressure: {0}", pressure);
        }
Пример #4
0
        public void Heater_CanBeTurnedOff()
        {
            // let heater run for a few seconds to make temperature rise
            FireTimersWithPeriod(1000u, 1000);

            TurnHeaterOff();

            FireTimersWithPeriod(1000u, 1000);

            BoilerDataType model = GetBoilerModel();

            BoilerHeaterStateType state       = model.HeaterState;
            BoilerTemperatureType temperature = model.Temperature;
            int pressure = model.Pressure;

            state.Should().Be(BoilerHeaterStateType.Off, "heater should have been turned off");
            pressure.Should().BeGreaterThan(10_000, "pressure should start at 10k and get higher");

            temperature.Top.Should().Be(pressure - 100_005, "top is always 100,005 less than pressure. Pressure: {0}", pressure);
            temperature.Bottom.Should().Be(pressure - 100_000, "btoom is always 100,000 less than pressure. Pressure: {0}", pressure);
        }