This commit is contained in:
2026-06-08 10:37:00 -05:00
parent 739b2be4c2
commit 193de6059e
19 changed files with 678 additions and 157 deletions
@@ -183,4 +183,78 @@ public class SensorTreeItemViewModelTests
Assert.Contains("60.0", sensorVm.Value);
}
[Fact]
public void RefreshValues_RaisesDisplayColumnChangeOnlyForChangedValue()
{
float? value = 50f;
SensorTreeItemViewModel sensorVm = CreateTemperatureSensorViewModel(() => value, () => 10f, () => 100f);
sensorVm.RefreshValues();
SensorDisplayColumn changedColumns = SensorDisplayColumn.None;
sensorVm.DisplayColumnsChanged += (_, columns) => changedColumns |= columns;
value = 60f;
sensorVm.RefreshValues();
Assert.Equal(SensorDisplayColumn.Value, changedColumns);
}
[Fact]
public void RefreshValues_DoesNotRaiseDisplayColumnChangeWhenFormattedValuesAreUnchanged()
{
SensorTreeItemViewModel sensorVm = CreateTemperatureSensorViewModel(() => 50f, () => 10f, () => 100f);
sensorVm.RefreshValues();
SensorDisplayColumn changedColumns = SensorDisplayColumn.None;
sensorVm.DisplayColumnsChanged += (_, columns) => changedColumns |= columns;
sensorVm.RefreshValues();
Assert.Equal(SensorDisplayColumn.None, changedColumns);
}
[Fact]
public void Text_RaisesSensorDisplayColumnChange()
{
SensorTreeItemViewModel sensorVm = CreateTemperatureSensorViewModel(() => 50f, () => 10f, () => 100f);
SensorDisplayColumn changedColumns = SensorDisplayColumn.None;
sensorVm.DisplayColumnsChanged += (_, columns) => changedColumns |= columns;
sensorVm.Text = "Renamed Core";
Assert.Equal(SensorDisplayColumn.Sensor, changedColumns);
}
[Fact]
public void SetTemperatureUnit_RaisesValueMinAndMaxDisplayColumnChanges()
{
SensorTreeItemViewModel sensorVm = CreateTemperatureSensorViewModel(() => 50f, () => 10f, () => 100f);
sensorVm.RefreshValues();
SensorDisplayColumn changedColumns = SensorDisplayColumn.None;
sensorVm.DisplayColumnsChanged += (_, columns) => changedColumns |= columns;
sensorVm.SetTemperatureUnit(TemperatureUnit.Fahrenheit);
Assert.Equal(SensorDisplayColumn.Value | SensorDisplayColumn.Min | SensorDisplayColumn.Max, changedColumns);
}
private SensorTreeItemViewModel CreateTemperatureSensorViewModel(Func<float?> value, Func<float?> min, Func<float?> max)
{
var mockSensor = new Mock<ISensor>();
mockSensor.SetupProperty(s => s.Name, "Core 0");
mockSensor.Setup(s => s.Identifier).Returns(new Identifier("cpu", "0", "temperature", "0"));
mockSensor.Setup(s => s.SensorType).Returns(SensorType.Temperature);
mockSensor.Setup(s => s.Index).Returns(0);
mockSensor.Setup(s => s.Value).Returns(value);
mockSensor.Setup(s => s.Min).Returns(min);
mockSensor.Setup(s => s.Max).Returns(max);
var mockHardware = new Mock<IHardware>();
mockHardware.Setup(s => s.Name).Returns("CPU");
mockHardware.Setup(h => h.HardwareType).Returns(HardwareType.Cpu);
mockHardware.Setup(h => h.Identifier).Returns(new Identifier("cpu", "0"));
mockHardware.Setup(h => h.Sensors).Returns(new[] { mockSensor.Object });
mockHardware.Setup(h => h.SubHardware).Returns(Array.Empty<IHardware>());
return SensorTreeItemViewModel.FromHardware(mockHardware.Object, CreateMockSettings()).Children.First().Children.First();
}
}