public KeysControllerTests()
        {
            _settingsManager    = ScriptSettingsManager.Instance;
            _testFunctions      = new Collection <FunctionDescriptor>();
            _testFunctionErrors = new Dictionary <string, Collection <string> >();

            string rootScriptPath = @"c:\test\functions";
            var    environment    = new NullScriptHostEnvironment();
            var    eventManager   = new Mock <IScriptEventManager>();
            var    mockRouter     = new Mock <IWebJobsRouter>();

            var settings = new ScriptApplicationHostOptions()
            {
                ScriptPath  = rootScriptPath,
                SecretsPath = _secretsDirectory.Path
            };

            _secretsManagerMock = new Mock <ISecretManager>(MockBehavior.Strict);

            var fileSystem = new Mock <IFileSystem>();
            var fileBase   = new Mock <FileBase>();
            var dirBase    = new Mock <DirectoryBase>();

            fileSystem.SetupGet(f => f.File).Returns(fileBase.Object);
            fileBase.Setup(f => f.ReadAllText(Path.Combine(rootScriptPath, "TestFunction1", ScriptConstants.FunctionMetadataFileName))).Returns("{}");
            fileBase.Setup(f => f.ReadAllText(Path.Combine(rootScriptPath, "TestFunction2", ScriptConstants.FunctionMetadataFileName))).Returns("{}");
            fileBase.Setup(f => f.ReadAllText(Path.Combine(rootScriptPath, "DNE", ScriptConstants.FunctionMetadataFileName))).Throws(new DirectoryNotFoundException());

            _functionsSyncManagerMock = new Mock <IFunctionsSyncManager>(MockBehavior.Strict);
            _functionsSyncManagerMock.Setup(p => p.TrySyncTriggersAsync(false)).ReturnsAsync(new SyncTriggersResult {
                Success = true
            });
            var hostManagerMock = new Mock <IScriptHostManager>(MockBehavior.Strict);

            hostManagerMock.SetupGet(p => p.State).Returns(ScriptHostState.Running);
            _testController = new KeysController(new OptionsWrapper <ScriptApplicationHostOptions>(settings), new TestSecretManagerProvider(_secretsManagerMock.Object), new LoggerFactory(), fileSystem.Object, _functionsSyncManagerMock.Object, hostManagerMock.Object);

            var keys = new Dictionary <string, string>
            {
                { "key1", "secret1" }
            };

            _secretsManagerMock.Setup(p => p.GetFunctionSecretsAsync("TestFunction1", false)).ReturnsAsync(keys);

            keys = new Dictionary <string, string>
            {
                { "key1", "secret1" }
            };
            _secretsManagerMock.Setup(p => p.GetFunctionSecretsAsync("TestFunction2", false)).ReturnsAsync(keys);

            _secretsManagerMock.Setup(p => p.GetFunctionSecretsAsync("DNE", false)).ReturnsAsync((IDictionary <string, string>)null);

            SetHttpContext();
        }
Esempio n. 2
0
        public AdminControllerTests()
        {
            _settingsManager = ScriptSettingsManager.Instance;
            testFunctions = new Collection<FunctionDescriptor>();

            var config = new ScriptHostConfiguration();
            var environment = new NullScriptHostEnvironment();
            var eventManager = new Mock<IScriptEventManager>();
            hostMock = new Mock<ScriptHost>(MockBehavior.Strict, new object[] { environment, eventManager.Object, config, null });
            hostMock.Setup(p => p.Functions).Returns(testFunctions);

            WebHostSettings settings = new WebHostSettings();
            settings.SecretsPath = _secretsDirectory.Path;
            managerMock = new Mock<WebScriptHostManager>(MockBehavior.Strict, new object[] { config, new TestSecretManagerFactory(), eventManager.Object, _settingsManager, settings });
            managerMock.SetupGet(p => p.Instance).Returns(hostMock.Object);

            testController = new AdminController(managerMock.Object, settings, new TestTraceWriter(TraceLevel.Verbose), null);
        }
Esempio n. 3
0
        public KeysControllerTests()
        {
            _settingsManager    = ScriptSettingsManager.Instance;
            _testFunctions      = new Collection <FunctionDescriptor>();
            _testFunctionErrors = new Dictionary <string, Collection <string> >();

            var config       = new ScriptHostConfiguration();
            var environment  = new NullScriptHostEnvironment();
            var eventManager = new Mock <IScriptEventManager>();
            var mockRouter   = new Mock <IWebJobsRouter>();

            _hostMock = new Mock <ScriptHost>(MockBehavior.Strict, new object[] { environment, eventManager.Object, config, null, null, null });
            _hostMock.Setup(p => p.Functions).Returns(_testFunctions);
            _hostMock.Setup(p => p.FunctionErrors).Returns(_testFunctionErrors);

            WebHostSettings settings = new WebHostSettings();

            settings.SecretsPath = _secretsDirectory.Path;
            _secretsManagerMock  = new Mock <ISecretManager>(MockBehavior.Strict);

            _managerMock = new Mock <WebScriptHostManager>(MockBehavior.Strict, new object[] { config, new TestSecretManagerFactory(_secretsManagerMock.Object), eventManager.Object, _settingsManager, settings, mockRouter.Object, NullLoggerFactory.Instance });

            _managerMock.SetupGet(p => p.Instance).Returns(_hostMock.Object);

            _testController = new KeysController(_managerMock.Object, _secretsManagerMock.Object, new LoggerFactory());

            // setup some test functions
            string errorFunction = "ErrorFunction";
            var    errors        = new Collection <string>();

            errors.Add("A really really bad error!");
            _testFunctionErrors.Add(errorFunction, errors);

            var keys = new Dictionary <string, string>
            {
                { "key1", "secret1" }
            };

            _secretsManagerMock.Setup(p => p.GetFunctionSecretsAsync(errorFunction, false)).ReturnsAsync(keys);
        }
Esempio n. 4
0
        public AdminControllerTests()
        {
            _settingsManager = ScriptSettingsManager.Instance;
            testFunctions    = new Collection <FunctionDescriptor>();

            var config                 = new ScriptHostConfiguration();
            var environment            = new NullScriptHostEnvironment();
            var eventManager           = new Mock <IScriptEventManager>();
            var mockRouter             = new Mock <IWebJobsRouter>();
            var mockWebFunctionManager = new Mock <IWebFunctionsManager>();

            hostMock = new Mock <ScriptHost>(MockBehavior.Strict, new object[] { environment, eventManager.Object, config, null, null, null });
            hostMock.Setup(p => p.Functions).Returns(testFunctions);

            WebHostSettings settings = new WebHostSettings();

            settings.SecretsPath = _secretsDirectory.Path;
            secretsManagerMock   = new Mock <ISecretManager>(MockBehavior.Strict);
            managerMock          = new Mock <WebScriptHostManager>(MockBehavior.Strict, new object[] { config, new TestSecretManagerFactory(secretsManagerMock.Object), eventManager.Object, _settingsManager, settings, mockRouter.Object, NullLoggerFactory.Instance });
            managerMock.SetupGet(p => p.Instance).Returns(hostMock.Object);

            testController = new FunctionsController(mockWebFunctionManager.Object, managerMock.Object, new LoggerFactory());
        }