public virtual void SimpleImageCacheTest02() { String[] imgSrc = new String[] { "src0.jpg", "src1.jpg", "src2.jpg", "src3.jpg", "src4.jpg", "src5.jpg" }; SimpleImageCacheTest.ImageXObjectStub[] imgData = new SimpleImageCacheTest.ImageXObjectStub[] { new SimpleImageCacheTest.ImageXObjectStub (), new SimpleImageCacheTest.ImageXObjectStub(), new SimpleImageCacheTest.ImageXObjectStub(), new SimpleImageCacheTest.ImageXObjectStub (), new SimpleImageCacheTest.ImageXObjectStub(), new SimpleImageCacheTest.ImageXObjectStub() }; SimpleImageCache cache = new SimpleImageCache(4); // imgs frequency is increased on getImage call cache.GetImage(imgSrc[1]); cache.GetImage(imgSrc[2]); cache.PutImage(imgSrc[0], imgData[0]); cache.PutImage(imgSrc[1], imgData[1]); cache.PutImage(imgSrc[2], imgData[2]); NUnit.Framework.Assert.AreEqual(3, cache.Size()); cache.GetImage(imgSrc[0]); cache.GetImage(imgSrc[1]); cache.GetImage(imgSrc[2]); cache.PutImage(imgSrc[3], imgData[3]); NUnit.Framework.Assert.AreEqual(4, cache.Size()); cache.PutImage(imgSrc[4], imgData[4]); NUnit.Framework.Assert.AreEqual(4, cache.Size()); NUnit.Framework.Assert.IsNull(cache.GetImage(imgSrc[3])); NUnit.Framework.Assert.AreEqual(imgData[0], cache.GetImage(imgSrc[0])); NUnit.Framework.Assert.AreEqual(imgData[1], cache.GetImage(imgSrc[1])); NUnit.Framework.Assert.AreEqual(imgData[2], cache.GetImage(imgSrc[2])); NUnit.Framework.Assert.AreEqual(imgData[4], cache.GetImage(imgSrc[4])); cache.GetImage(imgSrc[0]); cache.GetImage(imgSrc[1]); cache.GetImage(imgSrc[2]); cache.GetImage(imgSrc[4]); cache.PutImage(imgSrc[5], imgData[5]); NUnit.Framework.Assert.AreEqual(4, cache.Size()); NUnit.Framework.Assert.IsNull(cache.GetImage(imgSrc[4])); NUnit.Framework.Assert.AreEqual(imgData[0], cache.GetImage(imgSrc[0])); NUnit.Framework.Assert.AreEqual(imgData[1], cache.GetImage(imgSrc[1])); NUnit.Framework.Assert.AreEqual(imgData[2], cache.GetImage(imgSrc[2])); NUnit.Framework.Assert.AreEqual(imgData[5], cache.GetImage(imgSrc[5])); cache.PutImage(imgSrc[3], imgData[3]); NUnit.Framework.Assert.AreEqual(4, cache.Size()); NUnit.Framework.Assert.AreEqual(imgData[3], cache.GetImage(imgSrc[3])); NUnit.Framework.Assert.IsNull(cache.GetImage(imgSrc[5])); cache.PutImage(imgSrc[5], imgData[5]); NUnit.Framework.Assert.AreEqual(4, cache.Size()); NUnit.Framework.Assert.AreEqual(imgData[5], cache.GetImage(imgSrc[5])); NUnit.Framework.Assert.IsNull(cache.GetImage(imgSrc[3])); cache.PutImage(imgSrc[3], imgData[3]); NUnit.Framework.Assert.AreEqual(4, cache.Size()); NUnit.Framework.Assert.AreEqual(imgData[3], cache.GetImage(imgSrc[3])); NUnit.Framework.Assert.IsNull(cache.GetImage(imgSrc[5])); cache.PutImage(imgSrc[5], imgData[5]); NUnit.Framework.Assert.AreEqual(4, cache.Size()); NUnit.Framework.Assert.AreEqual(imgData[5], cache.GetImage(imgSrc[5])); NUnit.Framework.Assert.AreEqual(imgData[3], cache.GetImage(imgSrc[3])); NUnit.Framework.Assert.AreEqual(imgData[1], cache.GetImage(imgSrc[1])); NUnit.Framework.Assert.AreEqual(imgData[2], cache.GetImage(imgSrc[2])); NUnit.Framework.Assert.IsNull(cache.GetImage(imgSrc[0])); NUnit.Framework.Assert.IsNull(cache.GetImage(imgSrc[4])); }
// TODO provide a way to configure capacity, manually reset or disable the image cache? /// <summary> /// Creates /// <see cref="ResourceResolver"/> /// instance. /// </summary> /// <remarks> /// Creates /// <see cref="ResourceResolver"/> /// instance. If /// <paramref name="baseUri"/> /// is a string that represents an absolute URI with any schema /// except "file" - resources url values will be resolved exactly as "new URL(baseUrl, uriString)". Otherwise base URI /// will be handled as path in local file system. /// <para /> /// If empty string or relative URI string is passed as base URI, then it will be resolved against current working /// directory of this application instance. /// </remarks> /// <param name="baseUri">base URI against which all relative resource URIs will be resolved.</param> public ResourceResolver(String baseUri) { if (baseUri == null) { baseUri = ""; } this.uriResolver = new UriResolver(baseUri); this.imageCache = new SimpleImageCache(); }
public virtual void SimpleImageCacheTest01() { SimpleImageCache cache = new SimpleImageCache(); String imgSrc = "src1.jpg"; SimpleImageCacheTest.ImageXObjectStub imageData = new SimpleImageCacheTest.ImageXObjectStub(); NUnit.Framework.Assert.AreEqual(0, cache.Size()); cache.PutImage(imgSrc, imageData); NUnit.Framework.Assert.AreEqual(1, cache.Size()); NUnit.Framework.Assert.AreEqual(imageData, cache.GetImage(imgSrc)); }
/// <summary> /// Creates /// <see cref="ResourceResolver"/> /// instance. If /// <paramref name="baseUri"/> /// is a string that represents an absolute URI with any schema /// except "file" - resources url values will be resolved exactly as "new URL(baseUrl, uriString)". Otherwise base URI /// will be handled as path in local file system. /// <p> /// If empty string or relative URI string is passed as base URI, then it will be resolved against current working /// directory of this application instance. /// </p> /// </summary> /// <param name="baseUri">base URI against which all relative resource URIs will be resolved.</param> public ResourceResolver(String baseUri) { // TODO handle <base href=".."> tag? // TODO provide a way to configure capacity, manually reset or disable the image cache? if (baseUri == null) { baseUri = ""; } this.uriResolver = new UriResolver(baseUri); this.imageCache = new SimpleImageCache(); }
public virtual void OrderRemovingFromCacheTest() { SimpleImageCache cache = new SimpleImageCache(10); for (int j = 0; j <= 9; j++) { cache.PutImage("src" + j + ".jpg", new SimpleImageCacheTest.ImageXObjectStub()); } for (int i = 0; i <= 9; i++) { cache.PutImage("src" + i + 10 + ".jpg", new SimpleImageCacheTest.ImageXObjectStub()); NUnit.Framework.Assert.IsNull(cache.GetImage("src" + i + ".jpg")); } }
/// <summary> /// Creates a new /// <see cref="ResourceResolver"/> /// instance. /// </summary> /// <remarks> /// Creates a new /// <see cref="ResourceResolver"/> /// instance. /// If /// <paramref name="baseUri"/> /// is a string that represents an absolute URI with any schema except "file" - resources /// url values will be resolved exactly as "new URL(baseUrl, uriString)". Otherwise base URI will be handled /// as path in local file system. /// <para /> /// If empty string or relative URI string is passed as base URI, then it will be resolved against current /// working directory of this application instance. /// </remarks> /// <param name="baseUri">base URI against which all relative resource URIs will be resolved</param> /// <param name="retriever">the resource retriever with the help of which data from resources will be retrieved /// </param> public ResourceResolver(String baseUri, IResourceRetriever retriever) { if (baseUri == null) { baseUri = ""; } this.uriResolver = new UriResolver(baseUri); this.imageCache = new SimpleImageCache(); if (retriever == null) { this.retriever = new DefaultResourceRetriever(); } else { this.retriever = retriever; } }