public void DeserializationExceptionWhenMalformedJson() { var path = Path.GetTempFileName(); File.WriteAllText(path, @"{ ""foo }"); Assert.Throws <DeserializationException>(() => BsiMetadataExtractor.ProduceSbomMetadata(path, BuildEnvironmentName.BuildXL, "packageName", "1.0")); }
public void SBOMMetadataFromBuildSessionInfoFile(bool useStaticMethod) { var path = Path.GetTempFileName(); var uri = "https://mseng.visualstudio.com/DefaultCollection/Domino/_git/BuildXL.Internal"; File.WriteAllText(path, SampleBsiJson(uri)); var packageName = "myPackageName"; var packageVersion = "1.0"; SBOMMetadata metadata; if (useStaticMethod) { metadata = BsiMetadataExtractor.ProduceSbomMetadata(path, BuildEnvironmentName.BuildXL, packageName, packageVersion); } else { var bsiHelper = new BsiMetadataExtractor(path); _ = bsiHelper.ProduceSbomMetadata(BuildEnvironmentName.BuildXL, "someOtherPackageName"); metadata = bsiHelper.ProduceSbomMetadata(BuildEnvironmentName.BuildXL, packageName, packageVersion); } XAssert.AreEqual(BuildEnvironmentName.BuildXL, metadata.BuildEnvironmentName); XAssert.AreEqual(packageName, metadata.PackageName); XAssert.AreEqual(SampleBranch, metadata.Branch); XAssert.AreEqual(SampleBuildQueueName, metadata.BuildName); XAssert.AreEqual(SampleSessionId, metadata.BuildId); XAssert.AreEqual(SampleChangeId, metadata.CommitId); XAssert.AreEqual(uri, metadata.RepositoryUri); }
public void ExtractValidUriFromMetadata(string jsonUri, bool isValid) { XAssert.AreEqual(Uri.IsWellFormedUriString(jsonUri, UriKind.Absolute), isValid); var path = Path.GetTempFileName(); File.WriteAllText(path, SampleBsiJson(jsonUri)); var metadata = BsiMetadataExtractor.ProduceSbomMetadata(path, BuildEnvironmentName.BuildXL, "packageName", "1.0"); XAssert.IsTrue(Uri.IsWellFormedUriString(metadata.RepositoryUri, UriKind.Absolute)); }
public void DoNotFailWhenFieldsAreMissing() { var path = Path.GetTempFileName(); File.WriteAllText(path, "{ }"); var metadata = BsiMetadataExtractor.ProduceSbomMetadata(path, BuildEnvironmentName.BuildXL, "packageName", "1.0"); XAssert.AreEqual(BuildEnvironmentName.BuildXL, metadata.BuildEnvironmentName); XAssert.AreEqual("packageName", metadata.PackageName); XAssert.IsNull(metadata.Branch); XAssert.IsNull(metadata.BuildName); XAssert.IsNull(metadata.BuildId); XAssert.IsNull(metadata.CommitId); XAssert.IsNull(metadata.RepositoryUri); }