public void GetMetadata_MultipleFiles_ReturnsDifferentResultsAndAddsToCache() { using (var directory = TempDirectory.Create()) { // Arrange var metadataCache = new MetadataCache(); var assemblyFilePath1 = LoaderTestResources.Delta.WriteToFile(directory.DirectoryPath, "Delta.dll"); var assemblyFilePath2 = LoaderTestResources.Gamma.WriteToFile(directory.DirectoryPath, "Gamma.dll"); // Act var result1 = metadataCache.GetMetadata(assemblyFilePath1); var result2 = metadataCache.GetMetadata(assemblyFilePath2); // Assert Assert.NotSame(result1, result2); Assert.Equal(2, metadataCache.Cache.Count); } }
public void GetMetadata_UsesCache() { using (var directory = TempDirectory.Create()) { // Arrange var metadataCache = new MetadataCache(); var assemblyFilePath = LoaderTestResources.Delta.WriteToFile(directory.DirectoryPath, "Delta.dll"); // Act 1 var result = metadataCache.GetMetadata(assemblyFilePath); // Assert 1 Assert.NotNull(result); Assert.Equal(1, metadataCache.Cache.Count); // Act 2 var cacheResult = metadataCache.GetMetadata(assemblyFilePath); // Assert 2 Assert.Same(result, cacheResult); Assert.Equal(1, metadataCache.Cache.Count); } }
protected override Metadata GetMetadataImpl() { return(_metadataCache.GetMetadata(FilePath)); }