using CryptoExchange.Net.Objects; namespace CryptoExchange.Net.UnitTests.Implementations { internal class TestEnvironment : TradeEnvironment { public string RestClientAddress { get; } public string SocketClientAddress { get; } internal TestEnvironment( string name, string restAddress, string streamAddress) : base(name) { RestClientAddress = restAddress; SocketClientAddress = streamAddress; } #pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider adding the 'required' modifier or declaring as nullable. public TestEnvironment() : base(TradeEnvironmentNames.Live) #pragma warning restore CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider adding the 'required' modifier or declaring as nullable. { } /// /// Get the CryptoCom environment by name /// public static TestEnvironment? GetEnvironmentByName(string? name) => name switch { TradeEnvironmentNames.Live => Live, "" => Live, null => Live, _ => default }; /// /// Available environment names /// /// public static string[] All => [Live.Name]; /// /// Live environment /// public static TestEnvironment Live { get; } = new TestEnvironment(TradeEnvironmentNames.Live, "https://localhost", "wss://localhost"); /// /// Create a custom environment /// /// /// /// /// public static TestEnvironment CreateCustom( string name, string spotRestAddress, string spotSocketStreamsAddress) => new TestEnvironment(name, spotRestAddress, spotSocketStreamsAddress); } }