diff --git a/Saucery.Core/Dojo/BrowserVersion.cs b/Saucery.Core/Dojo/BrowserVersion.cs index c3c426d3..301c1069 100644 --- a/Saucery.Core/Dojo/BrowserVersion.cs +++ b/Saucery.Core/Dojo/BrowserVersion.cs @@ -41,7 +41,7 @@ public class BrowserVersion public BrowserVersion(SupportedPlatform sp, BrowserBase b) { - Os = sp.os!; + Os = sp.Os!; PlatformNameForOption = b.PlatformNameForOption; ScreenResolutions = b.ScreenResolutions; BrowserName = sp.api_name!; diff --git a/Saucery.Core/Dojo/Browsers/Base/BrowserBase.cs b/Saucery.Core/Dojo/Browsers/Base/BrowserBase.cs index a6b34869..9988f6d1 100644 --- a/Saucery.Core/Dojo/Browsers/Base/BrowserBase.cs +++ b/Saucery.Core/Dojo/Browsers/Base/BrowserBase.cs @@ -25,7 +25,7 @@ public abstract class BrowserBase : IBrowser protected BrowserBase(SupportedPlatform sp, List screenResolutions, string platformNameForOption) { - Os = sp.os!; + Os = sp.Os!; PlatformNameForOption = platformNameForOption; AutomationBackend = sp.automation_backend!; Name = sp.api_name!; diff --git a/Saucery.Core/Dojo/Browsers/BrowserFactory.cs b/Saucery.Core/Dojo/Browsers/BrowserFactory.cs index fda4ff3d..a55cc224 100644 --- a/Saucery.Core/Dojo/Browsers/BrowserFactory.cs +++ b/Saucery.Core/Dojo/Browsers/BrowserFactory.cs @@ -14,7 +14,7 @@ public class BrowserFactory ? new AndroidBrowserCreator(sp).Create("Android", null!) : sp.IsIOSPlatform() ? new IOSBrowserCreator(sp).Create("iOS", null!) - : sp.os switch + : sp.Os switch { SauceryConstants.PLATFORM_LINUX => new LinuxBrowserCreator(sp).Create("Linux", screenResolutions), SauceryConstants.PLATFORM_WINDOWS_11 => new Windows11BrowserCreator(sp).Create("Windows 11", screenResolutions), diff --git a/Saucery.Core/Dojo/Browsers/ConcreteProducts/PC/ChromeBrowser.cs b/Saucery.Core/Dojo/Browsers/ConcreteProducts/PC/ChromeBrowser.cs index a9bbd166..d62a8870 100644 --- a/Saucery.Core/Dojo/Browsers/ConcreteProducts/PC/ChromeBrowser.cs +++ b/Saucery.Core/Dojo/Browsers/ConcreteProducts/PC/ChromeBrowser.cs @@ -11,7 +11,7 @@ internal class ChromeBrowser(SupportedPlatform sp, List screenResolution bv.Name!.Equals(sp.latest_stable_version) || bv.Name.Equals(sp.short_version)); - public int MinimumVersion(SupportedPlatform sp) => sp.os switch + public int MinimumVersion(SupportedPlatform sp) => sp.Os switch { SauceryConstants.PLATFORM_WINDOWS_11 or SauceryConstants.PLATFORM_WINDOWS_10 or diff --git a/Saucery.Core/Dojo/Browsers/ConcreteProducts/PC/IEBrowser.cs b/Saucery.Core/Dojo/Browsers/ConcreteProducts/PC/IEBrowser.cs index 8120ac90..952b11f1 100644 --- a/Saucery.Core/Dojo/Browsers/ConcreteProducts/PC/IEBrowser.cs +++ b/Saucery.Core/Dojo/Browsers/ConcreteProducts/PC/IEBrowser.cs @@ -11,7 +11,7 @@ internal class IEBrowser(SupportedPlatform sp, List screenResolutions, s .Find(bv => bv.Name!.Equals(sp.latest_stable_version) || bv.Name.Equals(sp.short_version)); - public int MinimumVersion(SupportedPlatform sp) => sp.os switch + public int MinimumVersion(SupportedPlatform sp) => sp.Os switch { SauceryConstants.PLATFORM_WINDOWS_10 => 11, SauceryConstants.PLATFORM_WINDOWS_81 => 11, diff --git a/Saucery.Core/Dojo/Browsers/ConcreteProducts/PC/SafariBrowser.cs b/Saucery.Core/Dojo/Browsers/ConcreteProducts/PC/SafariBrowser.cs index 20ac5d23..314a8651 100644 --- a/Saucery.Core/Dojo/Browsers/ConcreteProducts/PC/SafariBrowser.cs +++ b/Saucery.Core/Dojo/Browsers/ConcreteProducts/PC/SafariBrowser.cs @@ -11,7 +11,7 @@ internal class SafariBrowser(SupportedPlatform sp, List screenResolution .Find(bv => bv.Name!.Equals(sp.latest_stable_version) || bv.Name.Equals(sp.short_version)); - public int MinimumVersion(SupportedPlatform sp) => sp.os switch + public int MinimumVersion(SupportedPlatform sp) => sp.Os switch { SauceryConstants.PLATFORM_MAC_12 => 15, SauceryConstants.PLATFORM_MAC_11 => 14, diff --git a/Saucery.Core/Dojo/DojoExtensions.cs b/Saucery.Core/Dojo/DojoExtensions.cs index 7f36686f..85b95117 100644 --- a/Saucery.Core/Dojo/DojoExtensions.cs +++ b/Saucery.Core/Dojo/DojoExtensions.cs @@ -21,7 +21,7 @@ public static void AddRealPlatform(this List platforms, SupportedP //first one p = PlatformFactory.CreateRealPlatform(sp); if(p == null) { - //SauceLabs may have just added it to the platform cornfigurato. Don't fall over. + //SauceLabs may have just added it to the platform configurator. Don't fall over. return; } platforms.Add(p); @@ -57,7 +57,7 @@ public static void AddPlatform(this List platforms, SupportedPlatf foreach(var m in platforms) { result = platforms - .Find(mp => mp.Name.Equals(sp.os, StringComparison.Ordinal) && + .Find(mp => mp.Name.Equals(sp.Os, StringComparison.Ordinal) && mp.PlatformVersion!.Equals(sp.OsVersion?.Split(".")[0], StringComparison.Ordinal)); if(result != null) { @@ -83,7 +83,7 @@ public static void AddPlatform(this List platforms, SupportedPlatf foreach(var m in mobilePlatforms) { result = mobilePlatforms - .Find(mp => mp.Name.Equals(sp.os, StringComparison.Ordinal) && + .Find(mp => mp.Name.Equals(sp.Os, StringComparison.Ordinal) && mp.PlatformVersion!.Equals(sp.short_version, StringComparison.Ordinal)); if(result != null) { @@ -94,7 +94,7 @@ public static void AddPlatform(this List platforms, SupportedPlatf } else { foreach (var d in desktopPlatforms) { - result = desktopPlatforms.Find(dp => dp.Name.Equals(sp.os, StringComparison.Ordinal)); + result = desktopPlatforms.Find(dp => dp.Name.Equals(sp.Os, StringComparison.Ordinal)); if (result != null) { @@ -306,12 +306,12 @@ public static PlatformBase FindIOSPlatform(this List platforms, Sa .FirstOrDefault(b => b.Name .Equals(sp.api_name, StringComparison.Ordinal) && b.DeviceName.Equals(sp.long_name, StringComparison.Ordinal) && - b.Os.Equals(sp.os, StringComparison.Ordinal)); + b.Os.Equals(sp.Os, StringComparison.Ordinal)); private static BrowserBase? FindRealBrowser(this IEnumerable browsers, SupportedPlatform sp) => browsers .FirstOrDefault(b => b.Name.Equals(sp.api_name, StringComparison.Ordinal) && b.DeviceName.Equals(sp.long_name, StringComparison.Ordinal) && - b.Os.Equals(sp.os, StringComparison.Ordinal)); + b.Os.Equals(sp.Os, StringComparison.Ordinal)); public static BrowserVersion Classify(this BrowserVersion browserVersion) { diff --git a/Saucery.Core/Dojo/PlatformConfigurator.cs b/Saucery.Core/Dojo/PlatformConfigurator.cs index 5d923698..af2a64fb 100644 --- a/Saucery.Core/Dojo/PlatformConfigurator.cs +++ b/Saucery.Core/Dojo/PlatformConfigurator.cs @@ -96,13 +96,13 @@ internal int FindMaxBrowserVersion(SaucePlatform platform) } private static List FindLinuxPlatforms(List platforms) => - platforms.FindAll(p => p.os! == "Linux" && p.automation_backend!.Equals("webdriver") && p.device! == null); + platforms.FindAll(p => p.Os! == "Linux" && p.automation_backend!.Equals("webdriver") && p.device! == null); private static List FindWindowsPlatforms(List platforms) => - platforms.FindAll(p => p.os!.Contains("Windows") && p.automation_backend!.Equals("webdriver")); + platforms.FindAll(p => p.Os!.Contains("Windows") && p.automation_backend!.Equals("webdriver")); private static List FindMacPlatforms(List platforms, IReadOnlyCollection oses) => - platforms.FindAll(p => oses.Any(o => o.Equals(p.os)) && p.automation_backend!.Equals("webdriver") && !p.api_name!.Equals("ipad") && !p.api_name.Equals("iphone")); + platforms.FindAll(p => oses.Any(o => o.Equals(p.Os)) && p.automation_backend!.Equals("webdriver") && !p.api_name!.Equals("ipad") && !p.api_name.Equals("iphone")); private static List FindMobilePlatforms(List platforms, IReadOnlyCollection apis) => platforms.FindAll(p => apis.Any(a => a.Equals(p.api_name)) && p.automation_backend!.Equals("appium")); diff --git a/Saucery.Core/Dojo/Platforms/Base/PlatformBase.cs b/Saucery.Core/Dojo/Platforms/Base/PlatformBase.cs index 02921997..be63c650 100644 --- a/Saucery.Core/Dojo/Platforms/Base/PlatformBase.cs +++ b/Saucery.Core/Dojo/Platforms/Base/PlatformBase.cs @@ -20,7 +20,7 @@ public abstract class PlatformBase protected PlatformBase(SupportedPlatform sp) { - Name = sp.os!; + Name = sp.Os!; AutomationBackend = sp.automation_backend!; RecommendedAppiumVersion = sp.recommended_backend_version!; SupportedBackendVersions = sp.supported_backend_versions!; diff --git a/Saucery.Core/Dojo/Platforms/DesktopPlatformFactory.cs b/Saucery.Core/Dojo/Platforms/DesktopPlatformFactory.cs index 21118a6b..7c3eb8b3 100644 --- a/Saucery.Core/Dojo/Platforms/DesktopPlatformFactory.cs +++ b/Saucery.Core/Dojo/Platforms/DesktopPlatformFactory.cs @@ -7,7 +7,7 @@ namespace Saucery.Core.Dojo.Platforms; public class DesktopPlatformFactory { - public static PlatformBase? CreatePlatform(SupportedPlatform sp) => sp.os switch { + public static PlatformBase? CreatePlatform(SupportedPlatform sp) => sp.Os switch { SauceryConstants.PLATFORM_LINUX => new LinuxPlatformCreator(sp).Create(), SauceryConstants.PLATFORM_WINDOWS_11 => new Windows11PlatformCreator(sp).Create(), SauceryConstants.PLATFORM_WINDOWS_10 => new Windows10PlatformCreator(sp).Create(), diff --git a/Saucery.Core/RestAPI/FlowControl/SauceLabsFlowController.cs b/Saucery.Core/RestAPI/FlowControl/SauceLabsFlowController.cs index 8b0c4e1b..ad12f222 100644 --- a/Saucery.Core/RestAPI/FlowControl/SauceLabsFlowController.cs +++ b/Saucery.Core/RestAPI/FlowControl/SauceLabsFlowController.cs @@ -30,7 +30,10 @@ protected override bool TooManyTests() { //Console.WriteLine(@"Debug: {0}", json); var remainingSection = ExtractJsonSegment(json!, json!.IndexOf("\"remaining", StringComparison.Ordinal), json.Length - 3); //Console.WriteLine(@"Debug: remainingsection = {0}", remainingSection); - var flowControl = JsonSerializer.Deserialize(remainingSection); + var flowControl = JsonSerializer.Deserialize(remainingSection, new JsonSerializerOptions + { + PropertyNameCaseInsensitive = true + }); return flowControl?.remaining!.overall <= 0; } diff --git a/Saucery.Core/RestAPI/SupportedPlatform.cs b/Saucery.Core/RestAPI/SupportedPlatform.cs index d3cedc17..e73ddadc 100644 --- a/Saucery.Core/RestAPI/SupportedPlatform.cs +++ b/Saucery.Core/RestAPI/SupportedPlatform.cs @@ -11,7 +11,7 @@ public class SupportedPlatform { public string? device { get; set; } public string? latest_stable_version { get; set; } public string? automation_backend { get; set; } - public string? os { get; set; } + public string? Os { get; set; } //REAL DEVICE @@ -32,7 +32,6 @@ public class SupportedPlatform { public bool IsTablet { get; set; } public List? Manufacturer { get; set; } public string? ModelNumber { get; set; } - public string? Os { get; set; } public string? OsVersion { get; set; } public int PixelsPerPoint { get; set; } public int RamSize { get; set; } diff --git a/Saucery.Core/RestAPI/SupportedPlatforms/SauceLabsPlatformAcquirer.cs b/Saucery.Core/RestAPI/SupportedPlatforms/SauceLabsPlatformAcquirer.cs index df0c73f7..34239de7 100644 --- a/Saucery.Core/RestAPI/SupportedPlatforms/SauceLabsPlatformAcquirer.cs +++ b/Saucery.Core/RestAPI/SupportedPlatforms/SauceLabsPlatformAcquirer.cs @@ -18,7 +18,11 @@ public SauceLabsPlatformAcquirer() } public override List? AcquirePlatforms() { var json = GetJsonResponse(SauceryConstants.SUPPORTED_PLATFORMS_REQUEST); - var supportedPlatforms = JsonSerializer.Deserialize>(json!); + var supportedPlatforms = JsonSerializer.Deserialize>(json!, new JsonSerializerOptions + { + PropertyNameCaseInsensitive = true + }); + return supportedPlatforms; } } \ No newline at end of file diff --git a/Saucery.Core/RestAPI/SupportedPlatforms/SauceLabsRealDeviceAcquirer.cs b/Saucery.Core/RestAPI/SupportedPlatforms/SauceLabsRealDeviceAcquirer.cs index 6eaf0e81..33471b0c 100644 --- a/Saucery.Core/RestAPI/SupportedPlatforms/SauceLabsRealDeviceAcquirer.cs +++ b/Saucery.Core/RestAPI/SupportedPlatforms/SauceLabsRealDeviceAcquirer.cs @@ -19,7 +19,10 @@ public SauceLabsRealDeviceAcquirer() public override List? AcquireRealDevicePlatforms() { var json = GetJsonResponse(SauceryConstants.SUPPORTED_REALDEVICE_PLATFORMS_REQUEST); - var supportedPlatforms = JsonSerializer.Deserialize>(json!); + var supportedPlatforms = JsonSerializer.Deserialize>(json!, new JsonSerializerOptions + { + PropertyNameCaseInsensitive = true + }); return supportedPlatforms; }