Beispiel #1
0
        protected ScriptHostEndToEndTestFixture(string rootPath, string testId, ProxyClientExecutor proxyClient = null, bool startHost = true, ICollection <string> functions = null, string functionsWorkerLanguage = null)
        {
            if (!string.IsNullOrEmpty(functionsWorkerLanguage))
            {
                Environment.SetEnvironmentVariable(LanguageWorkerConstants.FunctionWorkerRuntimeSettingName, functionsWorkerLanguage);
            }
            _settingsManager = ScriptSettingsManager.Instance;
            FixtureId        = testId;
            string connectionString            = AmbientConnectionStringProvider.Instance.GetConnectionString(ConnectionStringNames.Storage);
            CloudStorageAccount storageAccount = CloudStorageAccount.Parse(connectionString);

            QueueClient = storageAccount.CreateCloudQueueClient();
            BlobClient  = storageAccount.CreateCloudBlobClient();
            TableClient = storageAccount.CreateCloudTableClient();

            CreateTestStorageEntities().Wait();

            // ApiHubTestHelper.SetDefaultConnectionFactory();

            ScriptHostConfiguration config = new ScriptHostConfiguration()
            {
                RootScriptPath  = rootPath,
                FileLoggingMode = FileLoggingMode.Always,
            };

            if (functions != null)
            {
                config.OnConfigurationApplied = c => c.Functions = functions;
            }

            RequestConfiguration = new HttpConfiguration();

            EventManager = new ScriptEventManager();
            ScriptHostEnvironmentMock = new Mock <IScriptHostEnvironment>();
            LoggerProvider            = new TestLoggerProvider();
            ILoggerProviderFactory loggerProviderFactory = new TestLoggerProviderFactory(LoggerProvider);

            // Reset the timer logs first, since one of the tests will
            // be checking them
            TestHelpers.ClearFunctionLogs("TimerTrigger");
            TestHelpers.ClearFunctionLogs("ListenerStartupException");

            InitializeConfig(config);
            Func <string, FunctionDescriptor> funcLookup = (name) => this.Host.GetFunctionOrNull(name);
            var fastLogger = new FunctionInstanceLogger(funcLookup, new MetricsLogger());

            config.HostConfig.AddService <IAsyncCollector <FunctionInstanceLogEntry> >(fastLogger);
            Host = new ScriptHost(ScriptHostEnvironmentMock.Object, EventManager, config, _settingsManager,
                                  proxyClient: proxyClient, loggerProviderFactory: loggerProviderFactory);
            Host.Initialize();

            if (startHost)
            {
                Host.HostStarted += (s, e) => _hostStartedEvent.Set();
                Host.Start();
                _hostStartedEvent.Wait(TimeSpan.FromSeconds(30));
            }
        }
        public FunctionDescriptorProviderTests()
        {
            string rootPath = Path.Combine(Environment.CurrentDirectory, @"TestScripts\Node");
            ScriptHostConfiguration config = new ScriptHostConfiguration
            {
                RootScriptPath = rootPath
            };

            var environment  = new Mock <IScriptHostEnvironment>();
            var eventManager = new Mock <IScriptEventManager>();

            _settingsManager = ScriptSettingsManager.Instance;
            _host            = new ScriptHost(environment.Object, eventManager.Object, config, _settingsManager);
            _host.Initialize();
            _provider = new TestDescriptorProvider(_host, config);
        }
        public ProxyFunctionDescriptorProviderTests()
        {
            string rootPath = Path.Combine(Environment.CurrentDirectory, @"TestScripts\Proxies");

            _config = new ScriptHostConfiguration
            {
                RootScriptPath = rootPath
            };

            var environment  = new Mock <IScriptHostEnvironment>();
            var eventManager = new Mock <IScriptEventManager>();

            _proxyClient     = GetMockProxyClient();
            _settingsManager = ScriptSettingsManager.Instance;
            _host            = new ScriptHost(environment.Object, eventManager.Object, _config, _settingsManager, proxyClient: _proxyClient);
            _host.Initialize();
            _metadataCollection = _host.ReadProxyMetadata(_config, _settingsManager);
        }