public XmlPokeFixture(bool xmlExists = true, bool xmlWithDtd = false) { Settings = new XmlPokeSettings(); var environment = FakeEnvironment.CreateUnixEnvironment(); var fileSystem = new FakeFileSystem(environment); fileSystem.CreateDirectory("/Working"); if (xmlExists) { string content = xmlWithDtd ? Resources.XmlPoke_Xml_Dtd : Resources.XmlPoke_Xml; var xmlFile = fileSystem.CreateFile("/Working/web.config").SetContent(content); XmlPath = xmlFile.Path; } FileSystem = fileSystem; Context = Substitute.For <ICakeContext>(); Context.FileSystem.Returns(FileSystem); Context.Environment.Returns(environment); }
private void PrepareWindowsFixture() { Environment = FakeEnvironment.CreateWindowsEnvironment(); FileSystem = new FakeFileSystem(Environment); // Directories FileSystem.CreateDirectory("C://Working"); FileSystem.CreateDirectory("C://Working/Foo"); FileSystem.CreateDirectory("C://Working/Foo/Bar"); FileSystem.CreateDirectory("C:"); FileSystem.CreateDirectory("C:/Program Files (x86)"); // Files FileSystem.CreateFile("C:/Working/Foo/Bar/Qux.c"); FileSystem.CreateFile("C:/Program Files (x86)/Foo.c"); FileSystem.CreateFile("C:/Working/Project.A.Test.dll"); FileSystem.CreateFile("C:/Working/Project.B.Test.dll"); FileSystem.CreateFile("C:/Working/Project.IntegrationTest.dll"); FileSystem.CreateFile("C:/Tools & Services/MyTool.dll"); FileSystem.CreateFile("C:/Tools + Services/MyTool.dll"); }
public void Should_Return_Report(string logfileResourceName, CodeAnalysisReport report) { // Given var logFileName = Path.GetTempFileName(); var environment = FakeEnvironment.CreateWindowsEnvironment(); var fileSystem = new FakeFileSystem(environment); using (var ms = new MemoryStream()) using (var stream = this.GetType().Assembly.GetManifestResourceStream("Cake.CodeAnalysisReporting.Tests.Testfiles." + logfileResourceName)) { stream.CopyTo(ms); var data = ms.ToArray(); fileSystem.CreateFile(logFileName, data); } var outputFileName = Path.GetTempFileName(); try { // When MsBuildCodeAnalysisReporter.CreateCodeAnalysisReport( fileSystem, logFileName, report, outputFileName); // Then File.Exists(outputFileName).ShouldBe(true); } finally { if (File.Exists(outputFileName)) { File.Delete(outputFileName); } } }
public void Should_Transform_Text_From_Disc_Template_Using_Specified_Placeholders() { // Given var environment = FakeEnvironment.CreateUnixEnvironment(); var fileSystem = new FakeFileSystem(environment); fileSystem.CreateFile("/Working/template.txt").SetContent("Hello {subject}"); var context = Substitute.For <ICakeContext>(); context.FileSystem.Returns(fileSystem); context.Environment.Returns(environment); var transform = TextTransformationAliases.TransformTextFile(context, "./template.txt", "{", "}"); transform.WithToken("subject", "World"); // When var result = transform.ToString(); // Then Assert.Equal("Hello World", result); }
protected ChocolateyFixture() { Environment = Substitute.For <ICakeEnvironment>(); Environment.WorkingDirectory = "/Working"; Process = Substitute.For <IProcess>(); Process.GetExitCode().Returns(0); ProcessRunner = Substitute.For <IProcessRunner>(); ProcessRunner.Start(Arg.Any <FilePath>(), Arg.Any <ProcessSettings>()).Returns(Process); Globber = Substitute.For <IGlobber>(); ChocolateyToolResolver = Substitute.For <IChocolateyToolResolver>(); Log = Substitute.For <ICakeLog>(); FileSystem = new FakeFileSystem(Environment); // By default, there is a default tool. ChocolateyToolResolver.ResolvePath().Returns("/Working/tools/choco.exe"); FileSystem.CreateFile("/Working/tools/choco.exe"); // Set standard output. Process.GetStandardOutput().Returns(new string[0]); }
public ScriptRunnerFixture(string fileName = "/Working/build.cake") { Script = fileName; Source = "Hello World"; AssemblyLoader = Substitute.For <IAssemblyLoader>(); Environment = FakeEnvironment.CreateUnixEnvironment(); FileSystem = new FakeFileSystem(Environment); FileSystem.CreateFile(Script.MakeAbsolute(Environment)).SetContent(Source); Globber = new Globber(FileSystem, Environment); Configuration = Substitute.For <ICakeConfiguration>(); AliasFinder = Substitute.For <IScriptAliasFinder>(); Log = new FakeLog(); Session = Substitute.For <IScriptSession>(); ArgumentDictionary = new Dictionary <string, string>(StringComparer.OrdinalIgnoreCase); Engine = Substitute.For <IScriptEngine>(); Engine.CreateSession(Arg.Any <IScriptHost>()).Returns(Session); var runtime = new CakeRuntime(); var referenceAssemblyResolver = Substitute.For <IReferenceAssemblyResolver>(); referenceAssemblyResolver.GetReferenceAssemblies().Returns(Array.Empty <System.Reflection.Assembly>()); ScriptAnalyzer = new ScriptAnalyzer(FileSystem, Environment, Log, new[] { new FileLoadDirectiveProvider(Globber, Log) }); ScriptProcessor = Substitute.For <IScriptProcessor>(); ScriptConventions = new ScriptConventions(FileSystem, AssemblyLoader, runtime, referenceAssemblyResolver); var context = Substitute.For <ICakeContext>(); context.Environment.Returns(c => Environment); context.FileSystem.Returns(c => FileSystem); Host = Substitute.For <IScriptHost>(); Host.Context.Returns(context); }
public void Should_Return_Compatible_Packages_For_NuGet_Compliant_Package() { // Given var targetFramework = new FrameworkName(".NETFramework,Version=v4.5"); var environment = FakeEnvironment.CreateUnixEnvironment(); environment.SetTargetFramework(targetFramework); var log = Substitute.For <ICakeLog>(); var fileSystem = new FakeFileSystem(environment); var packageDirectory = fileSystem.CreateDirectory("/Working/addins/MyPackage"); fileSystem.CreateFile(packageDirectory.Path.CombineWithFilePath("lib/net40/myassembly1.dll")); fileSystem.CreateFile(packageDirectory.Path.CombineWithFilePath("lib/net40/myassembly2.dll")); var compatibleDll1 = fileSystem.CreateFile(packageDirectory.Path.CombineWithFilePath("lib/net45/myassembly1.dll")); var compatibleDll2 = fileSystem.CreateFile(packageDirectory.Path.CombineWithFilePath("lib/net45/myassembly2.dll")); fileSystem.CreateFile(packageDirectory.Path.CombineWithFilePath("lib/net452/myassembly1.dll")); fileSystem.CreateFile(packageDirectory.Path.CombineWithFilePath("lib/net452/myassembly2.dll")); var assemblyCompatibilityFilter = Substitute.For <INuGetAssemblyCompatibilityFilter>(); assemblyCompatibilityFilter.FilterCompatibleAssemblies(targetFramework, Arg.Any <IEnumerable <FilePath> >()) .Returns(ci => new FilePath[] { "lib/net45/myassembly1.dll", "lib/net45/myassembly2.dll" }); var locator = new NuGetPackageAssembliesLocator(fileSystem, log, assemblyCompatibilityFilter, environment); // When var result = locator.FindAssemblies(packageDirectory.Path); // Then Assert.Equal(new List <IFile> { compatibleDll1, compatibleDll2 }.AsReadOnly(), result); }
private static FakeFileSystem CreateFileSystem(ICakeEnvironment environment) { var fileSystem = new FakeFileSystem(environment); fileSystem.CreateDirectory("/Temp"); fileSystem.CreateDirectory("/Temp/HasDirectories"); fileSystem.CreateDirectory("/Temp/HasDirectories/A"); fileSystem.CreateDirectory("/Temp/HasFiles"); fileSystem.CreateDirectory("/Temp/Hello"); fileSystem.CreateDirectory("/Temp/Hello/Empty"); fileSystem.CreateDirectory("/Temp/Hello/More/Empty"); fileSystem.CreateDirectory("/Temp/Hello/World"); fileSystem.CreateDirectory("/Temp/Goodbye"); fileSystem.CreateDirectory("/Temp/Hello/Hidden").Hide(); fileSystem.CreateDirectory("/HasReadonly"); fileSystem.CreateFile("/Presentation.ppt"); fileSystem.CreateFile("/Budget.xlsx"); fileSystem.CreateFile("/Text.txt"); fileSystem.CreateFile("/Temp"); fileSystem.CreateFile("/Temp/Hello/Document.txt"); fileSystem.CreateFile("/Temp/Hello/World/Text.txt"); fileSystem.CreateFile("/Temp/Hello/World/Picture.png"); fileSystem.CreateFile("/Temp/Hello/Hidden.txt").Hide(); fileSystem.CreateFile("/Temp/Goodbye/OtherText.txt"); fileSystem.CreateFile("/Temp/Goodbye/OtherPicture.png"); fileSystem.CreateFile("/Temp/HasFiles/A.txt"); fileSystem.CreateFile("/HasReadonly/Readonly.txt", FileAttributes.ReadOnly); fileSystem.CreateFile("/HasReadonly/Not-Readonly.txt"); return(fileSystem); }
internal void GivenFileExists(FilePath file) { FileSystem.CreateFile(file); }
private void PrepareUnixFixture() { Environment = FakeEnvironment.CreateUnixEnvironment(); FileSystem = new FakeFileSystem(Environment); // Directories FileSystem.CreateDirectory("/Working"); FileSystem.CreateDirectory("/Working/Foo"); FileSystem.CreateDirectory("/Working/Foo/Bar"); FileSystem.CreateDirectory("/Working/Bar"); FileSystem.CreateDirectory("/Foo/Bar"); FileSystem.CreateDirectory("/Foo (Bar)"); // Files FileSystem.CreateFile("/Working/Foo/Bar/Qux.c"); FileSystem.CreateFile("/Working/Foo/Bar/Qex.c"); FileSystem.CreateFile("/Working/Foo/Bar/Qux.h"); FileSystem.CreateFile("/Working/Foo/Baz/Qux.c"); FileSystem.CreateFile("/Working/Foo/Bar/Baz/Qux.c"); FileSystem.CreateFile("/Working/Bar/Qux.c"); FileSystem.CreateFile("/Working/Bar/Qux.h"); FileSystem.CreateFile("/Working/Foo.Bar.Test.dll"); FileSystem.CreateFile("/Working/Bar.Qux.Test.dll"); FileSystem.CreateFile("/Working/Quz.FooTest.dll"); FileSystem.CreateFile("/Foo/Bar.baz"); FileSystem.CreateFile("/Foo (Bar)/Baz.c"); }
public void EnsureFileExists(FilePath filePath) { var fullPath = filePath.MakeAbsolute(Context.Environment); _fileSystem.CreateFile(fullPath).SetContent(Guid.NewGuid().ToString("D")); }
public static GlobberFixture UnixLike() { var environment = FakeEnvironment.CreateUnixEnvironment(); var filesystem = new FakeFileSystem(environment); // Directories filesystem.CreateDirectory("/RootDir"); filesystem.CreateDirectory("/Working"); filesystem.CreateDirectory("/Working/Foo"); filesystem.CreateDirectory("/Working/Foo/Bar"); filesystem.CreateDirectory("/Working/Bar"); filesystem.CreateDirectory("/Foo/Bar"); filesystem.CreateDirectory("/Foo (Bar)"); filesystem.CreateDirectory("/Foo@Bar/"); filesystem.CreateDirectory("/嵌套"); filesystem.CreateDirectory("/嵌套/目录"); // Files filesystem.CreateFile("/RootFile.sh"); filesystem.CreateFile("/Working/Foo/Bar/Qux.c"); filesystem.CreateFile("/Working/Foo/Bar/Qex.c"); filesystem.CreateFile("/Working/Foo/Bar/Qux.h"); filesystem.CreateFile("/Working/Foo/Baz/Qux.c"); filesystem.CreateFile("/Working/Foo/Bar/Baz/Qux.c"); filesystem.CreateFile("/Working/Bar/Qux.c"); filesystem.CreateFile("/Working/Bar/Qux.h"); filesystem.CreateFile("/Working/Foo.Bar.Test.dll"); filesystem.CreateFile("/Working/Bar.Qux.Test.dll"); filesystem.CreateFile("/Working/Quz.FooTest.dll"); filesystem.CreateFile("/Foo/Bar.baz"); filesystem.CreateFile("/Foo (Bar)/Baz.c"); filesystem.CreateFile("/Foo@Bar/Baz.c"); filesystem.CreateFile("/嵌套/目录/文件.延期"); filesystem.CreateFile("/Working/foobar.rs"); filesystem.CreateFile("/Working/foobaz.rs"); filesystem.CreateFile("/Working/foobax.rs"); return(new GlobberFixture(filesystem, environment)); }
public static GlobberFixture Windows() { var environment = FakeEnvironment.CreateWindowsEnvironment(); var filesystem = new FakeFileSystem(environment); // Directories filesystem.CreateDirectory("C://Working"); filesystem.CreateDirectory("C://Working/Foo"); filesystem.CreateDirectory("C://Working/Foo/Bar"); filesystem.CreateDirectory("C:"); filesystem.CreateDirectory("C:/Program Files (x86)"); // UNC directories filesystem.CreateDirectory(@"\\Server"); filesystem.CreateDirectory(@"\\Server\Foo"); filesystem.CreateDirectory(@"\\Server\Foo\Bar"); filesystem.CreateDirectory(@"\\Server\Bar"); filesystem.CreateDirectory(@"\\Foo\Bar"); filesystem.CreateDirectory(@"\\Foo (Bar)"); filesystem.CreateDirectory(@"\\Foo@Bar\"); filesystem.CreateDirectory(@"\\嵌套"); filesystem.CreateDirectory(@"\\嵌套\目录"); // Files filesystem.CreateFile("C:/Working/Foo/Bar/Qux.c"); filesystem.CreateFile("C:/Program Files (x86)/Foo.c"); filesystem.CreateFile("C:/Working/Project.A.Test.dll"); filesystem.CreateFile("C:/Working/Project.B.Test.dll"); filesystem.CreateFile("C:/Working/Project.IntegrationTest.dll"); filesystem.CreateFile("C:/Tools & Services/MyTool.dll"); filesystem.CreateFile("C:/Tools + Services/MyTool.dll"); filesystem.CreateFile("C:/Some %2F Directory/MyTool.dll"); filesystem.CreateFile("C:/Some ! Directory/MyTool.dll"); filesystem.CreateFile("C:/Some@Directory/MyTool.dll"); filesystem.CreateFile("C:/Working/foobar.rs"); filesystem.CreateFile("C:/Working/foobaz.rs"); filesystem.CreateFile("C:/Working/foobax.rs"); // UNC files filesystem.CreateFile(@"\\Server\Foo/Bar/Qux.c"); filesystem.CreateFile(@"\\Server\Foo/Bar/Qex.c"); filesystem.CreateFile(@"\\Server\Foo/Bar/Qux.h"); filesystem.CreateFile(@"\\Server\Foo/Baz/Qux.c"); filesystem.CreateFile(@"\\Server\Foo/Bar/Baz/Qux.c"); filesystem.CreateFile(@"\\Server\Bar/Qux.c"); filesystem.CreateFile(@"\\Server\Bar/Qux.h"); filesystem.CreateFile(@"\\Server\Foo.Bar.Test.dll"); filesystem.CreateFile(@"\\Server\Bar.Qux.Test.dll"); filesystem.CreateFile(@"\\Server\Quz.FooTest.dll"); filesystem.CreateFile(@"\\Foo\Bar.baz"); filesystem.CreateFile(@"\\Foo (Bar)\Baz.c"); filesystem.CreateFile(@"\\Foo@Bar\Baz.c"); filesystem.CreateFile(@"\\嵌套/目录/文件.延期"); return(new GlobberFixture(filesystem, environment)); }