using PepperDash.Core.Abstractions; namespace PepperDash.Core.Tests.Fakes; /// /// Configurable ICrestronEnvironment for unit tests. /// Defaults: Appliance / SimplSharpPro / ApplicationNumber=1. /// public class FakeCrestronEnvironment : ICrestronEnvironment { public DevicePlatform DevicePlatform { get; set; } = DevicePlatform.Appliance; public RuntimeEnvironment RuntimeEnvironment { get; set; } = RuntimeEnvironment.SimplSharpPro; public string NewLine { get; set; } = "\r\n"; public uint ApplicationNumber { get; set; } = 1; public uint RoomId { get; set; } = 0; public event EventHandler? ProgramStatusChanged; public event EventHandler? EthernetEventReceived; public string GetApplicationRootDirectory() => System.IO.Path.GetTempPath(); /// public bool IsHardwareRuntime => false; /// Simulates a program status event for tests. public void RaiseProgramStatus(ProgramStatusEventType type) => ProgramStatusChanged?.Invoke(this, new ProgramStatusEventArgs(type)); /// Simulates an ethernet event for tests. public void RaiseEthernetEvent(EthernetEventType type, short adapter = 0) => EthernetEventReceived?.Invoke(this, new PepperDashEthernetEventArgs(type, adapter)); } /// /// No-op IEthernetHelper that returns configurable values. /// public class FakeEthernetHelper : IEthernetHelper { private readonly Dictionary _values = new(); public FakeEthernetHelper Seed(EthernetParameterType param, string value) { _values[param] = value; return this; } public string GetEthernetParameter(EthernetParameterType parameter, short ethernetAdapterId) => _values.TryGetValue(parameter, out var v) ? v : string.Empty; }