private ITaskItem CreateCandidate( string itemSpec, string sourceId, string sourceType, string relativePath, string assetKind, string assetMode) { var result = new StaticWebAsset() { Identity = Path.GetFullPath(itemSpec), SourceId = sourceId, SourceType = sourceType, ContentRoot = Directory.GetCurrentDirectory(), BasePath = "base", RelativePath = relativePath, AssetKind = assetKind, AssetMode = assetMode, AssetRole = "Primary", RelatedAsset = "", AssetTraitName = "", AssetTraitValue = "", CopyToOutputDirectory = "", CopyToPublishDirectory = "", OriginalItemSpec = itemSpec, }; result.ApplyDefaults(); result.Normalize(); return(result.ToTaskItem()); }
public void FailsWhenNeitherIdentityNorOriginalItemSpecExist() { // Arrange var errorMessages = new List <string>(); var buildEngine = new Mock <IBuildEngine>(); buildEngine.Setup(e => e.LogErrorEvent(It.IsAny <BuildErrorEventArgs>())) .Callback <BuildErrorEventArgs>(args => errorMessages.Add(args.Message)); var asset = new StaticWebAsset() { Identity = ItemSpec, OriginalItemSpec = OriginalItemSpec }; var task = new ComputeBlazorFilesToCompress { BuildEngine = buildEngine.Object, Assets = new[] { asset.ToTaskItem() } }; // Act var result = task.Execute(); // Assert result.Should().BeFalse(); task.AssetsToCompress.Should().BeEmpty(); }
public void FallsBackToItemSpecWhenIdentityDoesNotExist() { // Arrange var errorMessages = new List <string>(); var buildEngine = new Mock <IBuildEngine>(); buildEngine.Setup(e => e.LogErrorEvent(It.IsAny <BuildErrorEventArgs>())) .Callback <BuildErrorEventArgs>(args => errorMessages.Add(args.Message)); File.Create(ItemSpec); var asset = new StaticWebAsset() { Identity = ItemSpec, OriginalItemSpec = OriginalItemSpec }; var task = new ComputeBlazorFilesToCompress { BuildEngine = buildEngine.Object, Assets = new[] { asset.ToTaskItem() } }; // Act var result = task.Execute(); // Assert result.Should().BeTrue(); task.AssetsToCompress.Should().HaveCount(1); task.AssetsToCompress[0].ItemSpec.Should().Be(ItemSpec); }
public void GeneratesManifestFailsWhenTwoAssetsEndUpOnTheSamePath(StaticWebAsset first, StaticWebAsset second) { var errorMessages = new List <string>(); var buildEngine = new Mock <IBuildEngine>(); buildEngine.Setup(e => e.LogErrorEvent(It.IsAny <BuildErrorEventArgs>())) .Callback <BuildErrorEventArgs>(args => errorMessages.Add(args.Message)); // GetTempFilePath automatically creates the file, which interferes with the test. File.Delete(TempFilePath); var task = new GenerateStaticWebAssetsManifest { BuildEngine = buildEngine.Object, Assets = new[] { first.ToTaskItem(), second.ToTaskItem() }, ReferencedProjectsConfigurations = Array.Empty <ITaskItem>(), DiscoveryPatterns = Array.Empty <ITaskItem>(), BasePath = "/", Source = "MyProject", ManifestType = "Build", Mode = "Default", ManifestPath = TempFilePath, }; // Act var result = task.Execute(); // Assert result.Should().Be(false); }