Add tests for iterator
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/8733b7c9 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/8733b7c9 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/8733b7c9 Branch: refs/heads/sprint-1 Commit: 8733b7c98cdf238151f92ee387f6c7dc6ce27af5 Parents: 0054c0d Author: ivasilinets <ivasilin...@gridgain.com> Authored: Wed Jan 14 13:11:30 2015 +0400 Committer: ivasilinets <ivasilin...@gridgain.com> Committed: Wed Jan 14 13:11:30 2015 +0400 ---------------------------------------------------------------------- .../processors/cache/IgniteCacheProxy.java | 7 +-- .../cache/GridCacheAbstractFullApiSelfTest.java | 46 ++++++++++++++++++++ 2 files changed, 48 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8733b7c9/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheProxy.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheProxy.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheProxy.java index 67797cf..333cb33 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheProxy.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheProxy.java @@ -946,10 +946,8 @@ public class IgniteCacheProxy<K, V> extends IgniteAsyncSupportAdapter implements curIter = fut.next(); return curIter != null; } catch (IgniteCheckedException e) { - e.printStackTrace(); - //TODO: ???? + throw cacheException(e); } - return false; } /** {@inheritDoc} */ @@ -977,8 +975,7 @@ public class IgniteCacheProxy<K, V> extends IgniteAsyncSupportAdapter implements try { delegate.remove(curIter.getKey(), curIter.getValue()); } catch (IgniteCheckedException e) { - //TODO: ??? - e.printStackTrace(); + throw cacheException(e); } } } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8733b7c9/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractFullApiSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractFullApiSelfTest.java b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractFullApiSelfTest.java index 54397cc..504a435 100644 --- a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractFullApiSelfTest.java +++ b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractFullApiSelfTest.java @@ -24,6 +24,7 @@ import org.gridgain.grid.util.typedef.internal.*; import org.gridgain.testframework.*; import org.jetbrains.annotations.*; +import javax.cache.Cache; import javax.cache.expiry.*; import javax.cache.processor.*; import java.util.*; @@ -5240,4 +5241,49 @@ public abstract class GridCacheAbstractFullApiSelfTest extends GridCacheAbstract throw new IgniteCheckedException("Unable to find " + cnt + " keys as primary for cache."); } + + /** + * @throws Exception If failed. + */ + public void testIgniteCacheIterator() throws Exception { + IgniteCache<String, Integer> cache = jcache(0); + for (int i = 0; i < gridCount(); ++i) { + cache.put(Integer.toString(i), i); + } + + checkIteratorCacheSize(cache, gridCount()); + + removeCacheIterator(cache); + + checkIteratorCacheSize(cache, gridCount() - 1); + } + + /** + * Remove one element from the cache. Throws exception if cache is empty. + * @param cache Cache. + * @throws Exception + */ + private void removeCacheIterator(IgniteCache<String, Integer> cache) throws Exception { + Iterator<Cache.Entry<String, Integer>> iter = cache.iterator(); + if (iter.hasNext()) { + iter.remove(); + } else { + assert false; + } + } + + /** + * @param cache Cache. + * @param size Expected value of cache's size. + * @throws Exception if iteration size is not equal to expected value + */ + private void checkIteratorCacheSize(IgniteCache<String, Integer> cache, int size) throws Exception { + Iterator<Cache.Entry<String, Integer>> iter = cache.iterator(); + int cnt = 0; + while (iter.hasNext()) { + iter.next(); + cnt++; + } + assert cnt == size; + } }