예제 #1
0
        public void RemembersAbsentXmlAfterFirstRead()
        {
            var mem = new CachedByteContents(new RamContents(), 1024);

            mem.Xml("a/b/c.xml", () => new XDocument(new XElement("elem", "content")));

            Assert.Equal(
                "<elem>content</elem>",
                mem.Xml("a/b/c.xml", () => new XDocument()).ToString()
                );
        }
예제 #2
0
        public void DoesNotCacheBytes()
        {
            var mem    = new ConcurrentDictionary <string, byte[]>();
            var cached = new CachedByteContents(new RamContents(mem), 1024);

            cached.Bytes("a/b/c.dat", () => new byte[0]).ToString();

            byte[] unused;
            mem.TryRemove("a/b/c.dat", out unused);

            Assert.Throws <ApplicationException>(() =>
                                                 cached.Xml("a/b/c.dat", () => throw new ApplicationException()).ToString()
                                                 );
        }