亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? testabstractcache.java

?? oscache-2.4.1-full
?? JAVA
字號:
/*
 * Copyright (c) 2002-2003 by OpenSymphony
 * All rights reserved.
 */
package com.opensymphony.oscache.base.algorithm;

import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

import com.opensymphony.oscache.base.CacheEntry;
import com.opensymphony.oscache.base.Config;
import com.opensymphony.oscache.base.persistence.CachePersistenceException;
import com.opensymphony.oscache.base.persistence.PersistenceListener;

import junit.framework.TestCase;

/**
 * Test class for the AbstractCache class. It tests all public methods of
 * the AbstractCache and assert the results. It is design to run under JUnit.
 *
 * $Id: TestAbstractCache.java 425 2007-03-18 09:45:03Z larst $
 * @version        $Revision: 425 $
 * @author <a href="mailto:abergevin@pyxis-tech.com">Alain Bergevin</a>
 */
public abstract class TestAbstractCache extends TestCase {
    /**
     * Invalid cache capacity
     */
    protected final int INVALID_MAX_ENTRIES = 0;

    /**
     * Cache capacity
     */
    protected final int MAX_ENTRIES = 3;

    /**
     * Constructor
     * <p>
     * @param str The test name (required by JUnit)
     */
    protected TestAbstractCache(String str) {
        super(str);
    }

    /**
     * Test the method that verify if the cache contains a specific key
     */
    public abstract void testContainsKey();

    /**
     * Test the get from the cache
     */
    public abstract void testGet();

    /**
     * Test the capacity setting
     */
    public void testGetSetMaxEntries() {
        getCache().setMaxEntries(MAX_ENTRIES);
        assertEquals(MAX_ENTRIES, getCache().getMaxEntries());

        // Specify an invalid capacity
        try {
            getCache().setMaxEntries(INVALID_MAX_ENTRIES);
            fail("Cache capacity set with an invalid argument");
        } catch (Exception e) {
            // This is what we expect
        }
    }

    /**
     * Test the setting of the memory cache
     */
    public void testGetSetMemoryCache() {
        getCache().setMemoryCaching(true);
        assertTrue(getCache().isMemoryCaching());
    }

    /**
     * Test the iterator retrieval
     */
    public abstract void testIterator();

    /**
     * Test the put into the cache
     */
    public abstract void testPut();

    /**
     * Test the remove from the cache
     */
    public abstract void testRemove();

    /**
     * Test the specific details about the cache algorithm
     */
    public abstract void testRemoveItem();

    /**
     * Test the PersistenceListener setter. Since the persistance listener is
     * an interface, just call the setter with null
     */
    public void testSetPersistenceListener() {
        getCache().setPersistenceListener(null);
    }

    // Abstract method that returns an instance of an admin
    protected abstract AbstractConcurrentReadCache getCache();

    /**
     * Test that groups are correctly updated on puts and removes
     * See CACHE-188 and maybe CACHE-244
     */
    public void testGroups() {
      String KEY = "testkey";
      String KEY2 = "testkey2";
      String GROUP_NAME = "group1";
      CacheEntry entry = new CacheEntry(KEY, null);
      entry.setContent("testvalue");
      entry.setGroups(new String[] {GROUP_NAME});
      getCache().put(KEY, entry);

      Map m = getCache().getGroupsForReading();
      assertNotNull("group must exist", m.get(GROUP_NAME));
      try {
        Set group = (Set)m.get(GROUP_NAME);
        assertEquals(1, group.size());
        Object keyFromGroup = group.iterator().next();
        assertEquals(KEY, keyFromGroup);
      } catch (ClassCastException e) {
        fail("group should have been a java.util.Set but is a " +
            m.get(GROUP_NAME).getClass().getName());
      }

      assertNotNull(getCache().remove(KEY));

      m = getCache().getGroupsForReading();
      assertNull("group should have been deleted (see CACHE-188)", m.get(GROUP_NAME));
      getCache().clear();

      // Test if persistence options are correctly considered for groups
      try {
        PersistenceListener listener = new MockPersistenceListener();
        getCache().setPersistenceListener(listener);
        getCache().setOverflowPersistence(false);
        getCache().put(KEY, entry);
        assertTrue(listener.isStored(KEY));
        Set group = listener.retrieveGroup(GROUP_NAME);
        assertNotNull(group);
        assertTrue(group.contains(KEY));

        getCache().remove(KEY);
        assertFalse(listener.isStored(KEY));
        getCache().clear();

        // test overflow persistence
        getCache().setOverflowPersistence(true);
        getCache().setMaxEntries(1);
        getCache().put(KEY, entry);
        assertFalse(listener.isStored(KEY));
        // is it correct that the group is persisted, even when we use overflow only?
        // assertFalse(listener.isGroupStored(GROUP_NAME));

        CacheEntry entry2 = new CacheEntry(KEY2);
        entry2.setContent("testvalue");
        entry2.setGroups(new String[] {GROUP_NAME});
        getCache().put(KEY2, entry2);
        // oldest must have been persisted to disk:
        assertTrue(listener.isStored(KEY));
        assertFalse(listener.isStored(KEY2));
        assertNotNull(getCache().get(KEY2));
      } catch (CachePersistenceException e) {
        e.printStackTrace();
        fail("Excpetion was thrown");
      }
    }
    
