13713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick// Copyright 2011 Google Inc. All Rights Reserved.
23713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick
33713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrickpackage com.android.volley.utils;
43713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick
53713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrickimport com.android.volley.Cache;
63713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick
73713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrickimport java.util.Random;
83713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick
93713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrickpublic class CacheTestUtils {
103713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick
113713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick    /**
123713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick     * Makes a random cache entry.
133713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick     * @param data Data to use, or null to use random data
143713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick     * @param isExpired Whether the TTLs should be set such that this entry is expired
153713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick     * @param needsRefresh Whether the TTLs should be set such that this entry needs refresh
163713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick     */
173713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick    public static Cache.Entry makeRandomCacheEntry(
183713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick            byte[] data, boolean isExpired, boolean needsRefresh) {
193713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick        Random random = new Random();
203713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick        Cache.Entry entry = new Cache.Entry();
213713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick        if (data != null) {
223713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick            entry.data = data;
233713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick        } else {
243713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick            entry.data = new byte[random.nextInt(1024)];
253713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick        }
263713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick        entry.etag = String.valueOf(random.nextLong());
273713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick        entry.serverDate = random.nextLong();
283713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick        entry.ttl = isExpired ? 0 : Long.MAX_VALUE;
293713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick        entry.softTtl = needsRefresh ? 0 : Long.MAX_VALUE;
303713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick        return entry;
313713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick    }
323713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick
333713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick    /**
343713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick     * Like {@link #makeRandomCacheEntry(byte[], boolean, boolean)} but
353713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick     * defaults to an unexpired entry.
363713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick     */
373713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick    public static Cache.Entry makeRandomCacheEntry(byte[] data) {
383713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick        return makeRandomCacheEntry(data, false, false);
393713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick    }
403713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick}
41