| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- using Xunit;
- using YZWater.Core.Models;
- using YZWater.Core.Services;
- namespace YZWater.Core.Tests.Services;
- /// <summary>
- /// 自动控制服务集成测试
- /// 使用 MockPlcService 模拟 PLC 数据
- /// </summary>
- public class AutoControlIntegrationTests
- {
- [Fact]
- public void AutoControlService_ShouldBeCreated()
- {
- var service = AutoControlService.Instance;
- Assert.NotNull(service);
- }
- [Fact]
- public void AutoControlService_DefaultSettings()
- {
- var service = AutoControlService.Instance;
- Assert.True(service.IsEnabled);
- Assert.Equal(60, service.MinIntervalSeconds);
- Assert.Equal(3, service.StartDelaySeconds);
- Assert.Equal(5, service.StopDelaySeconds);
- Assert.True(service.EnablePumpRotation);
- }
- [Fact]
- public void AutoControlService_CanToggleEnabled()
- {
- var service = AutoControlService.Instance;
- var original = service.IsEnabled;
- service.IsEnabled = false;
- Assert.False(service.IsEnabled);
- service.IsEnabled = original;
- }
- [Fact]
- public void MockPlcService_ShouldBeToggleable()
- {
- var wasEnabled = MockPlcService.IsEnabled;
- MockPlcService.Enable();
- Assert.True(MockPlcService.IsEnabled);
- // Note: MockPlcService 没有 Disable 方法,只能 Enable
- // Restore original state if needed
- }
- [Fact]
- public void MockPlcService_ShouldGenerateData()
- {
- MockPlcService.Enable();
- var data = new PlcDataModel();
- MockPlcService.UpdateData(data);
- // Mock 模式应生成模拟数据
- Assert.True(data.IsDataValid || data.LastReadTime > DateTime.MinValue);
- }
- }
|