public void GetScriptBaseWithInexistentAppSettingsReturnsDefaultDirectory()
        {
            // Arrange
            var scriptBaseFromAppSettings = default(string);
            Mock.SetupStatic(typeof(ConfigurationManager));
            Mock.Arrange(() => ConfigurationManager.AppSettings.Get(Arg.IsAny<string>()))
                .Returns(scriptBaseFromAppSettings)
                .MustBeCalled();

            var appclusiveEndpoints = Mock.Create<AppclusiveEndpoints>();
            var sut = new PowerShellScriptPluginConfigurationManager(appclusiveEndpoints);

            // Act
            var result = sut.GetScriptBase();

            // Assert
            Mock.Assert(() => ConfigurationManager.AppSettings.Get(Arg.IsAny<string>()));

            Assert.IsTrue(Directory.Exists(result));
        }
        public void GetScriptBaseSucceeds()
        {
            // Arrange
            var scriptBaseFromAppSettings = "%ProgramFiles%";
            Mock.SetupStatic(typeof(ConfigurationManager));
            Mock.Arrange(() => ConfigurationManager.AppSettings.Get(Arg.IsAny<string>()))
                .Returns(scriptBaseFromAppSettings)
                .MustBeCalled();

            var appclusiveEndpoints = Mock.Create<AppclusiveEndpoints>();
            var sut = new PowerShellScriptPluginConfigurationManager(appclusiveEndpoints);

            // Act
            var result = sut.GetScriptBase();

            // Assert
            Mock.Assert(() => ConfigurationManager.AppSettings.Get(Arg.IsAny<string>()));

            Assert.AreEqual(Environment.ExpandEnvironmentVariables(scriptBaseFromAppSettings), result);
        }
        public void GetScriptBaseWithInexistentDirectoryThrowsContractException()
        {
            // Arrange
            var scriptBaseFromAppSettings = "C:\\inexistent-folder";
            Mock.SetupStatic(typeof(ConfigurationManager));
            Mock.Arrange(() => ConfigurationManager.AppSettings.Get(Arg.IsAny<string>()))
                .Returns(scriptBaseFromAppSettings)
                .MustBeCalled();

            var appclusiveEndpoints = Mock.Create<AppclusiveEndpoints>();
            var sut = new PowerShellScriptPluginConfigurationManager(appclusiveEndpoints);

            // Act
            var result = sut.GetScriptBase();

            // Assert
            // N/A
        }