public void ComputeDevelopmentManifest_PrefersBuildAssetsOverAllAssets() { // Arrange var messages = new List <string>(); var buildEngine = new Mock <IBuildEngine>(); buildEngine.Setup(e => e.LogMessageEvent(It.IsAny <BuildMessageEventArgs>())) .Callback <BuildMessageEventArgs>(args => messages.Add(args.Message)); var expectedManifest = CreateExpectedManifest( CreateIntermediateNode( ("index.html", CreateMatchNode(0, "index.build.html"))), Environment.CurrentDirectory); var task = new GenerateStaticWebAssetsDevelopmentManifest() { BuildEngine = buildEngine.Object, Source = "CurrentProjectId" }; var assets = new[] { CreateAsset("index.build.html", "index.html", assetKind: StaticWebAsset.AssetKinds.Build), CreateAsset("index.html", "index.html", assetKind: StaticWebAsset.AssetKinds.All) }; var patterns = Array.Empty <StaticWebAssetsManifest.DiscoveryPattern>(); // Act var manifest = task.ComputeDevelopmentManifest(assets, patterns); // Assert manifest.ShouldBeEquivalentTo(expectedManifest); }
public void ComputeDevelopmentManifest_UsesIdentityWhenContentRootStartsByIdentity() { // Arrange var messages = new List <string>(); var buildEngine = new Mock <IBuildEngine>(); buildEngine.Setup(e => e.LogMessageEvent(It.IsAny <BuildMessageEventArgs>())) .Callback <BuildMessageEventArgs>(args => messages.Add(args.Message)); var expectedManifest = CreateExpectedManifest( CreateIntermediateNode( ("index.html", CreateMatchNode(0, StaticWebAsset.Normalize(Path.Combine("some", "subfolder", "index.build.html"))))), Environment.CurrentDirectory); var task = new GenerateStaticWebAssetsDevelopmentManifest() { BuildEngine = buildEngine.Object, Source = "CurrentProjectId" }; var assets = new[] { CreateAsset(Path.Combine("some", "subfolder", "index.build.html"), "index.html"), }; var patterns = Array.Empty <StaticWebAssetsManifest.DiscoveryPattern>(); // Act var manifest = task.ComputeDevelopmentManifest(assets, patterns); // Assert manifest.ShouldBeEquivalentTo(expectedManifest); }
public void ComputeDevelopmentManifest_ExcludesPublishAssets() { // Arrange var messages = new List <string>(); var buildEngine = new Mock <IBuildEngine>(); buildEngine.Setup(e => e.LogMessageEvent(It.IsAny <BuildMessageEventArgs>())) .Callback <BuildMessageEventArgs>(args => messages.Add(args.Message)); var expectedManifest = CreateExpectedManifest( CreateIntermediateNode()); var task = new GenerateStaticWebAssetsDevelopmentManifest() { BuildEngine = buildEngine.Object, }; var assets = new[] { CreateAsset("index.html", "index.html", assetKind: StaticWebAsset.AssetKinds.Publish) }; var patterns = Array.Empty <StaticWebAssetsManifest.DiscoveryPattern>(); // Act var manifest = task.ComputeDevelopmentManifest(assets, patterns); // Assert manifest.ShouldBeEquivalentTo(expectedManifest); }
public void ComputeDevelopmentManifest_UsesBasePathForAssetsFromDifferentProjects() { // Arrange var messages = new List <string>(); var buildEngine = new Mock <IBuildEngine>(); buildEngine.Setup(e => e.LogMessageEvent(It.IsAny <BuildMessageEventArgs>())) .Callback <BuildMessageEventArgs>(args => messages.Add(args.Message)); var expectedManifest = CreateExpectedManifest( CreateIntermediateNode( ("css", CreateIntermediateNode(("site.css", CreateMatchNode(0, "css/site.css")))), ("_content", CreateIntermediateNode( ("OtherProject", CreateIntermediateNode( ("CSS", CreateIntermediateNode(("site.css", CreateMatchNode(1, "CSS/site.css"))))))))), Environment.CurrentDirectory, Path.GetFullPath("otherProject")); var task = new GenerateStaticWebAssetsDevelopmentManifest() { BuildEngine = buildEngine.Object, Source = "CurrentProjectId" }; var assets = new[] { CreateAsset(Path.Combine(Environment.CurrentDirectory, "css", "site.css"), "css/site.css"), CreateAsset( Path.Combine(Environment.CurrentDirectory, "CSS", "site.css"), "CSS/site.css", basePath: "_content/OtherProject", sourceType: "Project", contentRoot: Path.GetFullPath("otherProject")), }; var patterns = Array.Empty <StaticWebAssetsManifest.DiscoveryPattern>(); // Act var manifest = task.ComputeDevelopmentManifest(assets, patterns); // Assert manifest.ShouldBeEquivalentTo(expectedManifest); }
public void ComputeDevelopmentManifest_CanMapMultiplePatternsOnSameNodeWithDifferentContentRoots() { // Arrange var messages = new List <string>(); var buildEngine = new Mock <IBuildEngine>(); buildEngine.Setup(e => e.LogMessageEvent(It.IsAny <BuildMessageEventArgs>())) .Callback <BuildMessageEventArgs>(args => messages.Add(args.Message)); var expectedManifest = CreateExpectedManifest( CreateIntermediateNode( ("_other", CreateIntermediateNode( ("_project", CreateIntermediateNode().AddPatterns( (0, "*.js", 2), (1, "*.css", 2)))))), Path.GetFullPath("wwwroot"), Path.GetFullPath("styles")); var task = new GenerateStaticWebAssetsDevelopmentManifest() { BuildEngine = buildEngine.Object, Source = "CurrentProjectId" }; var assets = Array.Empty <StaticWebAsset>(); var patterns = new[] { CreatePattern(basePath: "_other/_project", source: "OtherProject", pattern: "*.js"), CreatePattern(basePath: "_other/_project", source: "OtherProject", pattern: "*.css", contentRoot: Path.GetFullPath("styles")) }; // Act var manifest = task.ComputeDevelopmentManifest(assets, patterns); // Assert manifest.ShouldBeEquivalentTo(expectedManifest); }