New way of reading configurations from file and deserializing

This commit is contained in:
2022-01-27 09:44:16 +01:00
parent 55f9bb666b
commit aabebc3e1e
8 changed files with 64 additions and 18 deletions

View File

@ -15,6 +15,7 @@ namespace EATestFramework.Driver
_testSettings = testSettings;
_browserDriver = browserDriver;
driver = GetWebDriver();
driver.Navigate().GoToUrl(_testSettings.ApplicationUrl);
}

View File

@ -1,20 +1,39 @@
using EATestFramework.Driver;
using EATestFramework.Settings;
using Microsoft.Extensions.DependencyInjection;
using System.IO;
using System.Reflection;
using System.Text.Json;
using System.Text.Json.Serialization;
namespace EATestFramework.Extensions;
public static class WebDriverInitializerExtension
{
public static IServiceCollection UseWebDriverInitializer(
this IServiceCollection services,
BrowserType browserType)
this IServiceCollection services)
{
services.AddSingleton(new TestSettings
{
BrowserType = browserType
});
services.AddSingleton(ReadConfig());
return services;
}
private static TestSettings ReadConfig()
{
var configFile = File
.ReadAllText(Path.GetDirectoryName(
Assembly.GetExecutingAssembly().Location)
+ "/appsettings.json");
var jsonSerializeOptions = new JsonSerializerOptions()
{
PropertyNameCaseInsensitive = true
};
jsonSerializeOptions.Converters.Add(new JsonStringEnumConverter());
var testSettings = JsonSerializer.Deserialize<TestSettings>(configFile, jsonSerializeOptions);
return testSettings;
}
}

View File

@ -1,9 +1,13 @@
using EATestFramework.Driver;
using System;
namespace EATestFramework.Settings
{
public class TestSettings
{
public BrowserType BrowserType { get; set; }
public Uri ApplicationUrl { get; set; }
public int TimeoutInterval { get; set; }
}
}

View File

@ -8,7 +8,6 @@ namespace EATestFramework
{
public void ConfigureServices(IServiceCollection services)
{
services.UseWebDriverInitializer(BrowserType.Firefox);
services.AddScoped<IBrowserDriver, BrowserDriver>();
services.AddScoped<IDriverFixture, DriverFixture>();
}