    public void testMisc() {
        getCache().clear();
        assertTrue(getCache().capacity() > 0);

        final String KEY = "testkeymisc";
        final String CONTENT = "testkeymisc";

        CacheEntry entry = new CacheEntry(KEY, null);
        entry.setContent(CONTENT);
        
        if (getCache().contains(entry) == false) {
            getCache().put(KEY, entry);
        }
        assertTrue(getCache().contains(entry));
        
        CacheEntry entry2 = new CacheEntry(KEY+"2", null);
        entry.setContent(CONTENT+"2");
        getCache().put(entry2.getKey(), entry2);

        Enumeration enumeration = getCache().elements();
        assertTrue(enumeration.hasMoreElements());
        while (enumeration.hasMoreElements()) enumeration.nextElement();
    }


    private static class MockPersistenceListener implements PersistenceListener {
      
      private Map entries = new HashMap();
      private Map groups = new HashMap();

      public void clear() throws CachePersistenceException {
        entries.clear();
        groups.clear();
      }

      public PersistenceListener configure(Config config) {
        return this;
      }

      public boolean isGroupStored(String groupName) throws CachePersistenceException {
        return groups.containsKey(groupName);
      }

      public boolean isStored(String key) throws CachePersistenceException {
        return entries.containsKey(key);
      }

      public void remove(String key) throws CachePersistenceException {
        entries.remove(key);
      }

      public void removeGroup(String groupName) throws CachePersistenceException {
        groups.remove(groupName);
      }

      public Object retrieve(String key) throws CachePersistenceException {
        return entries.get(key);
      }

      public Set retrieveGroup(String groupName) throws CachePersistenceException {
        return (Set)groups.get(groupName);
      }

      public void store(String key, Object obj) throws CachePersistenceException {
        entries.put(key, obj);
      }

