public async Task MetadataToFromJsonSucceeds(string packageUrlString) { PackageURL packageUrl = new(packageUrlString); BaseProjectManager?projectManager = ProjectManagerFactory.ConstructPackageManager(packageUrl); if (projectManager == null) { throw new NullReferenceException("The project manager is null."); } PackageMetadata metadata = await projectManager.GetPackageMetadataAsync(packageUrl, useCache : false); Assert.AreEqual("lodash", metadata.Name); Assert.AreEqual("Lodash modular utilities.", metadata.Description); Assert.AreEqual("4.17.15", metadata.PackageVersion); string?metadataJson = metadata.ToString(); Assert.IsTrue(metadataJson.Contains("Lodash modular utilities.")); PackageMetadata metadataFromJson = PackageMetadata.FromJson(metadataJson) ?? throw new InvalidOperationException("Can't deserialize the metadata json."); Assert.AreEqual("lodash", metadataFromJson.Name); Assert.AreEqual("Lodash modular utilities.", metadataFromJson.Description); Assert.AreEqual("4.17.15", metadataFromJson.PackageVersion); }