ignite-1811

Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/0823cd63
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/0823cd63
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/0823cd63

Branch: refs/heads/ignite-1811
Commit: 0823cd6342d0241ddfaebc00e88d36aad6a6358c
Parents: 969faef
Author: sboikov <[email protected]>
Authored: Thu Jan 14 11:56:45 2016 +0300
Committer: sboikov <[email protected]>
Committed: Fri Jan 15 11:14:35 2016 +0300

----------------------------------------------------------------------
 .../internal/TestRecordingCommunicationSpi.java |  77 +++++++++++++
 .../cache/IgniteCacheNearLockValueSelfTest.java |  62 ++--------
 .../IgniteCacheReadFromBackupTest.java          | 114 +++++++++++++++++++
 .../IgniteCacheSingleGetMessageTest.java        |  68 ++---------
 .../GridCacheDhtPreloadMessageCountTest.java    |  62 ++--------
 .../testsuites/IgniteCacheTestSuite4.java       |   2 +
 6 files changed, 224 insertions(+), 161 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/0823cd63/modules/core/src/test/java/org/apache/ignite/internal/TestRecordingCommunicationSpi.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/TestRecordingCommunicationSpi.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/TestRecordingCommunicationSpi.java
new file mode 100644
index 0000000..bf84387
--- /dev/null
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/TestRecordingCommunicationSpi.java
@@ -0,0 +1,77 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal;
+
+import java.util.ArrayList;
+import java.util.List;
+import org.apache.ignite.IgniteException;
+import org.apache.ignite.cluster.ClusterNode;
+import org.apache.ignite.internal.managers.communication.GridIoMessage;
+import org.apache.ignite.lang.IgniteInClosure;
+import org.apache.ignite.plugin.extensions.communication.Message;
+import org.apache.ignite.spi.IgniteSpiException;
+import org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi;
+import org.jetbrains.annotations.Nullable;
+
+/**
+ *
+ */
+public class TestRecordingCommunicationSpi extends TcpCommunicationSpi {
+    /** */
+    private Class<?> recordCls;
+
+    /** */
+    private List<Object> recordedMsgs = new ArrayList<>();
+
+    /** {@inheritDoc} */
+    @Override public void sendMessage(ClusterNode node, Message msg, 
IgniteInClosure<IgniteException> ackC)
+        throws IgniteSpiException {
+        if (msg instanceof GridIoMessage) {
+            Object msg0 = ((GridIoMessage)msg).message();
+
+            synchronized (this) {
+                if (recordCls != null && msg0.getClass().equals(recordCls))
+                    recordedMsgs.add(msg0);
+            }
+        }
+
+        super.sendMessage(node, msg, ackC);
+    }
+
+    /**
+     * @param recordCls Message class to record.
+     */
+    public void record(@Nullable Class<?> recordCls) {
+        synchronized (this) {
+            this.recordCls = recordCls;
+        }
+    }
+
+    /**
+     * @return Recorded messages.
+     */
+    public List<Object> recordedMessages() {
+        synchronized (this) {
+            List<Object> msgs = recordedMsgs;
+
+            recordedMsgs = new ArrayList<>();
+
+            return msgs;
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/ignite/blob/0823cd63/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheNearLockValueSelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheNearLockValueSelfTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheNearLockValueSelfTest.java
index 100acfe..f106fec 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheNearLockValueSelfTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheNearLockValueSelfTest.java
@@ -18,22 +18,15 @@
 package org.apache.ignite.internal.processors.cache;
 
 import java.util.Collection;
-import java.util.concurrent.ConcurrentLinkedDeque;
 import org.apache.ignite.IgniteCache;
-import org.apache.ignite.IgniteException;
 import org.apache.ignite.cache.CacheAtomicityMode;
-import org.apache.ignite.cluster.ClusterNode;
 import org.apache.ignite.configuration.CacheConfiguration;
 import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.configuration.NearCacheConfiguration;
 import org.apache.ignite.internal.IgniteKernal;
-import org.apache.ignite.internal.managers.communication.GridIoMessage;
+import org.apache.ignite.internal.TestRecordingCommunicationSpi;
 import 
org.apache.ignite.internal.processors.cache.distributed.near.GridNearCacheEntry;
 import 
org.apache.ignite.internal.processors.cache.distributed.near.GridNearLockRequest;
-import org.apache.ignite.lang.IgniteInClosure;
-import org.apache.ignite.plugin.extensions.communication.Message;
-import org.apache.ignite.spi.IgniteSpiException;
-import org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi;
 import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
 import org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder;
 import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
@@ -71,7 +64,11 @@ public class IgniteCacheNearLockValueSelfTest extends 
GridCommonAbstractTest {
         if (getTestGridName(0).equals(gridName))
             cfg.setClientMode(true);
 
-        cfg.setCommunicationSpi(new TestCommunicationSpi());
+        TestRecordingCommunicationSpi commSpi = new 
TestRecordingCommunicationSpi();
+
+        commSpi.record(GridNearLockRequest.class);
+
+        cfg.setCommunicationSpi(commSpi);
 
         return cfg;
     }
@@ -88,18 +85,18 @@ public class IgniteCacheNearLockValueSelfTest extends 
GridCommonAbstractTest {
             cache.put("key1", "val1");
 
             for (int i = 0; i < 3; i++) {
-                
((TestCommunicationSpi)ignite(0).configuration().getCommunicationSpi()).clear();
-                
((TestCommunicationSpi)ignite(1).configuration().getCommunicationSpi()).clear();
-
                 try (Transaction tx = 
ignite(0).transactions().txStart(PESSIMISTIC, REPEATABLE_READ)) {
                     cache.get("key1");
 
                     tx.commit();
                 }
 
-                TestCommunicationSpi comm = 
(TestCommunicationSpi)ignite(0).configuration().getCommunicationSpi();
+                TestRecordingCommunicationSpi comm =
+                    
(TestRecordingCommunicationSpi)ignite(0).configuration().getCommunicationSpi();
+
+                Collection<GridNearLockRequest> reqs = 
(Collection)comm.recordedMessages();
 
-                assertEquals(1, comm.requests().size());
+                assertEquals(1, reqs.size());
 
                 GridCacheAdapter<Object, Object> primary = 
((IgniteKernal)grid(1)).internalCache("partitioned");
 
@@ -107,7 +104,7 @@ public class IgniteCacheNearLockValueSelfTest extends 
GridCommonAbstractTest {
 
                 assertNotNull(dhtEntry);
 
-                GridNearLockRequest req = comm.requests().iterator().next();
+                GridNearLockRequest req = reqs.iterator().next();
 
                 assertEquals(dhtEntry.version(), req.dhtVersion(0));
 
@@ -122,39 +119,4 @@ public class IgniteCacheNearLockValueSelfTest extends 
GridCommonAbstractTest {
             }
         }
     }
-
-    /**
-     *
-     */
-    private static class TestCommunicationSpi extends TcpCommunicationSpi {
-        /** */
-        private Collection<GridNearLockRequest> reqs = new 
ConcurrentLinkedDeque<>();
-
-        /** {@inheritDoc} */
-        @Override public void sendMessage(ClusterNode node, Message msg, 
IgniteInClosure<IgniteException> ackC)
-            throws IgniteSpiException {
-            if (msg instanceof GridIoMessage) {
-                GridIoMessage ioMsg = (GridIoMessage)msg;
-
-                if (ioMsg.message() instanceof GridNearLockRequest)
-                    reqs.add((GridNearLockRequest)ioMsg.message());
-            }
-
-            super.sendMessage(node, msg, ackC);
-        }
-
-        /**
-         * @return Collected requests.
-         */
-        public Collection<GridNearLockRequest> requests() {
-            return reqs;
-        }
-
-        /**
-         *
-         */
-        public void clear() {
-            reqs.clear();
-        }
-    }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ignite/blob/0823cd63/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheReadFromBackupTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheReadFromBackupTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheReadFromBackupTest.java
new file mode 100644
index 0000000..ee72909
--- /dev/null
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheReadFromBackupTest.java
@@ -0,0 +1,114 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.cache.distributed;
+
+import org.apache.ignite.Ignite;
+import org.apache.ignite.IgniteCache;
+import org.apache.ignite.cache.CacheMode;
+import org.apache.ignite.configuration.CacheConfiguration;
+import org.apache.ignite.configuration.IgniteConfiguration;
+import org.apache.ignite.internal.TestRecordingCommunicationSpi;
+import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
+import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
+
+/**
+ *
+ */
+public class IgniteCacheReadFromBackupTest extends GridCommonAbstractTest {
+    /** */
+    private static TcpDiscoveryIpFinder ipFinder = new 
TcpDiscoveryVmIpFinder(true);
+
+    /** */
+    private static final int NODES = 4;
+
+    /** {@inheritDoc} */
+    @Override protected IgniteConfiguration getConfiguration(String gridName) 
throws Exception {
+        IgniteConfiguration cfg = super.getConfiguration(gridName);
+
+        TestRecordingCommunicationSpi commSpi = new 
TestRecordingCommunicationSpi();
+
+        cfg.setCommunicationSpi(commSpi);
+
+        ((TcpDiscoverySpi)cfg.getDiscoverySpi()).setIpFinder(ipFinder);
+
+        return cfg;
+    }
+    /** {@inheritDoc} */
+    @Override protected void beforeTestsStarted() throws Exception {
+        super.beforeTestsStarted();
+
+        startGridsMultiThreaded(NODES);
+    }
+
+    /** {@inheritDoc} */
+    @Override protected void afterTestsStopped() throws Exception {
+        super.afterTestsStopped();
+
+        stopAllGrids();
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    public void testNoPrimaryReadPreloadFinished() throws Exception {
+    }
+
+    /**
+     * @param ccfg Cache configuration.
+     * @throws Exception If failed.
+     */
+    private void checkNoPrimaryRead(CacheConfiguration<Object, Object> ccfg) 
throws Exception {
+        ignite(0).createCache(ccfg);
+
+        try {
+            for (int i = 0; i < NODES; i++) {
+                Ignite ignite = ignite(i);
+
+                IgniteCache<Integer, Integer> cache = 
ignite.cache(ccfg.getName());
+
+                TestRecordingCommunicationSpi spi =
+                    
(TestRecordingCommunicationSpi)ignite.configuration().getCommunicationSpi();
+
+                Integer key = nearKey(cache);
+
+                assertNull(cache.get(key));
+            }
+        }
+        finally {
+            ignite(0).destroyCache(ccfg.getName());
+        }
+    }
+
+    /**
+     * @param cacheMode Cache mode.
+     * @param backups Number of backups.
+     * @return Cache configuration.
+     */
+    private CacheConfiguration<Object, Object> cacheConfiguration(CacheMode 
cacheMode, int backups) {
+        CacheConfiguration<Object, Object> ccfg = new CacheConfiguration<>();
+
+        ccfg.setCacheMode(cacheMode);
+
+        if (cacheMode != CacheMode.REPLICATED)
+            ccfg.setBackups(backups);
+
+        return ccfg;
+    }
+}

http://git-wip-us.apache.org/repos/asf/ignite/blob/0823cd63/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheSingleGetMessageTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheSingleGetMessageTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheSingleGetMessageTest.java
index 722ee83..48fc961 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheSingleGetMessageTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheSingleGetMessageTest.java
@@ -21,26 +21,19 @@ import java.util.ArrayList;
 import java.util.List;
 import org.apache.ignite.Ignite;
 import org.apache.ignite.IgniteCache;
-import org.apache.ignite.IgniteException;
 import org.apache.ignite.cache.CacheAtomicityMode;
 import org.apache.ignite.cache.CacheMode;
 import org.apache.ignite.cache.CacheWriteSynchronizationMode;
-import org.apache.ignite.cluster.ClusterNode;
 import org.apache.ignite.configuration.CacheConfiguration;
 import org.apache.ignite.configuration.IgniteConfiguration;
-import org.apache.ignite.internal.managers.communication.GridIoMessage;
+import org.apache.ignite.internal.TestRecordingCommunicationSpi;
 import 
org.apache.ignite.internal.processors.cache.distributed.near.GridNearSingleGetRequest;
 import 
org.apache.ignite.internal.processors.cache.distributed.near.GridNearSingleGetResponse;
-import org.apache.ignite.lang.IgniteInClosure;
-import org.apache.ignite.plugin.extensions.communication.Message;
-import org.apache.ignite.spi.IgniteSpiException;
-import org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi;
 import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
 import org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder;
 import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
 import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
 import org.apache.ignite.transactions.Transaction;
-import org.jetbrains.annotations.Nullable;
 
 import static org.apache.ignite.cache.CacheAtomicityMode.ATOMIC;
 import static org.apache.ignite.cache.CacheAtomicityMode.TRANSACTIONAL;
@@ -69,7 +62,7 @@ public class IgniteCacheSingleGetMessageTest extends 
GridCommonAbstractTest {
 
         cfg.setClientMode(client);
 
-        TestCommunicationSpi commSpi = new TestCommunicationSpi();
+        TestRecordingCommunicationSpi commSpi = new 
TestRecordingCommunicationSpi();
 
         cfg.setCommunicationSpi(commSpi);
 
@@ -156,7 +149,7 @@ public class IgniteCacheSingleGetMessageTest extends 
GridCommonAbstractTest {
 
         Ignite node = cache.unwrap(Ignite.class);
 
-        TestCommunicationSpi spi = 
(TestCommunicationSpi)node.configuration().getCommunicationSpi();
+        TestRecordingCommunicationSpi spi = 
(TestRecordingCommunicationSpi)node.configuration().getCommunicationSpi();
 
         spi.record(GridNearSingleGetRequest.class);
 
@@ -164,7 +157,8 @@ public class IgniteCacheSingleGetMessageTest extends 
GridCommonAbstractTest {
 
         assertNotSame(node, primary);
 
-        TestCommunicationSpi primarySpi = 
(TestCommunicationSpi)primary.configuration().getCommunicationSpi();
+        TestRecordingCommunicationSpi primarySpi =
+            
(TestRecordingCommunicationSpi)primary.configuration().getCommunicationSpi();
 
         primarySpi.record(GridNearSingleGetResponse.class);
 
@@ -253,7 +247,7 @@ public class IgniteCacheSingleGetMessageTest extends 
GridCommonAbstractTest {
      * @param spi Near node SPI.
      * @param primarySpi Primary node SPI.
      */
-    private void checkMessages(TestCommunicationSpi spi, TestCommunicationSpi 
primarySpi) {
+    private void checkMessages(TestRecordingCommunicationSpi spi, 
TestRecordingCommunicationSpi primarySpi) {
         List<Object> msgs = spi.recordedMessages();
 
         assertEquals(1, msgs.size());
@@ -269,7 +263,7 @@ public class IgniteCacheSingleGetMessageTest extends 
GridCommonAbstractTest {
      * @param spi Near node SPI.
      * @param primarySpi Primary node SPI.
      */
-    private void checkNoMessages(TestCommunicationSpi spi, 
TestCommunicationSpi primarySpi) {
+    private void checkNoMessages(TestRecordingCommunicationSpi spi, 
TestRecordingCommunicationSpi primarySpi) {
         List<Object> msgs = spi.recordedMessages();
         assertEquals(0, msgs.size());
 
@@ -318,52 +312,4 @@ public class IgniteCacheSingleGetMessageTest extends 
GridCommonAbstractTest {
 
         return ccfg;
     }
-
-    /**
-     *
-     */
-    private static class TestCommunicationSpi extends TcpCommunicationSpi {
-        /** */
-        private Class<?> recordCls;
-
-        /** */
-        private List<Object> recordedMsgs = new ArrayList<>();
-
-        /** {@inheritDoc} */
-        @Override public void sendMessage(ClusterNode node, Message msg, 
IgniteInClosure<IgniteException> ackC)
-            throws IgniteSpiException {
-            if (msg instanceof GridIoMessage) {
-                Object msg0 = ((GridIoMessage)msg).message();
-
-                synchronized (this) {
-                    if (recordCls != null && msg0.getClass().equals(recordCls))
-                        recordedMsgs.add(msg0);
-                }
-            }
-
-            super.sendMessage(node, msg, ackC);
-        }
-
-        /**
-         * @param recordCls Message class to record.
-         */
-        void record(@Nullable Class<?> recordCls) {
-            synchronized (this) {
-                this.recordCls = recordCls;
-            }
-        }
-
-        /**
-         * @return Recorded messages.
-         */
-        List<Object> recordedMessages() {
-            synchronized (this) {
-                List<Object> msgs = recordedMsgs;
-
-                recordedMsgs = new ArrayList<>();
-
-                return msgs;
-            }
-        }
-    }
 }

http://git-wip-us.apache.org/repos/asf/ignite/blob/0823cd63/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCacheDhtPreloadMessageCountTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCacheDhtPreloadMessageCountTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCacheDhtPreloadMessageCountTest.java
index fd94150..0666349 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCacheDhtPreloadMessageCountTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCacheDhtPreloadMessageCountTest.java
@@ -17,25 +17,17 @@
 
 package org.apache.ignite.internal.processors.cache.distributed.dht;
 
-import java.util.Collection;
-import java.util.concurrent.ConcurrentLinkedQueue;
 import org.apache.ignite.Ignite;
 import org.apache.ignite.IgniteCache;
-import org.apache.ignite.IgniteException;
 import org.apache.ignite.cache.CachePeekMode;
 import org.apache.ignite.cache.CacheRebalanceMode;
 import org.apache.ignite.cache.affinity.rendezvous.RendezvousAffinityFunction;
-import org.apache.ignite.cluster.ClusterNode;
 import org.apache.ignite.configuration.CacheConfiguration;
 import org.apache.ignite.configuration.IgniteConfiguration;
-import org.apache.ignite.internal.managers.communication.GridIoMessage;
+import org.apache.ignite.internal.TestRecordingCommunicationSpi;
 import 
org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsSingleMessage;
 import 
org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPreloader;
 import org.apache.ignite.internal.util.typedef.internal.U;
-import org.apache.ignite.lang.IgniteInClosure;
-import org.apache.ignite.plugin.extensions.communication.Message;
-import org.apache.ignite.spi.IgniteSpiException;
-import org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi;
 import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
 import org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder;
 import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
@@ -79,7 +71,11 @@ public class GridCacheDhtPreloadMessageCountTest extends 
GridCommonAbstractTest
         c.setDiscoverySpi(disco);
         c.setCacheConfiguration(cc);
 
-        c.setCommunicationSpi(new TestCommunicationSpi());
+        TestRecordingCommunicationSpi commSpi = new 
TestRecordingCommunicationSpi();
+
+        commSpi.record(GridDhtPartitionsSingleMessage.class);
+
+        c.setCommunicationSpi(commSpi);
 
         return c;
     }
@@ -110,11 +106,13 @@ public class GridCacheDhtPreloadMessageCountTest extends 
GridCommonAbstractTest
         IgniteCache<String, Integer> c1 = g1.cache(null);
         IgniteCache<String, Integer> c2 = g2.cache(null);
 
-        TestCommunicationSpi spi0 = 
(TestCommunicationSpi)g0.configuration().getCommunicationSpi();
-        TestCommunicationSpi spi1 = 
(TestCommunicationSpi)g1.configuration().getCommunicationSpi();
-        TestCommunicationSpi spi2 = 
(TestCommunicationSpi)g2.configuration().getCommunicationSpi();
+        TestRecordingCommunicationSpi spi0 = 
(TestRecordingCommunicationSpi)g0.configuration().getCommunicationSpi();
+        TestRecordingCommunicationSpi spi1 = 
(TestRecordingCommunicationSpi)g1.configuration().getCommunicationSpi();
+        TestRecordingCommunicationSpi spi2 = 
(TestRecordingCommunicationSpi)g2.configuration().getCommunicationSpi();
 
-        info(spi0.sentMessages().size() + " " + spi1.sentMessages().size() + " 
" + spi2.sentMessages().size());
+        info(spi0.recordedMessages().size() + " " +
+            spi1.recordedMessages().size() + " " +
+            spi2.recordedMessages().size());
 
         checkCache(c0, cnt);
         checkCache(c1, cnt);
@@ -137,40 +135,4 @@ public class GridCacheDhtPreloadMessageCountTest extends 
GridCommonAbstractTest
                 assertEquals(Integer.valueOf(i), c.localPeek(key, 
CachePeekMode.ONHEAP));
         }
     }
-
-    /**
-     * Communication SPI that will count single partition update messages.
-     */
-    private static class TestCommunicationSpi extends TcpCommunicationSpi {
-        /** Recorded messages. */
-        private Collection<GridDhtPartitionsSingleMessage> sentMsgs = new 
ConcurrentLinkedQueue<>();
-
-        /** {@inheritDoc} */
-        @Override public void sendMessage(ClusterNode node, Message msg, 
IgniteInClosure<IgniteException> ackClosure)
-            throws IgniteSpiException {
-            recordMessage((GridIoMessage)msg);
-
-            super.sendMessage(node, msg, ackClosure);
-        }
-
-        /**
-         * @return Collection of sent messages.
-         */
-        public Collection<GridDhtPartitionsSingleMessage> sentMessages() {
-            return sentMsgs;
-        }
-
-        /**
-         * Adds message to a list if message is of correct type.
-         *
-         * @param msg Message.
-         */
-        private void recordMessage(GridIoMessage msg) {
-            if (msg.message() instanceof GridDhtPartitionsSingleMessage) {
-                GridDhtPartitionsSingleMessage partSingleMsg = 
(GridDhtPartitionsSingleMessage)msg.message();
-
-                sentMsgs.add(partSingleMsg);
-            }
-        }
-    }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ignite/blob/0823cd63/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite4.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite4.java
 
b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite4.java
index fcc8d37..ee2d084 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite4.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite4.java
@@ -81,6 +81,7 @@ import 
org.apache.ignite.internal.processors.cache.distributed.CacheGetFutureHan
 import 
org.apache.ignite.internal.processors.cache.distributed.CacheNoValueClassOnServerNodeTest;
 import 
org.apache.ignite.internal.processors.cache.distributed.IgniteCacheCreatePutMultiNodeSelfTest;
 import 
org.apache.ignite.internal.processors.cache.distributed.IgniteCacheCreatePutTest;
+import 
org.apache.ignite.internal.processors.cache.distributed.IgniteCacheReadFromBackupTest;
 import 
org.apache.ignite.internal.processors.cache.distributed.IgniteCacheSingleGetMessageTest;
 import 
org.apache.ignite.internal.processors.cache.distributed.dht.GridCacheDhtTxPreloadSelfTest;
 import 
org.apache.ignite.internal.processors.cache.distributed.dht.IgniteCacheLockFailoverSelfTest;
@@ -285,6 +286,7 @@ public class IgniteCacheTestSuite4 extends TestSuite {
         suite.addTestSuite(CacheGetFutureHangsSelfTest.class);
 
         suite.addTestSuite(IgniteCacheSingleGetMessageTest.class);
+        suite.addTestSuite(IgniteCacheReadFromBackupTest.class);
 
         return suite;
     }

Reply via email to