public void ShouldFindAndCallModifyOnAllTargetFiles() { var targetFiles = new[] { "config.json", "config.dev.json", "config.prod.json" }; fileSystem.EnumerateFiles(Arg.Any <string>(), "config.json") .Returns(new[] { targetFiles[0] }.Select(t => TestEnvironment.ConstructRootedPath("applications", "Acme", "1.0.0", t))); fileSystem.EnumerateFiles(Arg.Any <string>(), "config.*.json") .Returns(targetFiles.Skip(1).Select(t => TestEnvironment.ConstructRootedPath("applications", "Acme", "1.0.0", t))); deployment.Variables.Set(SpecialVariables.Package.JsonConfigurationVariablesEnabled, "true"); deployment.Variables.Set(SpecialVariables.Package.JsonConfigurationVariablesTargets, string.Join(Environment.NewLine, "config.json", "config.*.json")); var convention = new JsonConfigurationVariablesConvention(configurationVariableReplacer, fileSystem); convention.Install(deployment); foreach (var targetFile in targetFiles) { configurationVariableReplacer.Received() .ModifyJsonFile(TestEnvironment.ConstructRootedPath("applications", "Acme", "1.0.0", targetFile), deployment.Variables); } }
public void ShouldNotRunIfVariableNotSet() { var convention = new JsonConfigurationVariablesConvention(configurationVariableReplacer, fileSystem); convention.Install(deployment); configurationVariableReplacer.DidNotReceiveWithAnyArgs().ModifyJsonFile(null, null); }
public void ShouldNotAttemptToRunOnDirectories() { deployment.Variables.Set(SpecialVariables.Package.JsonConfigurationVariablesEnabled, "true"); deployment.Variables.Set(SpecialVariables.Package.JsonConfigurationVariablesTargets, "approot"); fileSystem.DirectoryExists(Arg.Any <string>()).Returns(true); var convention = new JsonConfigurationVariablesConvention(configurationVariableReplacer, fileSystem); convention.Install(deployment); configurationVariableReplacer.DidNotReceiveWithAnyArgs().ModifyJsonFile(null, null); }
public void ShouldFindAndCallModifyOnTargetFile() { fileSystem.EnumerateFiles(Arg.Any <string>(), "appsettings.environment.json") .Returns(new[] { TestEnvironment.ConstructRootedPath("applications", "Acme", "1.0.0", "appsettings.environment.json") }); deployment.Variables.Set(SpecialVariables.Package.JsonConfigurationVariablesEnabled, "true"); deployment.Variables.Set(SpecialVariables.Package.JsonConfigurationVariablesTargets, "appsettings.environment.json"); var convention = new JsonConfigurationVariablesConvention(configurationVariableReplacer, fileSystem); convention.Install(deployment); configurationVariableReplacer.Received().ModifyJsonFile(TestEnvironment.ConstructRootedPath("applications", "Acme", "1.0.0", "appsettings.environment.json"), deployment.Variables); }