public Bundles_FileUrl_Tests() { urlGenerator = new Mock<IUrlGenerator>(); fileSystem = new FakeFileSystem { { "~/test.png", new byte[] { 1, 2, 3 } } }; using (var sha1 = SHA1.Create()) { hashOfFileContent = sha1.ComputeHash(new byte[] { 1, 2, 3 }).ToHexString(); } var settings = new CassetteSettings { SourceDirectory = fileSystem }; fileAccessAuthorization = new Mock<IFileAccessAuthorization>(); fileAccessAuthorization.Setup(a => a.CanAccess("~/test.png")).Returns(true); var referenceBuilder = new Mock<IReferenceBuilder>(); var bundles = new BundleCollection(settings, Mock.Of<IFileSearchProvider>(), Mock.Of<IBundleFactoryProvider>()); var bundleCacheRebuilder = new Mock<IBundleCacheRebuilder>(); Bundles.Helper = new BundlesHelper(bundles, settings, urlGenerator.Object, () => referenceBuilder.Object, fileAccessAuthorization.Object, bundleCacheRebuilder.Object, new SimpleJsonSerializer()); }
public void ThrowsExceptionIfFileDoesntExist() { var directory = new FakeFileSystem(); var loader = new ImageFileLoader(directory, urlGenerator.Object); var exception = Record.Exception(() => loader.GetImageBytes("/cassette.axd/file/test-hash123.png")); exception.ShouldBeType<FileNotFoundException>(); }
public void ReadsBytesFromFile() { var directory = new FakeFileSystem { { "~/test.png", new byte[] { 1, 2, 3 } } }; var loader = new ImageFileLoader(directory, urlGenerator.Object); var output = loader.GetImageBytes("/cassette.axd/file/test-hash123.png"); output.ShouldEqual(new byte[] { 1, 2, 3 }); }
public CachedFileRequestHandler_ProcessRequestTests() { cacheDirectory = new FakeFileSystem(); response = new Mock<HttpResponseBase>(); outputStream = new MemoryStream(); response.SetupGet(r => r.OutputStream).Returns(outputStream); cache = new Mock<HttpCachePolicyBase>(); response.SetupGet(r => r.Cache).Returns(cache.Object); handler = new CachedFileRequestHandler(response.Object, cacheDirectory); }
public CssImageToDataUriTransformer_Tests() { fileSystem = new FakeFileSystem { "~/asset.css" }; asset = new Mock<IAsset>(); asset.SetupGet(a => a.Path).Returns("~/asset.css"); transformer = new CssImageToDataUriTransformer(url => true, fileSystem); }
public void ShouldReturnAddGacReferenceProcessorWhenFileReferenceNotFound() { var fs = new FakeFileSystem(); fs.FileExists(false); _factory = new AddReferenceProcessorFactory(_solution, _processors, fs); var request = new AddReferenceRequest { Reference = "Nancy.dll" }; var processor = _factory.CreateProcessorFor(request); processor.ShouldBeType<AddGacReferenceProcessor>(); }
public ExpandCssUrlsAssetTransformer_Tests() { fileSystem = new FakeFileSystem { "~/styles/asset.css" }; urlGenerator = new Mock<IUrlGenerator>(); urlGenerator.Setup(u => u.CreateRawFileUrl(It.IsAny<string>(), It.IsAny<string>())) .Returns<string, string>((f, h) => "EXPANDED"); transformer = new ExpandCssUrlsAssetTransformer(fileSystem, urlGenerator.Object); asset = new Mock<IAsset>(); asset.SetupGet(a => a.Path).Returns("~/styles/asset.css"); }
public void Can_Compile_LESS_that_imports_another_LESS_file() { var fileSystem = new FakeFileSystem { {"~/lib.less", "@color: white;"}, "~/test.less" }; compileContext.RootDirectory = fileSystem; compileContext.SourceFilePath = "~/test.less"; var css = compiler.Compile( "@import \"lib\";\nbody{ color: @color }", compileContext ); css.Output.ShouldEqual("body {\n color: white;\n}\n"); }
public ExternalScriptBundleDeserializer_Tests() { element = new XElement( "ExternalScriptBundle", new XAttribute("Path", "~"), new XAttribute("Hash", "010203"), new XAttribute("Url", "http://example.com/"), new XAttribute("FallbackCondition", "CONDITION") ); directory = new FakeFileSystem { { "~/script/010203.js", "content" } }; var urlModifier = new VirtualDirectoryPrepender("/"); reader = new ExternalScriptBundleDeserializer(urlModifier); DeserializeToBundle(); }
public void CanRenderAGlobalVariable() { //Given a layout in the root which contains an @ variable var files = new FakeFileSystem() { { "views\\someview.hbs", "This is the {{@body.title}}"} }; //When a viewengine renders that view var handlebarsConfiguration = new HandlebarsConfiguration() {FileSystem = files}; var handlebars = Handlebars.Create(handlebarsConfiguration); var render = handlebars.CompileView("views\\someview.hbs"); var output = render(new {@body = new {title = "THING"}}); //Then the correct output should be rendered Assert.AreEqual("This is the THING", output); }
public StylesheetBundleDeserializer_Tests() { mediaElement = new XElement("HtmlAttribute", new XAttribute("Name", "media"), new XAttribute("Value", "expected-media")); element = new XElement( "StylesheetBundle", new XAttribute("Path", "~"), new XAttribute("Hash", "010203"), new XAttribute("Condition", "expected-condition"), mediaElement ); directory = new FakeFileSystem { { "~/stylesheet/010203.css", "content" } }; var urlModifier = new VirtualDirectoryPrepender("/"); reader = new StylesheetBundleDeserializer(urlModifier); DeserializeBundle(); }
public void CanLoadAViewWithALayoutInTheRoot() { //Given a layout in the root var files = new FakeFileSystem() { {"somelayout.hbs", "layout start\r\n{{{body}}}\r\nlayout end"}, //And a view in a subfolder folder which uses that layout { "views\\someview.hbs", "{{!< somelayout}}This is the body"} }; //When a viewengine renders that view var handlebars = HandlebarsDotNet.Handlebars.Create(new HandlebarsConfiguration() {FileSystem = files}); var render = handlebars.CompileView("views\\someview.hbs"); var output = render(null); //Then the correct output should be rendered Assert.AreEqual("layout start\r\nThis is the body\r\nlayout end", output); }
public ExternalStylesheetBundleDeserializer_Tests() { element = new XElement( "ExternalStylesheetBundle", new XAttribute("Path", "~"), new XAttribute("Hash", "010203"), new XAttribute("Url", "http://example.com/"), new XAttribute("Condition", "CONDITION"), new XElement("HtmlAttribute", new XAttribute("Name", "media"), new XAttribute("Value", "MEDIA")) ); directory = new FakeFileSystem { { "~/stylesheet/010203.css", "content"} }; var urlModifier = new VirtualDirectoryPrepender("/"); reader = new ExternalStylesheetBundleDeserializer(urlModifier); DeserializeElement(); }
public StylesheetBundleDeserializer_Tests() { mediaElement = new XElement("HtmlAttribute", new XAttribute("Name", "media"), new XAttribute("Value", "expected-media")); element = new XElement( "StylesheetBundle", new XAttribute("Path", "~"), new XAttribute("Hash", "010203"), new XAttribute("Condition", "expected-condition"), new XAttribute("Renderer", typeof(StylesheetHtmlRenderer).AssemblyQualifiedName), mediaElement ); directory = new FakeFileSystem { { "~/stylesheet/010203.css", "content" } }; var container = new TinyIoCContainer(); container.Register(Mock.Of<IUrlGenerator>()); reader = new StylesheetBundleDeserializer(container); DeserializeBundle(); }
public ExternalScriptBundleDeserializer_Tests() { element = new XElement( "ExternalScriptBundle", new XAttribute("Path", "~"), new XAttribute("Hash", "010203"), new XAttribute("Url", "http://example.com/"), new XAttribute("FallbackCondition", "CONDITION"), new XAttribute("Renderer", typeof(ExternalScriptBundle.ExternalScriptBundleRenderer).AssemblyQualifiedName), new XAttribute("FallbackRenderer", typeof(ScriptBundleHtmlRenderer).AssemblyQualifiedName) ); directory = new FakeFileSystem { { "~/script/010203.js", "content" } }; var container = new TinyIoCContainer(); container.Register(Mock.Of<IUrlGenerator>()); reader = new ExternalScriptBundleDeserializer(container); DeserializeToBundle(); }
public ScriptBundleDeserializer_Tests() { element = new XElement("ScriptBundle", new XAttribute("Path", "~"), new XAttribute("Hash", "010203"), new XAttribute("Condition", "expected-condition"), new XAttribute("ContentType", "text/javascript"), new XAttribute("PageLocation", "PAGE-LOCATION"), new XAttribute("Renderer", typeof(ScriptBundleHtmlRenderer).AssemblyQualifiedName), new XElement("Asset", new XAttribute("Path", "~/asset-1"), new XAttribute("AssetCacheValidatorType", typeof(FileAssetCacheValidator).FullName)), new XElement("Asset", new XAttribute("Path", "~/asset-2"), new XAttribute("AssetCacheValidatorType", typeof(FileAssetCacheValidator).FullName)), new XElement("Reference", new XAttribute("Path", "~/reference-1")), new XElement("Reference", new XAttribute("Path", "~/reference-2")), new XElement( "HtmlAttribute", new XAttribute("Name", "type"), new XAttribute("Value", "text/javascript") ), new XElement( "HtmlAttribute", new XAttribute("Name", "attribute1"), new XAttribute("Value", "value1") ), new XElement( "HtmlAttribute", new XAttribute("Name", "attribute2"), new XAttribute("Value", "value2") ) ); directory = new FakeFileSystem { { "~/script/010203.js", "CONTENT" } }; var container = new TinyIoCContainer(); container.Register(Mock.Of<IUrlGenerator>()); deserializer = new ScriptBundleDeserializer(container); DeserializeBundle(); }
private FakeFileSystem CreateFileStructure(FakeFileSystem ffs) { Action <string> dir = path => ffs.GetCreatedDirectory(path); Action <string> file = path => ffs.GetCreatedFile(path); dir("C:/Temp"); { file("C:/Temp/file1.txt"); file("C:/Temp/file2.txt"); dir("C:/Temp/Stuff"); { file("C:/Temp/Stuff/file1.txt"); file("C:/Temp/Stuff/file2.txt"); } dir("C:/Temp/Things"); { file("C:/Temp/Things/file1.txt"); } } return(ffs); }
public void CanUseDictionaryModelInLayout() { var files = new FakeFileSystem { { "views\\layout.hbs", "Layout: {{property}}\r\n{{{body}}}" }, { "views\\someview.hbs", "{{!< layout}}\r\n\r\nBody: {{property}}" }, }; var handlebarsConfiguration = new HandlebarsConfiguration { FileSystem = files }; var handlebars = Handlebars.Create(handlebarsConfiguration); var render = handlebars.CompileView("views\\someview.hbs"); var output = render( new Dictionary <string, object> { { "property", "Foo" }, } ); Assert.Equal("Layout: Foo\r\n\r\nBody: Foo", output); }
public NuGetPackageInstallerFixture() { Environment = FakeEnvironment.CreateUnixEnvironment(); FileSystem = new FakeFileSystem(Environment); ContentResolver = Substitute.For <INuGetContentResolver>(); Log = Substitute.For <ICakeLog>(); Config = Substitute.For <ICakeConfiguration>(); ToolResolver = Substitute.For <INuGetToolResolver>(); ToolResolver.ResolvePath().Returns(new FilePath("/Working/tools/nuget.exe")); Package = new PackageReference("nuget:https://myget.org/temp/?package=Cake.Foo&prerelease&version=1.2.3"); PackageType = PackageType.Addin; InstallPath = new DirectoryPath("./nuget"); ProcessRunner = Substitute.For <IProcessRunner>(); ProcessRunner.When(p => p.Start(Arg.Any <FilePath>(), Arg.Any <ProcessSettings>())) .Do(info => FileSystem.CreateDirectory(InstallPath.Combine(Package.Package.ToLowerInvariant()).Combine(Package.Package))); InProc = new InProcessInstaller(FileSystem, Environment, ContentResolver, Log, Config); OutProc = new OutOfProcessInstaller(FileSystem, Environment, ProcessRunner, ToolResolver, ContentResolver, Log, Config); }
public void SavePost_SaveSimplePost() { IFileSystem testFileSystem = new FakeFileSystem(); BlogDataStore testDataStore = new BlogDataStore(testFileSystem); Post testPost = new Post { Slug = "Test-Post-Slug", Title = "Test Title", Body = "Test contents", IsPublic = true }; testPost.PubDate = DateTime.UtcNow; testDataStore.SavePost(testPost); Assert.True(testFileSystem.FileExists($"BlogFiles\\Posts\\{testPost.PubDate.UtcDateTime.ToString("s").Replace(":","-")}_{testPost.Id.ToString("N")}.xml")); Post result = testDataStore.GetPost(testPost.Id.ToString("N")); Assert.Equal("Test-Post-Slug", result.Slug); Assert.Equal("Test Title", result.Title); Assert.Equal("Test contents", result.Body); }
public ProgramFixture() { Bootstrapper = new TestContainerConfigurator(); Environment = FakeEnvironment.CreateUnixEnvironment(); FileSystem = new FakeFileSystem(Environment); Log = new FakeLog(); Console = new FakeConsole(); ModuleSearcher = Substitute.For <IModuleSearcher>(); Builder = new BuildFeatureFixture(FileSystem, Environment, Bootstrapper, Log, Console, ModuleSearcher); // CLI overrides Overrides = new List <Action <ContainerBuilder> >() { builder => builder.RegisterInstance(Bootstrapper).As <IContainerConfigurator>(), builder => builder.RegisterInstance(Environment).As <ICakeEnvironment>(), builder => builder.RegisterInstance(FileSystem).As <IFileSystem>(), builder => builder.RegisterInstance(Log).As <ICakeLog>(), builder => builder.RegisterInstance(Console).As <IConsole>(), builder => builder.RegisterInstance(ModuleSearcher).As <IModuleSearcher>(), builder => builder.RegisterInstance(Builder).As <IBuildFeature>() }; }
public GlobberFixture(bool isFileSystemCaseSensitive) { FileSystem = new FakeFileSystem(isFileSystemCaseSensitive); FileSystem.GetCreatedDirectory("/Temp"); FileSystem.GetCreatedDirectory("/Temp/Hello"); FileSystem.GetCreatedDirectory("/Temp/Hello/World"); FileSystem.GetCreatedDirectory("/Temp/Goodbye"); FileSystem.GetCreatedFile("/Presentation.ppt"); FileSystem.GetCreatedFile("/Budget.xlsx"); FileSystem.GetCreatedFile("/Text.txt"); FileSystem.GetCreatedFile("/Temp"); FileSystem.GetCreatedFile("/Temp/Hello/World/Text.txt"); FileSystem.GetCreatedFile("/Temp/Hello/World/Picture.png"); FileSystem.GetCreatedFile("/Temp/Goodbye/OtherText.txt"); FileSystem.GetCreatedFile("/Temp/Goodbye/OtherPicture.png"); FileSystem.GetCreatedFile("/Working/Text.txt"); FileSystem.GetCreatedFile("C:/Temp/Hello/World/Text.txt"); Environment = Substitute.For <ICakeEnvironment>(); Environment.IsUnix().Returns(isFileSystemCaseSensitive); Environment.WorkingDirectory.Returns("/Temp"); }
public void SaveFiles_CreatesFilesInUploadsFolder() { FakeFormFile file1 = new FakeFormFile(); file1.FileName = "file1"; file1.Length = 5; FakeFormFile file2 = new FakeFormFile(); file2.FileName = "file2"; file2.Length = 5; List <IFormFile> files = new List <IFormFile>(); files.Add(file1); files.Add(file2); IFileSystem testFileSystem = new FakeFileSystem(); BlogDataStore testDataStore = new BlogDataStore(testFileSystem); testDataStore.SaveFiles(files); Assert.True(testFileSystem.FileExists("wwwroot\\Uploads\\file1")); Assert.True(testFileSystem.FileExists("wwwroot\\Uploads\\file2")); }
public ScriptBundleDeserializer_Tests() { element = new XElement("ScriptBundle", new XAttribute("Path", "~"), new XAttribute("Hash", "010203"), new XAttribute("Condition", "expected-condition"), new XAttribute("ContentType", "text/javascript"), new XAttribute("PageLocation", "PAGE-LOCATION"), new XElement("Asset", new XAttribute("Path", "~/asset-1"), new XAttribute("AssetCacheValidatorType", typeof(FileAssetCacheValidator).FullName)), new XElement("Asset", new XAttribute("Path", "~/asset-2"), new XAttribute("AssetCacheValidatorType", typeof(FileAssetCacheValidator).FullName)), new XElement("Reference", new XAttribute("Path", "~/reference-1")), new XElement("Reference", new XAttribute("Path", "~/reference-2")), new XElement( "HtmlAttribute", new XAttribute("Name", "type"), new XAttribute("Value", "text/javascript") ), new XElement( "HtmlAttribute", new XAttribute("Name", "attribute1"), new XAttribute("Value", "value1") ), new XElement( "HtmlAttribute", new XAttribute("Name", "attribute2"), new XAttribute("Value", "value2") ) ); directory = new FakeFileSystem { { "~/script/010203.js", "CONTENT" } }; var urlModifier = new VirtualDirectoryPrepender("/"); deserializer = new ScriptBundleDeserializer(urlModifier); DeserializeBundle(); }
public ScriptProcessorFixture() { Environment = FakeEnvironment.CreateUnixEnvironment(); FileSystem = new FakeFileSystem(Environment); Log = Substitute.For <ICakeLog>(); Installer = Substitute.For <INuGetPackageInstaller>(); ApplicationRoot = new DirectoryPath("/Working/Bin"); // Create the script analyzer result. var script1 = new ScriptInformation("/Working/build.cake"); script1.Addins.Add(new NuGetPackage("Addin") { Source = "http://example.com" }); script1.Tools.Add(new NuGetPackage("Tool") { Source = "http://example.com" }); Result = new ScriptAnalyzerResult(script1, new List <string>()); }
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"); FileSystem.CreateFile("C:/Some %2F Directory/MyTool.dll"); }
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 XmlPeekAliasesFixture(bool xmlExists = true, bool xmlWithDtd = false) { Settings = new XmlPeekSettings(); var environment = FakeEnvironment.CreateUnixEnvironment(); var fileSystem = new FakeFileSystem(environment); fileSystem.CreateDirectory("/Working"); if (xmlExists) { string content = xmlWithDtd ? Resources.XmlPeek_Xml_Dtd : Resources.XmlPeek_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); }
public async Task A_Valid_Folder_Structure_Is_Generated_For_A_Sequence_With_A_Server() { // Arrange var fs = new FakeFileSystem(); var fakeComponentRepo = new FakeComponentRepo { Components = new List <RMComponent> { new RMComponent { Id = 3981, WorkflowActivityId = Guid .Parse( "a122e31d-9faa-4468-b09b-2ec09ea51567") } } }; var fakeUserRepo = new FakeUserRepo(); var fakeDeployerToolRepo = new FakeDeployerToolRepo(); var gen = new ScriptGenerator(fs, fakeComponentRepo, fakeUserRepo, fakeDeployerToolRepo); var testXml = @"<DeploymentSequenceActivity xmlns=""clr-namespace:Microsoft.TeamFoundation.Release.Workflow.Activities;assembly=Microsoft.TeamFoundation.Release.Workflow"" xmlns:mtrdm=""clr-namespace:Microsoft.TeamFoundation.Release.Data.Model;assembly=Microsoft.TeamFoundation.Release.Data"" xmlns:mva=""clr-namespace:Microsoft.VisualBasic.Activities;assembly=System.Activities"" xmlns:p=""http://schemas.microsoft.com/netfx/2009/xaml/activities"" xmlns:sap=""http://schemas.microsoft.com/netfx/2009/xaml/activities/presentation"" xmlns:scg=""clr-namespace:System.Collections.Generic;assembly=mscorlib"" xmlns:x=""http://schemas.microsoft.com/winfx/2006/xaml"" DisplayName=""Deployment Sequence"" sap:VirtualizedContainerService.HintSize=""244.8,302.4"" mva:VisualBasic.Settings=""Assembly references and imported namespaces serialized as XML namespaces""><sap:WorkflowViewStateService.ViewState><scg:Dictionary x:TypeArguments=""x:String, x:Object""><x:Boolean x:Key=""IsExpanded"">True</x:Boolean></scg:Dictionary></sap:WorkflowViewStateService.ViewState><ServerActivity sap:VirtualizedContainerService.HintSize=""222.4,177.6"" InstanceSequenceNumber=""1"" ServerId=""19"" ServerName=""lab-dmann""><ActionActivity DisplayName=""Copy File or Folder"" sap:VirtualizedContainerService.HintSize=""200,52.8"" IsSkipped=""False"" WorkflowActivityId=""a122e31d-9faa-4468-b09b-2ec09ea51567""><ActionActivity.StageActivity><mtrdm:StageActivity ActivityDisplayName=""Copy File or Folder"" ApplyFullValidation=""False"" CanEditVariables=""True"" ComponentId=""3981"" HasPendingSecurityChanges=""False"" Id=""-835378"" IsDeletable=""True"" IsDirty=""True"" IsSerializing=""False"" IsTagBased=""0"" LinkedV2ComponentId=""0"" ServerId=""19"" ServerInstanceSequenceNumber=""1"" ServerName=""lab-dmann"" StatusId=""2"" StatusName=""Active"" WorkflowActivityId=""a122e31d-9faa-4468-b09b-2ec09ea51567""><mtrdm:StageActivity.Component><mtrdm:Component ActionTypeId=""2"" ActionTypeName=""Custom action"" ApplyFullValidation=""False"" CategoryId=""1998"" CategoryName=""Windows OS"" DeployerToolId=""0"" DeploymentMethod=""2013"" Description=""Copy file(s) or folder (wildcards can be used)"" HasPendingSecurityChanges=""False"" Id=""3981"" InMemoryStatus=""New"" IsDeletable=""True"" IsDirty=""False"" IsPublishedByMicrosoft=""True"" IsSerializing=""False"" Name=""Copy File or Folder"" StatusId=""2"" StatusName=""Active"" TeamFoundationServerId=""0"" TeamProjectCollectionId=""0"" Timeout=""5"" TypeId=""4"" TypeName=""Without source"" VariableReplacementModeId=""1"" Version=""2013""><mtrdm:Component.ConfigurationVariables><mtrdm:SortableObservableCollection x:TypeArguments=""mtrdm:ConfigurationVariable"" /></mtrdm:Component.ConfigurationVariables><mtrdm:Component.PropertyBagVariables><mtrdm:SortableObservableCollection x:TypeArguments=""mtrdm:ConfigurationVariable"" /></mtrdm:Component.PropertyBagVariables></mtrdm:Component></mtrdm:StageActivity.Component><mtrdm:StageActivity.Variables><mtrdm:ConfigurationVariable x:Name=""__ReferenceID0"" Id=""9950"" Name=""SourceFileFolder"" Value="""" /><mtrdm:ConfigurationVariable x:Name=""__ReferenceID1"" Id=""9951"" Name=""DestinationFileFolder"" Value="""" /></mtrdm:StageActivity.Variables></mtrdm:StageActivity></ActionActivity.StageActivity><ActionActivity.StageActivityVariables><x:Reference>__ReferenceID0</x:Reference><x:Reference>__ReferenceID1</x:Reference></ActionActivity.StageActivityVariables></ActionActivity></ServerActivity></DeploymentSequenceActivity>"; var targetPath = @"C:\RMWorkflow\"; // Act var sequence = (new RMDeploymentSequence { StageId = 100, WorkflowXaml = testXml }).ToReleaseTemplate(); await gen.GenerateScriptAsync(sequence, targetPath); // Assert Assert.IsTrue(fs.Directories.Contains(@"C:\RMWorkflow\1_Server_lab-dmann")); }
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 FakeCakeContext() { WorkingDirectory = new DirectoryPath( System.IO.Path.GetFullPath( System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "../../"))); var environment = FakeEnvironment.CreateUnixEnvironment(false); var fileSystem = new FakeFileSystem(environment); var globber = new Globber(fileSystem, environment); _log = new FakeLog(); var args = new FakeCakeArguments(); var processRunner = new ProcessRunner(environment, _log); var registry = new WindowsRegistry(); CakeContext = new CakeContext( fileSystem, environment, globber, _log, args, processRunner, registry, new ToolLocator( environment, new ToolRepository(environment), new ToolResolutionStrategy( fileSystem, environment, globber, new FakeConfiguration() ) ) ); CakeContext.Environment.WorkingDirectory = WorkingDirectory; }
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); }
public void Should_Create_Text_Transformation_From_Disc_Template() { // Given var fileSystem = new FakeFileSystem(false); fileSystem.GetCreatedFile("/Working/template.txt", "Hello World"); var environment = Substitute.For <ICakeEnvironment>(); environment.WorkingDirectory.Returns("/Working"); var context = Substitute.For <ICakeContext>(); context.FileSystem.Returns(fileSystem); context.Environment.Returns(environment); // When var result = TextTransformationAliases.TransformTextFile( context, "./template.txt", "{", "}"); // Then Assert.Equal("Hello World", result.ToString()); }
public ProcessRunnerFixture(bool windows = false) { var environment = windows ? FakeEnvironment.CreateWindowsEnvironment() : FakeEnvironment.CreateUnixEnvironment(); environment.WorkingDirectory = "/Working"; Environment = environment; FileSystem = new FakeFileSystem(Environment); Log = Substitute.For <ICakeLog>(); Tools = Substitute.For <IToolLocator>(); Configuration = Substitute.For <ICakeConfiguration>(); ProcessFilePath = "/Program Files/Cake.exe"; ProcessSettings = new ProcessSettings(); FileSystem.CreateDirectory("/Working"); FileSystem.CreateDirectory("/Program Files"); FileSystem.CreateFile("/Program Files/Cake.exe", ClrAssemblyData); MonoFile = FileSystem.CreateFile("/Program Files/mono.exe", NonClrAssemblyData); Tools.Resolve("mono").Returns(file => MonoFile.Exists ? MonoFile.Path : null); }
protected NuGetFixture() { Environment = Substitute.For <ICakeEnvironment>(); Environment.WorkingDirectory.Returns("/Working"); Process = Substitute.For <IProcess>(); Process.GetExitCode().Returns(0); ProcessRunner = Substitute.For <IProcessRunner>(); ProcessRunner.Start(Arg.Any <FilePath>(), Arg.Any <ProcessSettings>()).Returns(Process); NuGetToolResolver = Substitute.For <IToolResolver>(); NuGetToolResolver.Name.Returns("NuGet"); Log = Substitute.For <ICakeLog>(); FileSystem = new FakeFileSystem(true); // By default, there is a default tool. NuGetToolResolver.ResolveToolPath().Returns("/Working/tools/NuGet.exe"); FileSystem.GetCreatedFile("/Working/tools/NuGet.exe"); // Set standard output. Process.GetStandardOutput().Returns(new string[0]); }
public void Constructor_PostAndDraftExist_IncrementsNextId() { FakeFileSystem fileSystem = new FakeFileSystem(); fileSystem.AddFile("BlogFiles\\Drafts\\1.xml"); fileSystem.AddFile("BlogFiles\\Posts\\date_2.xml"); TestDataStore.ResetCurrentId(); TestDataStore dataStore = new TestDataStore(fileSystem); Post testPost = new Post { Slug = "Test-slug", Title = "Test title", Body = "Test body", PubDate = DateTime.Now, LastModified = DateTime.Now, IsPublic = false, Excerpt = "Test excerpt" }; dataStore.SavePost(testPost); Assert.Equal(3, testPost.Id); }
public void UnDeletePost_MoveToIndex() { IFileSystem fakeFileSystem = new FakeFileSystem(); BlogDataStore testDataStore = new BlogDataStore(fakeFileSystem); MarkdownRenderer markdownRenderer = new MarkdownRenderer(); PostModel testPostModel = new PostModel(testDataStore, markdownRenderer); testPostModel.PageContext = new PageContext(); Post post = new Post { Title = "Title", Body = "This is the body of my post", IsDeleted = true, }; testDataStore.SavePost(post); testPostModel.OnPostUnDeletePost(post.Id.ToString("N")); Post result = testDataStore.GetPost(post.Id.ToString("N")); Assert.False(result.IsDeleted); }
public void DeletePost_MoveToTrash() { IFileSystem fakeFileSystem = new FakeFileSystem(); var testDataStore = new BlogDataStore(fakeFileSystem); var markdownRenderer = new MarkdownRenderer(); var testPostModel = new PostModel(testDataStore, markdownRenderer); testPostModel.PageContext = new PageContext(); var post = new Post { Title = "Title", Body = "This is the body of my post", IsDeleted = false, }; testDataStore.SavePost(post); testPostModel.OnPostDeletePost(post.Id.ToString("N")); var result = testDataStore.GetPost(post.Id.ToString("N")); Assert.True(result.IsDeleted); }
public void Build_IfGivenAViewModelWithNoMetalFilterSetToDefaultOf1() { //Arrange var jewelryRepository = MockRepository.GenerateMock <IJewelRepository>(); var tabsRepository = CreateStubTabsRepository(TabKey); var fileSystem = FakeFileSystem.MediaFileSystemForItemNumber("0101-15001"); var viewModel = new TabsViewModel(); viewModel.TabKey = TAB_KEY; viewModel.TabId = TAB_ID1; TabsViewModelBuilder tabsViewModelBuilder = new TabsViewModelBuilder(viewModel, xmldoc_regular3tabs, tabsRepository, jewelryRepository, fileSystem); viewModel = tabsViewModelBuilder.Build(); //Act var tabsContainers = viewModel.JewelryInTabContainersCollection; //Assert tabsContainers.Should().OnlyContain(x => x.Metal == "White Gold 18K"); }
public void CanBindToModelInNestedLayout() { var files = new FakeFileSystem { { "views\\parent_layout.hbs", "Parent layout: {{property}}\r\n{{{body}}}" }, { "views\\layout.hbs", "{{!< parent_layout}}\r\nLayout: {{property}}\r\n{{{body}}}" }, { "views\\someview.hbs", "{{!< layout}}\r\n\r\nBody: {{property}}" }, }; var handlebarsConfiguration = new HandlebarsConfiguration { FileSystem = files }; var handlebars = Handlebars.Create(handlebarsConfiguration); var render = handlebars.CompileView("views\\someview.hbs"); var output = render( new { property = "Foo" } ); Assert.Equal("Parent layout: Foo\r\nLayout: Foo\r\n\r\nBody: Foo", output); }
public void Build_ShouldPassTheCurrentValueOfTheGeneralFilterToTheViewModelForPresistance() { //Arrange //Arrange var jewelryRepository = MockRepository.GenerateMock <IJewelRepository>(); var tabsRepository = CreateStubTabsRepository(TabKey); var fileSystem = FakeFileSystem.MediaFileSystemForItemNumber("0101-15001"); var viewModel = new TabsViewModel { TabKey = TAB_KEY, TabId = TAB_ID1, CustomFilters = new List <CustomTabFilterViewModel> { new CustomTabFilterViewModel() { Name = "gemstone-center-stone", Value = (int)GemstoneCenterStoneFilterValues.Ruby } } }; var tabsViewModelBuilder = new TabsViewModelBuilder(viewModel, xmldoc_tabswithgeneralfilter, tabsRepository, jewelryRepository, fileSystem); //Act var result = tabsViewModelBuilder.Build(); //Assert result.CustomFilters[0].Value.Should().Be(1); }
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); }
public void Should_Recursively_Copy_Files_And_Directory() { // Given var context = Substitute.For<ICakeContext>(); var environment = FakeEnvironment.CreateUnixEnvironment(); var fileSystem = new FakeFileSystem(environment); CreateFileStructure(fileSystem); context.FileSystem.Returns(fileSystem); var sourcePath = new DirectoryPath("/Temp"); var destinationPath = new DirectoryPath("/Temp2"); // When DirectoryAliases.CopyDirectory(context, sourcePath, destinationPath); // Then // Directories should exist Assert.True(fileSystem.GetDirectory("/Temp2/Stuff").Exists); Assert.True(fileSystem.GetDirectory("/Temp2/Things").Exists); // Files should exist Assert.True(fileSystem.GetFile("/Temp2/Stuff/file1.txt").Exists); Assert.True(fileSystem.GetFile("/Temp2/Stuff/file2.txt").Exists); Assert.True(fileSystem.GetFile("/Temp2/Things/file1.txt").Exists); }
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("/Foo/Bar.baz"); FileSystem.CreateFile("/Foo (Bar)/Baz.c"); }
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 void Verify_ShouldReturnMovieAsNullIfMovieIsNotPresentOnDisk() { //Arrange const string itemNumber = "0101-15001"; var fakeFileSystem = FakeFileSystem.MediaFileSystemForItemNumber(new Dictionary <string, MockFileData>() { { String.Format(@"C:\Users\maMLUka\Documents\jewelryonnet\internet-sites\jon-images\jewelry\{0}-pic-wg.jpg", itemNumber), new MockFileData("") }, { String.Format(@"C:\Users\maMLUka\Documents\jewelryonnet\internet-sites\jon-images\jewelry\{0}-icon-wg.jpg", itemNumber), new MockFileData("") }, { String.Format(@"C:\Users\maMLUka\Documents\jewelryonnet\internet-sites\jon-images\jewelry\{0}-hand-wg.jpg", itemNumber), new MockFileData("") }, { String.Format(@"C:\Users\maMLUka\Documents\jewelryonnet\internet-sites\jon-images\jewelry\{0}-hires-wg.jpg", itemNumber), new MockFileData("") }, // {String.Format(@"C:\Users\maMLUka\Documents\jewelryonnet\internet-sites\jon-images\jewelry\{0}-mov-wg.flv",itemNumber),new MockFileData("")} }); var media = CreateMedia(); var mediaVerifier = new MediaVerifier(fakeFileSystem); //Act var verifiedmedia = mediaVerifier.Verify(media); //Assert verifiedmedia.MovieURLForWebDisplay.Should().BeNull(); }
static TinyIoCContainer CreateContainer() { var container = new TinyIoCContainer(); new SpritingContainerConfiguration().Configure(container); sourceDirectory = new FakeFileSystem(); var settings = new CassetteSettings { SourceDirectory = sourceDirectory }; container.Register(settings); container.Register<IUrlGenerator>(new UrlGenerator(new VirtualDirectoryPrepender("/"), sourceDirectory, "cassette.axd/")); container.Register<IConfiguration<SpritingSettings>, DefaultSpritingSettingsConfiguration>(); return container; }
public void Can_Compile_LESS_with_two_levels_of_import() { var source = "@import \"../bundle-b/_lib.less\";\nbody{ color: @color }"; var fileSystem = new FakeFileSystem { { "~/_base.less", "@size: 100px;" }, { "~/bundle-b/_lib.less", "@import \"../_base.less\";\n@color: red; p { height: @size; }" }, { "~/bundle-a/test.less", source } }; compileContext.SourceFilePath = "~/bundle-a/test.less"; compileContext.RootDirectory = fileSystem; var css = compiler.Compile( source, compileContext ); css.Output.ShouldEqual("p {\n height: 100px;\n}\nbody {\n color: red;\n}\n"); }
public void Import_less_file_that_uses_outer_variable() { var fileSystem = new FakeFileSystem { {"~/Framework.less", ".object { padding: @objectpadding; }" }, "~/test.less" }; compileContext.RootDirectory = fileSystem; compileContext.SourceFilePath = "~/test.less"; var result = compiler.Compile( "@objectpadding: 20px;\n@import \"Framework.less\";", compileContext ); result.Output.ShouldEqual(".object {\n padding: 20px;\n}\n"); }
public void Can_Compile_LESS_that_imports_another_LESS_file_from_different_directory() { var fileSystem = new FakeFileSystem { {"~/bundle-b/lib.less", "@color: red;"}, "~/bundle-a/test.less" }; compileContext.RootDirectory = fileSystem; compileContext.SourceFilePath = "~/bundle-a/test.less"; var css = compiler.Compile( "@import \"../bundle-b/lib.less\";\nbody{ color: @color }", compileContext ); css.Output.ShouldEqual("body {\n color: red;\n}\n"); }