/// <summary>
        /// 在CEF IO线程上调用以选择性地过滤资源响应内容
        /// </summary>
        /// <param name="chromiumWebBrowser"></param>
        /// <param name="browser"></param>
        /// <param name="frame"></param>
        /// <param name="request"></param>
        /// <param name="response"></param>
        /// <returns></returns>
        public IResponseFilter GetResourceResponseFilter(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IRequest request, IResponse response)
        {
            var stream = ResourceCacheManager.GetResource(request.Identifier);

            if (stream != null)
            {
                return(new CustomResponseFilter(stream));
            }
            return(null);
        }
        public void Get_ByNameOnEmptyCache_ReturnsNull()
        {
            // assemble
            ResourceCacheManager sut = new ResourceCacheManager();

            // act
            Pokemon retrievedPokemon = sut.Get <Pokemon>("pikachu");

            // assert
            Assert.Null(retrievedPokemon);
        }
        public void Get_ByIdOnEmptyCache_ReturnsNull()
        {
            // assemble
            ResourceCacheManager sut = new ResourceCacheManager();

            // act
            Pokedex retrievedPokedex = sut.Get <Pokedex>(1);

            // assert
            Assert.Null(retrievedPokedex);
        }
        public void StoreThrowsIfTypeNotSupported()
        {
            // assemble
            ResourceCacheManager sut  = new ResourceCacheManager();
            TestClass            test = new TestClass {
                Id = 1
            };

            // assert
            Assert.Throws <NotSupportedException>(() =>
            {
                // act
                sut.Store(test);
            });
        }
        public void Get_StoredName_ReturnsResource()
        {
            // assemble
            ResourceCacheManager sut = new ResourceCacheManager();
            Berry berry = new Berry {
                Name = "cheri", Id = 1
            };

            sut.Store(berry);

            // act
            Berry retrievedBerry = sut.Get <Berry>("cheri");

            // assert
            Assert.Same(berry, retrievedBerry);
        }
        public void Get_NonStoredId_ReturnsNull()
        {
            // assemble
            ResourceCacheManager sut = new ResourceCacheManager();
            Berry berry = new Berry {
                Name = "cheri", Id = 1
            };

            sut.Store(berry);

            // act
            Berry retrievedBerry = sut.Get <Berry>(2);

            // assert
            Assert.Null(retrievedBerry);
        }
        public void Get_StoredNameWithDifferentCasing_ReturnsResource()
        {
            // assemble
            ResourceCacheManager sut = new ResourceCacheManager();
            Berry berry = new Berry {
                Name = "CHERI"
            };

            sut.Store(berry);

            // act
            Berry retrievedBerry = sut.Get <Berry>("cheri");

            // assert
            Assert.Same(berry, retrievedBerry);
        }
        public void CacheIsClearedForSpecificType()
        {
            // assemble
            ResourceCacheManager sut = new ResourceCacheManager();
            Berry berry = new Berry {
                Name = "cheri", Id = 1
            };
            Pokedex pokedex = new Pokedex {
                Name = "cheri", Id = 1
            };

            sut.Store(berry);
            sut.Store(pokedex);

            // act
            sut.Clear <Berry>();

            // assert
            Berry   retrievedBerry   = sut.Get <Berry>(berry.Id);
            Pokedex retrievedPokedex = sut.Get <Pokedex>(pokedex.Id);

            Assert.Null(retrievedBerry);
            Assert.NotNull(retrievedPokedex);
        }
Example #9
0
        public void AllCacheIsCleared()
        {
            // assemble
            ResourceCacheManager sut = new ResourceCacheManager();
            Berry berry = new Berry {
                Name = "cheri", Id = 1
            };
            Pokedex pokedex = new Pokedex {
                Name = "dex", Id = 1
            };

            sut.Store(berry);
            sut.Store(pokedex);

            // act
            sut.ClearAll();

            // assert
            Berry   retrievedBerry   = sut.Get <Berry>(1);
            Pokedex retrievedPokedex = sut.Get <Pokedex>(1);

            Assert.Null(retrievedBerry);
            Assert.Null(retrievedPokedex);
        }