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]));
        }
Example #2
0
 // 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));
        }
Example #4
0
 /// <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();
 }
Example #5
0
        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"));
            }
        }
Example #6
0
 /// <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;
     }
 }