/// <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); }
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); }