public void TemperatureThresholdEventHandlerFiresTest() { // Arrange Thermometer thermometer = new Thermometer(); List <TemperatureThreshold> temperatureThresholdList = TestUtils.CreateTemperatureThresholds(TemperatureDirection.Decreasing); thermometer.SetTemperatureThresholds(temperatureThresholdList); thermometer.TemperatureThresholdReached += HandleTemperatureThresholdReached; thermometer.Temperature = new Temperature(2); _eventHandlerCalledCount = 0; // Act thermometer.Temperature = new Temperature(0); // Assert Assert.True(thermometer.IsAtTemperatureThreshold); const string expectedThresholdName = "Freezing"; Assert.Equal(expectedThresholdName, thermometer.CurrentTemperatureThreshold.Name); Assert.Equal(_eventHandlerCalledCount, 1); Assert.Equal(expectedThresholdName, _name); // todo Need value comparison not reference compariosn (or override equality) Assert.Equal(new Temperature(0), _temperature); Assert.Equal(new Temperature(.5), _tolerance); Assert.Equal(TemperatureDirection.Decreasing, _direction); }
public void RemainsAtDecreasingThresholdWithDecreasingTemperatureTest() { // Arrange Thermometer thermometer = new Thermometer(); List <TemperatureThreshold> temperatureThresholdList = TestUtils.CreateTemperatureThresholds(TemperatureDirection.Decreasing); thermometer.SetTemperatureThresholds(temperatureThresholdList); thermometer.Temperature = new Temperature(2); // Act thermometer.Temperature = new Temperature(0); // decreasing temperature // Assert Assert.True(thermometer.IsAtTemperatureThreshold); // Act thermometer.Temperature = new Temperature(-.1); // decreasing temperature // Assert Assert.True(thermometer.IsAtTemperatureThreshold); // Act thermometer.Temperature = new Temperature(-.2); // decreasing temperature // Assert Assert.True(thermometer.IsAtTemperatureThreshold); }
[InlineData("Freezing", TemperatureDirection.Decreasing, 2, 0, true)] // decreasing threshold, decreasing temperature public void HitsTemperatureThresholdTest(string thresholdName, TemperatureDirection temperatureDirection, double previousTemperature, double thresholdTemperature, bool hitsTemperatureThreshold) { // Arrange List <TemperatureThreshold> temperatureThresholdList = new List <TemperatureThreshold> { new TemperatureThreshold { Name = thresholdName, Temperature = new Temperature(thresholdTemperature), Tolerance = new Temperature(0.5), Direction = temperatureDirection } }; Thermometer thermometer = new Thermometer(); thermometer.SetTemperatureThresholds(temperatureThresholdList); thermometer.Temperature = new Temperature(previousTemperature); // Act thermometer.Temperature = new Temperature(thresholdTemperature); // Assert Assert.Equal(hitsTemperatureThreshold, thermometer.IsAtTemperatureThreshold); if (thermometer.IsAtTemperatureThreshold) { string expectedThresholdName = thresholdName; Assert.Equal(expectedThresholdName, thermometer.CurrentTemperatureThreshold.Name); } }
public void HitAllTemperatureThresholdsDecreasingTest() { // Arrange Thermometer thermometer = new Thermometer(); List <TemperatureThreshold> temperatureThresholdList = TestUtils.CreateTemperatureThresholds(TemperatureDirection.Decreasing); thermometer.SetTemperatureThresholds(temperatureThresholdList); thermometer.Temperature = new Temperature(110); // Act thermometer.Temperature = new Temperature(100); // decreasing temperature // Assert Assert.True(thermometer.IsAtTemperatureThreshold); string expectedThresholdName = "Boiling"; Assert.Equal(expectedThresholdName, thermometer.CurrentTemperatureThreshold.Name); // Act thermometer.Temperature = new Temperature(20); // decreasing temperature // Assert Assert.True(thermometer.IsAtTemperatureThreshold); expectedThresholdName = "Room Temperature"; Assert.Equal(expectedThresholdName, thermometer.CurrentTemperatureThreshold.Name); // Act thermometer.Temperature = new Temperature(0); // decreasing temperature // Assert Assert.True(thermometer.IsAtTemperatureThreshold); expectedThresholdName = "Freezing"; Assert.Equal(expectedThresholdName, thermometer.CurrentTemperatureThreshold.Name); }
public void HitsFreezingThresholdWhenTemperatureIsDeceasingTest() { // Arrange Thermometer thermometer = new Thermometer(); List <TemperatureThreshold> temperatureThresholdList = TestUtils.CreateTemperatureThresholds(TemperatureDirection.Decreasing); thermometer.SetTemperatureThresholds(temperatureThresholdList); thermometer.Temperature = new Temperature(2); const string expectedThresholdName = "Freezing"; // Act thermometer.Temperature = new Temperature(.5); // Assert Assert.False(thermometer.IsAtTemperatureThreshold); // Act thermometer.Temperature = new Temperature(.4); // Assert Assert.False(thermometer.IsAtTemperatureThreshold); // Act thermometer.Temperature = new Temperature(0); // Assert Assert.True(thermometer.IsAtTemperatureThreshold); Assert.Equal(expectedThresholdName, thermometer.CurrentTemperatureThreshold.Name); // Act thermometer.Temperature = new Temperature(-.4); // Assert Assert.True(thermometer.IsAtTemperatureThreshold); Assert.Equal(expectedThresholdName, thermometer.CurrentTemperatureThreshold.Name); // Act thermometer.Temperature = new Temperature(+.4); // Assert Assert.True(thermometer.IsAtTemperatureThreshold); Assert.Equal(expectedThresholdName, thermometer.CurrentTemperatureThreshold.Name); // Act thermometer.Temperature = new Temperature(-.5); // Assert Assert.True(thermometer.IsAtTemperatureThreshold); Assert.Equal(expectedThresholdName, thermometer.CurrentTemperatureThreshold.Name); // Act thermometer.Temperature = new Temperature(+.5); // Assert Assert.True(thermometer.IsAtTemperatureThreshold); Assert.Equal(expectedThresholdName, thermometer.CurrentTemperatureThreshold.Name); }
public void TemperatureFlucturationWithIncreasingAndDecreasingTemperaturesTest() { // Arrange List <TemperatureThreshold> temperatureThresholdList = TestUtils.CreateTemperatureThresholds(TemperatureDirection.Decreasing); Thermometer thermometer = new Thermometer(); thermometer.SetTemperatureThresholds(temperatureThresholdList); thermometer.Temperature = new Temperature(2.0); const string expectedThresholdName = "Freezing"; // Act thermometer.Temperature = new Temperature(0.0); // decreasing temperature // Assert Assert.True(thermometer.IsAtTemperatureThreshold); Assert.Equal(expectedThresholdName, thermometer.CurrentTemperatureThreshold.Name); // Act thermometer.Temperature = new Temperature(-0.1); // decreasing temperature // Assert Assert.True(thermometer.IsAtTemperatureThreshold); Assert.Equal(expectedThresholdName, thermometer.CurrentTemperatureThreshold.Name); // Act thermometer.Temperature = new Temperature(0.0); // increasing temperature // Assert Assert.True(thermometer.IsAtTemperatureThreshold); Assert.Equal(expectedThresholdName, thermometer.CurrentTemperatureThreshold.Name); // Act thermometer.Temperature = new Temperature(-0.1); // decreasing temperature // Assert Assert.True(thermometer.IsAtTemperatureThreshold); Assert.Equal(expectedThresholdName, thermometer.CurrentTemperatureThreshold.Name); // Act thermometer.Temperature = new Temperature(0.2); // increasing temperature // Assert Assert.True(thermometer.IsAtTemperatureThreshold); Assert.Equal(expectedThresholdName, thermometer.CurrentTemperatureThreshold.Name); }
public void HitsRoomTemperatureThresholdWhenTemperatureIsDeceasingTest() { // Arrange Thermometer thermometer = new Thermometer(); List <TemperatureThreshold> temperatureThresholdList = TestUtils.CreateTemperatureThresholds(TemperatureDirection.Decreasing); thermometer.SetTemperatureThresholds(temperatureThresholdList); thermometer.Temperature = new Temperature(22); // Act thermometer.Temperature = new Temperature(20); // decreasing temperature // Assert Assert.True(thermometer.IsAtTemperatureThreshold); const string expectedThresholdName = "Room Temperature"; Assert.Equal(expectedThresholdName, thermometer.CurrentTemperatureThreshold.Name); }
public void ConvertFahrenheitTemperatureTest() { // Arrange List <TemperatureThreshold> temperatureThresholdList = TestUtils.CreateTemperatureThresholds(TemperatureDirection.Decreasing); Thermometer thermometer = new Thermometer(); thermometer.SetTemperatureThresholds(temperatureThresholdList); thermometer.Temperature = new Temperature(40, TemperatureType.Fahrenheit); // Act thermometer.Temperature = new Temperature(32, TemperatureType.Fahrenheit); // Assert Assert.True(thermometer.IsAtTemperatureThreshold); const string expectedThresholdName = "Freezing"; Assert.Equal(expectedThresholdName, thermometer.CurrentTemperatureThreshold.Name); }
public void RunThermometerMonitor() { Thermometer thermometer = new Thermometer(); List <TemperatureThreshold> temperatureThresholdList = CreateTemperatureThresholds(); thermometer.SetTemperatureThresholds(temperatureThresholdList); thermometer.TemperatureThresholdReached += HandleThermometerThresholdReached; WriteLine("\nWelcome to the temperature monitor."); WriteLine(thermometer.ToString()); WriteLine("Temperature values are followed by C or F."); WriteLine("Examples: 100C, 100 C, 100c, 20.0C, 32.0F, 32 F, 0.0C, -0.1C, +0.1C"); WriteLine("Enter blank line to exit.\n"); while (true) { Write("Enter temperature >"); string input = ReadLine(); if (string.IsNullOrWhiteSpace(input)) { break; } Temperature temperature; bool parsedTemperature = ReadTemperature(input, out temperature); if (parsedTemperature) { WriteLine($"Temperature = {temperature}"); thermometer.Temperature = temperature; } else { WriteLine("Could not parse input. Try again."); } } }
public void TemperatureThresholdEventHandlerFiresOnceAtThresholdTest() { // Arrange Thermometer thermometer = new Thermometer(); List <TemperatureThreshold> temperatureThresholdList = TestUtils.CreateTemperatureThresholds(TemperatureDirection.Decreasing); thermometer.SetTemperatureThresholds(temperatureThresholdList); thermometer.TemperatureThresholdReached += HandleTemperatureThresholdReached; thermometer.Temperature = new Temperature(2); _eventHandlerCalledCount = 0; // Act thermometer.Temperature = new Temperature(0); // Assert Assert.True(thermometer.IsAtTemperatureThreshold); // Act thermometer.Temperature = new Temperature(-0.1); // Assert Assert.True(thermometer.IsAtTemperatureThreshold); // Act thermometer.Temperature = new Temperature(-0.2); // Assert Assert.True(thermometer.IsAtTemperatureThreshold); // Act thermometer.Temperature = new Temperature(-0.3); // Assert Assert.True(thermometer.IsAtTemperatureThreshold); Assert.Equal(1, _eventHandlerCalledCount); }
public void PassedThroughThresholdWithDreasingTemperatureTest() { // Arrange Thermometer thermometer = new Thermometer(); List <TemperatureThreshold> temperatureThresholdList = TestUtils.CreateTemperatureThresholds(TemperatureDirection.Decreasing); thermometer.SetTemperatureThresholds(temperatureThresholdList); thermometer.Temperature = new Temperature(12); // Act thermometer.Temperature = new Temperature(+10); // Assert Assert.False(thermometer.IsAtTemperatureThreshold); // Act thermometer.Temperature = new Temperature(-10); // Assert const string expectedThresholdName = "Boiling"; Assert.True(thermometer.IsAtTemperatureThreshold); Assert.Equal(expectedThresholdName, thermometer.CurrentTemperatureThreshold.Name); }