public static MemCachedFile GetCachedVirtualFile(string path, IVirtualImageProvider provider, NameValueCollection queryString) { string key = provider != null?getVirtualCacheKey(path, queryString) : getCacheKey(path); MemCachedFile file = null; if (HttpContext.Current != null) { if (HttpContext.Current.Cache[key] != null) { file = (MemCachedFile)HttpContext.Current.Cache[key]; } else { IVirtualFile vfile = provider != null?provider.GetFile(path, queryString) : null; if (vfile == null) { throw new FileNotFoundException("The specified virtual file could not be found: \"" + path + "\" Associated querystring: \"" + PathUtils.BuildQueryString(queryString) + "\"."); } file = vfile != null ? new MemCachedFile(vfile) : new MemCachedFile(path); if (provider == null) { HttpContext.Current.Cache.Insert(key, file, new CacheDependency(path)); } else { HttpContext.Current.Cache.Insert(key, file); } } } else { //Has no invalidation, but this is only used for benchmarks. Only runs when there is no http session. lock (_fallbackCache){ if (_fallbackCache.ContainsKey(key)) { file = _fallbackCache[key]; } else { file = provider != null ? new MemCachedFile(provider.GetFile(path, queryString)) : new MemCachedFile(path); _fallbackCache[key] = file; } } } return(file); }
public void GetFileWithEmptyVirtualPath() { // Arrange IVirtualImageProvider target = this.CreateSqlReaderPlugin(); // Act var actual = target.GetFile(string.Empty, null); // Assert Assert.Null(actual); }
public void GetFileWithNullVirtualPath() { // Arrange IVirtualImageProvider target = this.CreateSqlReaderPlugin(); // Act var actual = Assert.Throws <NullReferenceException>(() => target.GetFile(null, null)); // Assert Assert.NotNull(actual); Assert.IsType <NullReferenceException>(actual); }
public void GetFileWithoutVirtualPathPrefix() { // Arrange string virtualPath = dummyDatabaseRecordId.ToString("B"); IVirtualImageProvider target = this.CreateSqlReaderPlugin(); // Act var actual = target.GetFile(virtualPath, null); // Assert Assert.Null(actual); }
public void GetFileWithEmptyVirtualPath() { // Arrange var rs = new ResizerSection(ConfigXml); var c = new Config(rs); IVirtualImageProvider target = (IVirtualImageProvider)c.Plugins.Get <AzureReader2Plugin>(); string virtualPath = Path.Combine(PathPrefix, Filename); // Act var actual = target.GetFile(string.Empty, null); // Assert Assert.Null(actual); }
public void GetFileInvalidWithoutCheckForModifiedFiles() { // Arrange IVirtualImageProvider target = this.CreateSqlReaderPlugin(); var settings = (SqlReaderPlugin)target; string virtualPath = Path.Combine(settings.VirtualFilesystemPrefix, dummyDatabaseRecordId.ToString("B")); // Act var actual = target.GetFile(virtualPath, null); // Assert Assert.NotNull(actual); Assert.IsAssignableFrom <Blob>(actual); }
public void GetFileWithoutVirtualPathPrefix() { // Arrange var rs = new ResizerSection(Settings); var c = new Config(rs); IVirtualImageProvider target = (IVirtualImageProvider)c.Plugins.VirtualProviderPlugins.First; string virtualPath = Filename; // Act var actual = target.GetFile(virtualPath, null); // Assert Assert.Null(actual); }
public void GetFileValidFastMode() { // Arrange var rs = new ResizerSection(Settings); var c = new Config(rs); IVirtualImageProvider target = (IVirtualImageProvider)c.Plugins.VirtualProviderPlugins.First; string virtualPath = Path.Combine(PathPrefix, Filename); // Act var actual = target.GetFile(virtualPath, null); // Assert Assert.NotNull(actual); Assert.IsAssignableFrom <Blob>(actual); }
public void GetFileWithNullVirtualPath() { // Arrange var rs = new ResizerSection(ConfigXml); var c = new Config(rs); IVirtualImageProvider target = (IVirtualImageProvider)c.Plugins.Get <AzureReader2Plugin>(); string virtualPath = Path.Combine(PathPrefix, Filename); // Act var actual = Assert.Throws <NullReferenceException>(() => target.GetFile(null, null)); // Assert Assert.NotNull(actual); Assert.IsType <NullReferenceException>(actual); }
public void OpenValidId() { // Arrange Guid id = this.realDatabaseRecordId; ////this.CreateFileInDatabase(); IVirtualImageProvider reader = this.CreateSqlReaderPlugin(); var settings = (SqlReaderPlugin)reader; string virtualPath = Path.Combine(settings.VirtualFilesystemPrefix, id.ToString("B")); var target = reader.GetFile(virtualPath, null); // Act var actual = target.Open(); // Assert Assert.NotNull(actual); Assert.IsAssignableFrom <Stream>(actual); }
public void OpenValidId() { // Arrange var rs = new ResizerSection(ConfigXml); var c = new Config(rs); IVirtualImageProvider reader = (IVirtualImageProvider)c.Plugins.Get <AzureReader2Plugin>(); string virtualPath = Path.Combine(PathPrefix, Filename); var target = reader.GetFile(virtualPath, null); // Act var actual = target.Open(); // Assert Assert.NotNull(actual); Assert.IsAssignableFrom <Stream>(actual); }
public void OpenInvalidId() { // Arrange var rs = new ResizerSection(Settings); var c = new Config(rs); IVirtualImageProvider reader = (IVirtualImageProvider)c.Plugins.VirtualProviderPlugins.First; string virtualPath = Path.Combine(PathPrefix, "resizer-downloads/examples/fountain-xxxx.jpg"); var target = reader.GetFile(virtualPath, null); // Act var actual = Assert.Throws <FileNotFoundException>(() => target.Open()); // Assert Assert.NotNull(actual); Assert.IsType <FileNotFoundException>(actual); }
public void OpenInvalidId() { // Arrange IVirtualImageProvider reader = this.CreateSqlReaderPlugin(); var settings = (SqlReaderPlugin)reader; string virtualPath = Path.Combine(settings.VirtualFilesystemPrefix, dummyDatabaseRecordId.ToString("B")); var target = reader.GetFile(virtualPath, null); // Act var actual = Assert.Throws <FileNotFoundException>(() => target.Open()); // Assert Assert.NotNull(actual); Assert.IsType <FileNotFoundException>(actual); Assert.Equal <string>(virtualPath, target.VirtualPath); }
public void GetFileInvalidNotFastMode() { // Arrange var rs = new ResizerSection(ConfigXml); var c = new Config(rs); IVirtualImageProvider target = (IVirtualImageProvider)c.Plugins.Get <AzureReader2Plugin>(); ((AzureReader2Plugin)target).LazyExistenceCheck = false; ((AzureReader2Plugin)target).MetadataCache = model; string virtualPath = Path.Combine(PathPrefix, "fountain-xxxx.jpg"); // Act var actual = target.GetFile(virtualPath, null); // Assert Assert.Null(actual); }
public void GetFileInvalidNotFastMode() { // Arrange var rs = new ResizerSection(Settings); var c = new Config(rs); IVirtualImageProvider target = (IVirtualImageProvider)c.Plugins.VirtualProviderPlugins.First; ((S3Reader2)target).LazyExistenceCheck = false; ((S3Reader2)target).MetadataCache = model; string virtualPath = Path.Combine(PathPrefix, "resizer-downloads/examples/fountain-xxxx.jpg"); // Act var actual = target.GetFile(virtualPath, null); // Assert Assert.Null(actual); }
public void OpenInvalidContainer() { // Arrange var rs = new ResizerSection(ConfigXml); var c = new Config(rs); IVirtualImageProvider reader = (IVirtualImageProvider)c.Plugins.Get <AzureReader2Plugin>(); ((AzureReader2Plugin)reader).LazyExistenceCheck = true; string virtualPath = Path.Combine(PathPrefix.Substring(0, PathPrefix.Length - 2) + "/", "fountain-xxxx.jpg"); var target = reader.GetFile(virtualPath, null); // Act var actual = Assert.Throws <FileNotFoundException>(() => target.Open()); // Assert Assert.NotNull(actual); Assert.IsType <FileNotFoundException>(actual); }
public void GetFileValidWithCheckForModifiedFiles() { // Arrange Guid id = this.realDatabaseRecordId; ////this.CreateFileInDatabase(); IVirtualImageProvider target = this.CreateSqlReaderPlugin(); var settings = (SqlReaderPlugin)target; settings.CheckForModifiedFiles = true; string virtualPath = Path.Combine(settings.VirtualFilesystemPrefix, id.ToString("B")); // Act var actual = target.GetFile(virtualPath, null); // Assert Assert.NotNull(actual); Assert.IsAssignableFrom <Blob>(actual); Assert.Equal <string>(virtualPath, actual.VirtualPath); }
public void GetFileValidFastMode() { // Arrange var rs = new ResizerSection(ConfigXml); var c = new Config(rs); IVirtualImageProvider target = (IVirtualImageProvider)c.Plugins.Get <AzureReader2Plugin>(); ((AzureReader2Plugin)target).LazyExistenceCheck = true; ((AzureReader2Plugin)target).MetadataCache = model; string virtualPath = Path.Combine(PathPrefix, Filename); // Act var actual = target.GetFile(virtualPath, null); // Assert Assert.NotNull(actual); Assert.IsAssignableFrom <Blob>(actual); }
public void GetFileValidNotFastModeStorageException() { // Arrange var rs = new ResizerSection("<resizer><plugins><add name=\"AzureReader2\" prefix=\"/azure/\" connectionString=\"DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==\" endpoint=\"http://127.0.0.1:10000/devstoreaccount1/\" /></plugins></resizer>"); var c = new Config(rs); IVirtualImageProvider target = (IVirtualImageProvider)c.Plugins.Get <AzureReader2Plugin>(); ((AzureReader2Plugin)target).LazyExistenceCheck = false; ((AzureReader2Plugin)target).MetadataCache = model; string virtualPath = Path.Combine(PathPrefix, Filename); // Act var actual = Assert.Throws <StorageException>(() => target.GetFile(virtualPath, null)); // Assert Assert.NotNull(actual); Assert.IsType <StorageException>(actual); }
public static MemCachedFile GetCachedVirtualFile(string path, IVirtualImageProvider provider, NameValueCollection queryString) { string key = provider != null ? getVirtualCacheKey(path,queryString) : getCacheKey(path); MemCachedFile file = null; if (HttpContext.Current != null) { if (HttpContext.Current.Cache[key] != null) { file = (MemCachedFile)HttpContext.Current.Cache[key]; } else { IVirtualFile vfile = provider != null ? provider.GetFile(path, queryString) : null; if (vfile == null) throw new FileNotFoundException("The specified virtual file could not be found: \"" + path + "\" Associated querystring: \"" + PathUtils.BuildQueryString(queryString) + "\"."); file = vfile != null ? new MemCachedFile(vfile) : new MemCachedFile(path); if (provider == null) HttpContext.Current.Cache.Insert(key, file, new CacheDependency(path)); else HttpContext.Current.Cache.Insert(key, file); } } else { //Has no invalidation, but this is only used for benchmarks. Only runs when there is no http session. lock(_fallbackCache){ if (_fallbackCache.ContainsKey(key)) file = _fallbackCache[key]; else { file = provider != null ? new MemCachedFile(provider.GetFile(path, queryString)) : new MemCachedFile(path); _fallbackCache[key] = file; } } } return file; }