Exemple #1
0
 /// <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();
 }
        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);
        }