public void RebaseUriVisitor_VisitRun_UpdatesBaseUriDictionaryWhenPresent() { const string srcRoot = "SRCROOT"; Uri srcRootUri = new Uri(@"C:\src\root"); const string bldRoot = "BLDROOT"; Uri bldRootUri = new Uri(@"C:\bld\root"); Random random = RandomSarifLogGenerator.GenerateRandomAndLog(this.output); Run oldRun = RandomSarifLogGenerator.GenerateRandomRun(random); RebaseUriVisitor rebaseUriVisitor = new RebaseUriVisitor(srcRoot, srcRootUri); var oldDictionary = new Dictionary <string, ArtifactLocation>() { { bldRoot, new ArtifactLocation { Uri = bldRootUri } } }; oldRun.OriginalUriBaseIds = oldDictionary; Run newRun = rebaseUriVisitor.VisitRun(oldRun); IDictionary <string, ArtifactLocation> baseUriDictionary = newRun.OriginalUriBaseIds; baseUriDictionary.Should().ContainKey(srcRoot); baseUriDictionary[srcRoot].Uri.Should().BeEquivalentTo(srcRootUri); baseUriDictionary.Should().ContainKey(bldRoot); baseUriDictionary[bldRoot].Uri.Should().BeEquivalentTo(bldRootUri); }
public void RebaseUriVisitor_VisitRun_UpdatesBaseUriDictionaryWhenPresent() { const string srcRoot = "SRCROOT"; Uri srcRootUri = new Uri(@"C:\src\root"); const string bldRoot = "BLDROOT"; Uri bldRootUri = new Uri(@"C:\bld\root"); Random random = RandomSarifLogGenerator.GenerateRandomAndLog(this.output); Run oldRun = RandomSarifLogGenerator.GenerateRandomRun(random); oldRun.Properties = new Dictionary <string, SerializedPropertyInfo>(); RebaseUriVisitor rebaseUriVisitor = new RebaseUriVisitor(srcRoot, srcRootUri); Dictionary <string, Uri> oldDictionary = new Dictionary <string, Uri>() { { bldRoot, bldRootUri } }; oldRun.Properties.Add(RebaseUriVisitor.BaseUriDictionaryName, RebaseUriVisitor.ReserializePropertyDictionary(oldDictionary)); Run newRun = rebaseUriVisitor.VisitRun(oldRun); newRun.Properties.Should().ContainKey(RebaseUriVisitor.BaseUriDictionaryName); Dictionary <string, Uri> baseUriDictionary = RebaseUriVisitor.DeserializePropertyDictionary(newRun.Properties[RebaseUriVisitor.BaseUriDictionaryName]); baseUriDictionary.Should().ContainKey(srcRoot); baseUriDictionary[srcRoot].ShouldBeEquivalentTo(srcRootUri); baseUriDictionary.Should().ContainKey(bldRoot); baseUriDictionary[bldRoot].ShouldBeEquivalentTo(bldRootUri); }
public void RebaseUriVisitor_VisitRun_ReplacesBaseUriDictionaryWhenIncorrect() { Random random = RandomSarifLogGenerator.GenerateRandomAndLog(this.output); Run oldRun = RandomSarifLogGenerator.GenerateRandomRun(random); oldRun.Properties = new Dictionary <string, SerializedPropertyInfo>(); SerializedPropertyInfo oldData = new SerializedPropertyInfo("42", false); oldRun.Properties.Add(RebaseUriVisitor.BaseUriDictionaryName, oldData); RebaseUriVisitor rebaseUriVisitor = new RebaseUriVisitor("SRCROOT", new Uri(@"C:\src\root")); Run newRun = rebaseUriVisitor.VisitRun(oldRun); newRun.Properties.Should().ContainKey(RebaseUriVisitor.BaseUriDictionaryName); Dictionary <string, Uri> baseUriDictionary = RebaseUriVisitor.DeserializePropertyDictionary(newRun.Properties[RebaseUriVisitor.BaseUriDictionaryName]); baseUriDictionary.Should().ContainKey("SRCROOT"); baseUriDictionary["SRCROOT"].ShouldBeEquivalentTo(new Uri(@"C:\src\root")); newRun.Properties.Should().ContainKey(RebaseUriVisitor.BaseUriDictionaryName + RebaseUriVisitor.IncorrectlyFormattedDictionarySuffix); newRun.Properties[RebaseUriVisitor.BaseUriDictionaryName + RebaseUriVisitor.IncorrectlyFormattedDictionarySuffix].ShouldBeEquivalentTo(oldData); }
public void RebaseUriVisitor_VisitRun_CorrectlyPatchesFileDictionaryKeys() { Random random = RandomSarifLogGenerator.GenerateRandomAndLog(this.output); Run oldRun = RandomSarifLogGenerator.GenerateRandomRun(random); RebaseUriVisitor rebaseUriVisitor = new RebaseUriVisitor("SRCROOT", new Uri(@"C:\src\")); Run newRun = rebaseUriVisitor.VisitRun(oldRun); newRun.OriginalUriBaseIds.Should().ContainKey("SRCROOT"); newRun.Artifacts.Where(f => f.Location.Uri.OriginalString.StartsWith(@"C:\src\")).Should().BeEmpty(); }
public void RebaseUriVisitor_VisitRun_CorrectlyPatchesFileDictionaryKeys() { Random random = RandomSarifLogGenerator.GenerateRandomAndLog(this.output); Run oldRun = RandomSarifLogGenerator.GenerateRandomRun(random); RebaseUriVisitor rebaseUriVisitor = new RebaseUriVisitor("SRCROOT", new Uri(@"C:\src\")); Run newRun = rebaseUriVisitor.VisitRun(oldRun); newRun.Properties.Should().ContainKey(RebaseUriVisitor.BaseUriDictionaryName); newRun.Files.Keys.Where(k => k.StartsWith(@"C:\src\")).Should().BeEmpty(); }
public void RebaseUriVisitor_VisitRun_DoesNotPatchFileDictionaryKeysWhenNotABaseUri() { Random random = RandomSarifLogGenerator.GenerateRandomAndLog(this.output); Run oldRun = RandomSarifLogGenerator.GenerateRandomRun(random); RebaseUriVisitor rebaseUriVisitor = new RebaseUriVisitor("SRCROOT", new Uri(@"C:\bld\")); Run newRun = rebaseUriVisitor.VisitRun(oldRun); newRun.OriginalUriBaseIds.Should().ContainKey("SRCROOT"); // Random sarif log generator uses "C:\src\" as the root. newRun.Artifacts.Should().BeEquivalentTo(oldRun.Artifacts); }
public void RebaseUriVisitor_VisitRun_AddsBaseUriDictionaryWhenNotPresent() { Random random = RandomSarifLogGenerator.GenerateRandomAndLog(this.output); Run oldRun = RandomSarifLogGenerator.GenerateRandomRun(random); RebaseUriVisitor rebaseUriVisitor = new RebaseUriVisitor("SRCROOT", new Uri(@"C:\src\root")); Run newRun = rebaseUriVisitor.VisitRun(oldRun); IDictionary <string, Uri> baseUriDictionary = newRun.OriginalUriBaseIds; baseUriDictionary.Should().ContainKey("SRCROOT"); baseUriDictionary.Should().ContainValue(new Uri(@"C:\src\root")); }
public void RebaseUriVisitor_VisitRun_AddsBaseUriDictionaryWhenNotPresent() { Random random = RandomSarifLogGenerator.GenerateRandomAndLog(this.output); Run oldRun = RandomSarifLogGenerator.GenerateRandomRun(random); RebaseUriVisitor rebaseUriVisitor = new RebaseUriVisitor("SRCROOT", new Uri(@"C:\src\root")); Run newRun = rebaseUriVisitor.VisitRun(oldRun); newRun.Properties.Should().ContainKey(RebaseUriVisitor.BaseUriDictionaryName); Dictionary <string, Uri> baseUriDictionary = RebaseUriVisitor.DeserializePropertyDictionary(newRun.Properties[RebaseUriVisitor.BaseUriDictionaryName]); baseUriDictionary.Should().ContainKey("SRCROOT"); baseUriDictionary.Should().ContainValue(new Uri(@"C:\src\root")); }