      public void storeGroup(String groupName, Set group) throws CachePersistenceException {
        groups.put(groupName, group);
      }
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产毛片精品国产一区二区三区| 91精品国产91热久久久做人人 | 中文字幕一区二区在线播放| 亚洲美女屁股眼交| 蜜乳av一区二区| 欧美亚洲免费在线一区| 26uuu精品一区二区在线观看| 一区二区成人在线观看| 高清国产一区二区| 日韩欧美一区中文| 亚洲成人免费观看| 91日韩在线专区| 中文欧美字幕免费| 国产伦精品一区二区三区视频青涩 | 五月婷婷综合在线| 色综合天天性综合| 中文字幕国产精品一区二区| 免费久久精品视频| 欧美二区乱c少妇| 亚洲桃色在线一区| 成人动漫视频在线| 中国av一区二区三区| 精品一区二区三区视频在线观看| 欧美日韩精品一区二区三区蜜桃| 亚洲精品v日韩精品| 不卡一区二区中文字幕| 中文字幕免费观看一区| 国产精品全国免费观看高清| 久久亚洲一级片| 蜜桃传媒麻豆第一区在线观看| 91丨九色丨蝌蚪丨老版| 国产精品久久久久久久久久免费看| 久久99精品久久久久婷婷| 91精品国产免费| 日本vs亚洲vs韩国一区三区二区 | 中文字幕电影一区| 国产一区二区导航在线播放| 精品精品国产高清一毛片一天堂| 青青草国产成人av片免费| 欧美一区二区福利在线| 久久超级碰视频| www久久精品| 国产电影一区二区三区| 国产精品三级av| thepron国产精品| 亚洲日本护士毛茸茸| 在线亚洲+欧美+日本专区| 亚洲影视在线播放| 日韩一区二区电影| 国产激情偷乱视频一区二区三区| 国产精品无遮挡| 91麻豆.com| 日本亚洲视频在线| 久久久国产一区二区三区四区小说| 国产电影一区在线| 亚洲最新视频在线观看| 欧美乱妇23p| 国产美女视频一区| 亚洲乱码国产乱码精品精的特点| 欧美剧情片在线观看| 精品无人区卡一卡二卡三乱码免费卡| 国产蜜臀av在线一区二区三区| 91免费版pro下载短视频| 日韩国产精品久久| 亚洲国产精品国自产拍av| 欧美在线免费观看亚洲| 蜜臀av性久久久久蜜臀aⅴ流畅| 欧美高清在线一区二区| 欧美日韩免费一区二区三区| 久久精品国产精品青草| 国产精品盗摄一区二区三区| 欧美日本免费一区二区三区| 国产高清一区日本| 亚洲不卡在线观看| 国产精品高潮久久久久无| 欧美一区中文字幕| 91在线观看视频| 久热成人在线视频| 亚洲麻豆国产自偷在线| 欧美成人精精品一区二区频| xnxx国产精品| 国产精品66部| 亚洲成a人片在线不卡一二三区| 国产三级精品视频| 欧美一级久久久久久久大片| 99国产精品99久久久久久| 蜜臀av国产精品久久久久| 亚洲一区二区视频在线观看| 久久久影视传媒| 欧美精品久久99| 在线视频国内自拍亚洲视频| 丰满放荡岳乱妇91ww| 老司机精品视频一区二区三区| 一个色综合网站| 中文字幕在线观看一区| 欧美精品一区二区久久婷婷| 欧美精品在线一区二区三区| 一本到不卡精品视频在线观看| 国产乱淫av一区二区三区| 日韩av一级电影| 亚洲成人你懂的| 亚洲欧美偷拍卡通变态| 亚洲国产成人自拍| 久久久久久久精| 精品理论电影在线观看| 91精品国产入口| 51午夜精品国产| 欧美无砖专区一中文字| 色女孩综合影院| 91在线观看高清| 91在线国产观看| 91免费看`日韩一区二区| 99re这里只有精品6| jlzzjlzz国产精品久久| 成人涩涩免费视频| 成人国产在线观看| eeuss鲁片一区二区三区在线观看| 国产成人欧美日韩在线电影| 国产在线精品一区二区夜色| 精品一区二区三区影院在线午夜| 精品一区二区在线观看| 奇米影视7777精品一区二区| 日韩电影一区二区三区| 美日韩黄色大片| 韩国三级在线一区| 成人一级片网址| 91玉足脚交白嫩脚丫在线播放| 99这里只有久久精品视频| 91麻豆6部合集magnet| 欧美亚洲国产一区二区三区va| 欧美亚洲图片小说| 亚洲五码中文字幕| 久久免费视频一区| 久久久久久久性| 国产精品久久毛片av大全日韩| 中国色在线观看另类| 最新国产成人在线观看| 亚洲国产精品久久不卡毛片| 日韩精品午夜视频| 国产一区二区三区四区五区入口| 岛国精品一区二区| 欧洲色大大久久| 日韩视频免费观看高清完整版在线观看 | 欧美成人欧美edvon| 国产亚洲美州欧州综合国| 亚洲人成在线观看一区二区| 亚洲高清中文字幕| 国产精品综合一区二区| 99久久精品国产精品久久| 欧美精品一二三区| 欧美国产激情二区三区| 亚洲第一电影网| 国产精品一区二区免费不卡| 91色九色蝌蚪| 精品美女一区二区| 一区二区三区在线观看网站| 美国十次综合导航| 不卡一二三区首页| 欧美一区二区三区婷婷月色| 国产精品素人视频| 奇米影视一区二区三区小说| 97久久精品人人爽人人爽蜜臀| 欧美精品色综合| 亚洲男人的天堂在线观看| 久久精品国产亚洲高清剧情介绍| 欧美日韩夫妻久久| 国产精品美女久久久久aⅴ| 亚洲一二三四久久| 国产成人av福利| 欧美一二三四在线| 亚洲午夜精品在线| www.色精品| 久久久精品天堂| 免费久久99精品国产| 一本色道综合亚洲| 国产视频一区在线观看| 蜜臀久久久99精品久久久久久| 99久久伊人精品| 久久久综合激的五月天| 日本网站在线观看一区二区三区| 色视频一区二区| 亚洲色图欧美在线| 粉嫩蜜臀av国产精品网站| 精品精品国产高清一毛片一天堂| 调教+趴+乳夹+国产+精品| 色www精品视频在线观看| 亚洲国产高清不卡| 韩国av一区二区三区| 精品久久人人做人人爽| 天堂久久一区二区三区| 欧美日韩高清不卡| 亚洲电影视频在线| 91极品视觉盛宴| 亚洲女子a中天字幕| 成人av在线播放网站| 中文幕一区二区三区久久蜜桃| 国产馆精品极品| 国产精品情趣视频| 成人动漫一区二区在线| 国产精品久久久久影院|