/// <summary> /// Initializes a new instance of the <see cref="WebDriverFactorySource"/> class. /// </summary> /// <param name="factoryCreator">A factory service which creates web driver factories (a factory-factory if you will).</param> /// <param name="optionsCreator">A factory service which instantiates instances of factory options.</param> /// <param name="configurationReader">A service which reads the application configuration.</param> /// <param name="environmentReader">A service which reads the process' environment variables.</param> public WebDriverFactorySource(ICreatesWebDriverFactory factoryCreator = null, ICreatesFactoryOptions optionsCreator = null, IConfigurationReader configurationReader = null, IReadsEnvironmentVariables environmentReader = null) { this.factoryCreator = GetFactoryCreator(factoryCreator); this.optionsCreator = optionsCreator ?? new FactoryOptionsFactory(); this.configurationReader = configurationReader ?? new ConfigurationReader(); this.environmentReader = environmentReader ?? new EnvironmentReader(); }
ICreatesWebDriverFactory GetFactoryCreator(ICreatesWebDriverFactory creator) { if (creator != null) { return(creator); } var instanceCreator = new ActivatorInstanceCreator(); return(new WebDriverFactoryCreator(instanceCreator)); }
public void GetWebDriverProviderFactory_returns_proxy_when_factory_supports_options(ICreatesWebDriverFactory factoryCreator, ICreatesFactoryOptions optionsCreator, IDescribesWebDriverFactory config, ICreatesWebDriverFromOptions factory, object options, string typeName, Dictionary <string, string> optionsDictionary) { // Arrange var sut = new WebDriverFactorySource(factoryCreator, optionsCreator); Mock.Get(config) .Setup(x => x.GetFactoryAssemblyQualifiedTypeName()) .Returns(typeName); Mock.Get(config) .Setup(x => x.GetOptionKeyValuePairs()) .Returns(optionsDictionary); Mock.Get(factoryCreator) .Setup(x => x.GetFactory(It.IsAny <string>())) .Returns(factory); Mock.Get(optionsCreator) .Setup(x => x.GetFactoryOptions(factory, It.IsAny <IDictionary <string, string> >())) .Returns(options); // Act var result = sut.CreateFactory(config); // Assert Assert.That(result, Is.InstanceOf <OptionsCachingDriverFactoryProxy>()); var proxy = (OptionsCachingDriverFactoryProxy)result; Assert.That(proxy.ProxiedFactory, Is.SameAs(factory)); }
public void GetWebDriverProviderFactory_returns_factory_creator_result_when_factory_does_not_support_options(ICreatesWebDriverFactory factoryCreator, ICreatesFactoryOptions optionsCreator, IDescribesWebDriverFactory config, ICreatesWebDriver factory, string typeName, Dictionary <string, string> optionsDictionary) { // Arrange var sut = new WebDriverFactorySource(factoryCreator, optionsCreator); Mock.Get(config) .Setup(x => x.GetFactoryAssemblyQualifiedTypeName()) .Returns(typeName); Mock.Get(config) .Setup(x => x.GetOptionKeyValuePairs()) .Returns(optionsDictionary); Mock.Get(factoryCreator) .Setup(x => x.GetFactory(It.IsAny <string>())) .Returns(factory); // Act var result = sut.CreateFactory(config); // Assert Assert.That(result, Is.SameAs(factory)); }
public void GetWebDriverProviderFactory_passes_assembly_name_to_factory_creator(ICreatesWebDriverFactory factoryCreator, ICreatesFactoryOptions optionsCreator, IDescribesWebDriverFactory config, string typeName, Dictionary <string, string> optionsDictionary) { // Arrange var sut = new WebDriverFactorySource(factoryCreator, optionsCreator); Mock.Get(config) .Setup(x => x.GetFactoryAssemblyQualifiedTypeName()) .Returns(typeName); Mock.Get(config) .Setup(x => x.GetOptionKeyValuePairs()) .Returns(optionsDictionary); // Act var result = sut.CreateFactory(config); // Assert Mock.Get(factoryCreator).Verify(x => x.GetFactory(typeName), Times.Once); }
public void GetWebDriverProviderFactory_returns_null_when_config_does_not_exist(ICreatesWebDriverFactory factoryCreator, ICreatesFactoryOptions optionsCreator) { // Arrange var sut = new WebDriverFactorySource(factoryCreator, optionsCreator); // Act var result = sut.CreateFactory(null); // Assert Assert.That(result, Is.Null); }