diff --git a/test/integration/Appium.Net.Integration.Tests.csproj b/test/integration/Appium.Net.Integration.Tests.csproj index c2cceadc2..56db6f627 100644 --- a/test/integration/Appium.Net.Integration.Tests.csproj +++ b/test/integration/Appium.Net.Integration.Tests.csproj @@ -16,7 +16,7 @@ runtime; build; native; contentfiles; analyzers; buildtransitive - + diff --git a/test/integration/helpers/Env.cs b/test/integration/helpers/Env.cs index f9fca01a5..d977b1e9b 100644 --- a/test/integration/helpers/Env.cs +++ b/test/integration/helpers/Env.cs @@ -1,7 +1,7 @@ using System; using System.Collections.Generic; using System.IO; -using Newtonsoft.Json; +using System.Text.Json; namespace Appium.Net.Integration.Tests.helpers { @@ -10,32 +10,45 @@ public class Env public static TimeSpan InitTimeoutSec = TimeSpan.FromSeconds(180); public static TimeSpan ImplicitTimeoutSec = TimeSpan.FromSeconds(10); - private static Dictionary _env; + private static Dictionary _env; private static bool _initialized; private static void Init() { + _env = new Dictionary + { + { "DEV", JsonDocument.Parse("true").RootElement }, + { "isRemoteAppiumServer", JsonDocument.Parse("false").RootElement }, + { "remoteAppiumServerUri", JsonDocument.Parse("\"http://localhost:4723\"").RootElement } + }; + + if (_initialized) return; + try { - if (!_initialized) + _initialized = true; + var path = AppDomain.CurrentDomain.BaseDirectory; + var sr = new StreamReader(path + "env.json"); + var jsonString = sr.ReadToEnd(); + _env = JsonSerializer.Deserialize>(jsonString, new JsonSerializerOptions { - _initialized = true; - var path = AppDomain.CurrentDomain.BaseDirectory; - var sr = new StreamReader(path + "env.json"); - var jsonString = sr.ReadToEnd(); - _env = JsonConvert.DeserializeObject>(jsonString); - } + PropertyNameCaseInsensitive = true + }); } - catch + catch (JsonException jsonEx) { - _env = new Dictionary(); + Console.WriteLine($"Error parsing JSON: {jsonEx.Message}"); + } + catch (Exception ex) + { + Console.WriteLine($"Error initializing environment: {ex.Message}"); } } - private static bool IsTrue(string val) + private static bool IsTrue(object val) { - val = val?.ToLower().Trim(); - return (val == "true") || (val == "1"); + val = val?.ToString().ToLower().Trim(); + return val.Equals("true") || val.Equals("1"); } public static bool ServerIsRemote() @@ -47,16 +60,25 @@ public static bool ServerIsRemote() public static bool ServerIsLocal() { Init(); - return _env.ContainsKey("DEV") && IsTrue(_env["DEV"]) || IsTrue(Environment.GetEnvironmentVariable("DEV")); + return (_env.ContainsKey("DEV") && IsTrue(_env["DEV"])) || IsTrue(Environment.GetEnvironmentVariable("DEV")); } public static string GetEnvVar(string name) { - if (_env.ContainsKey(name) && (_env[name] != null)) + if (_env.ContainsKey(name)) { - return _env[name]; + JsonElement element = _env[name]; + + return element.ValueKind switch + { + JsonValueKind.String => element.GetString(), + JsonValueKind.Number => element.GetRawText(), + JsonValueKind.True or JsonValueKind.False => element.GetRawText(), + JsonValueKind.Null => null, + _ => element.GetRawText() + }; } - return Environment.GetEnvironmentVariable(name); + return Environment.GetEnvironmentVariable(name); } } } \ No newline at end of file