1d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru// Copyright 2011 Google Inc. All Rights Reserved.
2d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru
3d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Querupackage com.android.volley.utils;
4d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru
5d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queruimport com.android.volley.Cache;
6d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru
7d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queruimport java.util.Random;
8d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru
9d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Querupublic class CacheTestUtils {
10d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru
11d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru    /**
12d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru     * Makes a random cache entry.
13d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru     * @param data Data to use, or null to use random data
14d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru     * @param isExpired Whether the TTLs should be set such that this entry is expired
15d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru     * @param needsRefresh Whether the TTLs should be set such that this entry needs refresh
16d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru     */
17d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru    public static Cache.Entry makeRandomCacheEntry(
18d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru            byte[] data, boolean isExpired, boolean needsRefresh) {
19d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru        Random random = new Random();
20d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru        Cache.Entry entry = new Cache.Entry();
21d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru        if (data != null) {
22d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru            entry.data = data;
23d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru        } else {
24d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru            entry.data = new byte[random.nextInt(1024)];
25d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru        }
26d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru        entry.etag = String.valueOf(random.nextLong());
27d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru        entry.serverDate = random.nextLong();
28d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru        entry.ttl = isExpired ? 0 : Long.MAX_VALUE;
29d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru        entry.softTtl = needsRefresh ? 0 : Long.MAX_VALUE;
30d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru        return entry;
31d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru    }
32d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru
33d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru    /**
34d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru     * Like {@link #makeRandomCacheEntry(byte[], boolean, boolean)} but
35d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru     * defaults to an unexpired entry.
36d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru     */
37d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru    public static Cache.Entry makeRandomCacheEntry(byte[] data) {
38d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru        return makeRandomCacheEntry(data, false, false);
39d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru    }
40d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru}
41