public void ComputeDevelopmentManifest_IncludesAllAssets() { // 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.html"))), Environment.CurrentDirectory); var task = new GenerateStaticWebAssetsDevelopmentManifest() { BuildEngine = buildEngine.Object, }; var assets = new[] { 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_DifferentCasingEndUpInDifferentNodes() { // 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")))), ("CSS", CreateIntermediateNode(("site.css", CreateMatchNode(0, "CSS/site.css"))))), Environment.CurrentDirectory); 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"), }; var patterns = Array.Empty <StaticWebAssetsManifest.DiscoveryPattern>(); // Act var manifest = task.ComputeDevelopmentManifest(assets, patterns); // Assert manifest.ShouldBeEquivalentTo(expectedManifest); }
public void ComputeDevelopmentManifest_MapsPatternsFromOtherProjects() { // 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, "**", 2)))))), Path.GetFullPath("wwwroot")); var task = new GenerateStaticWebAssetsDevelopmentManifest() { BuildEngine = buildEngine.Object, Source = "CurrentProjectId" }; var assets = Array.Empty <StaticWebAsset>(); var patterns = new[] { CreatePattern(basePath: "_other/_project", source: "OtherProject") }; // Act var manifest = task.ComputeDevelopmentManifest(assets, patterns); // Assert manifest.ShouldBeEquivalentTo(expectedManifest); }
public void ComputeDevelopmentManifest_UsesRelativePathContentRootDoesNotStartByIdentity() { // 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.html"))), Path.GetFullPath(Path.Combine("bin", "debug", "wwwroot"))); var task = new GenerateStaticWebAssetsDevelopmentManifest() { BuildEngine = buildEngine.Object, Source = "CurrentProjectId" }; var assets = new[] { CreateAsset(Path.Combine("some", "subfolder", "index.build.html"), "index.html", contentRoot: Path.Combine("bin", "debug", "wwwroot")), }; var patterns = Array.Empty <StaticWebAssetsManifest.DiscoveryPattern>(); // Act var manifest = task.ComputeDevelopmentManifest(assets, patterns); // Assert manifest.ShouldBeEquivalentTo(expectedManifest); }
public void ComputeDevelopmentManifest_ExcludesReferenceAssets() { // 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, Source = "CurrentProjectId" }; var assets = new[] { CreateAsset("index.html", "index.html", assetMode: StaticWebAsset.AssetModes.Reference) }; var patterns = Array.Empty <StaticWebAssetsManifest.DiscoveryPattern>(); // Act var manifest = task.ComputeDevelopmentManifest(assets, patterns); // Assert manifest.ShouldBeEquivalentTo(expectedManifest); }
public void SkipsManifestGenerationWhen_ThereAreNoAssetsNorDiscoveryPatterns() { // 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 task = new GenerateStaticWebAssetsDevelopmentManifest() { BuildEngine = buildEngine.Object, Assets = Array.Empty <ITaskItem>(), DiscoveryPatterns = Array.Empty <ITaskItem>() }; // Act var result = task.Execute(); // Assert result.Should().BeTrue(); messages.Should().HaveCount(1); }