You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by nt...@apache.org on 2017/11/10 10:07:34 UTC

ignite git commit: IGNITE-6669: Renamed test by code style.

Repository: ignite
Updated Branches:
  refs/heads/master 291b166f2 -> c11fc4117


IGNITE-6669: Renamed test by code style.

Signed-off-by: nikolay_tikhonov <nt...@gridgain.com>


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

Branch: refs/heads/master
Commit: c11fc41176d7fb5c731ddc55f5f544ded4b26d02
Parents: 291b166
Author: Slava Koptilin <sl...@gmail.com>
Authored: Fri Nov 10 13:07:26 2017 +0300
Committer: nikolay_tikhonov <nt...@gridgain.com>
Committed: Fri Nov 10 13:07:26 2017 +0300

----------------------------------------------------------------------
 ...oreListenerRWThroughDisabledAtomicCache.java |  33 --
 ...istenerRWThroughDisabledAtomicCacheTest.java |  33 ++
 ...enerRWThroughDisabledTransactionalCache.java | 138 ---------
 ...RWThroughDisabledTransactionalCacheTest.java | 138 +++++++++
 ...SessionListenerReadWriteThroughDisabled.java | 291 ------------------
 ...ionListenerReadWriteThroughDisabledTest.java | 291 ++++++++++++++++++
 ...eStoreSessionListenerWriteBehindEnabled.java | 304 -------------------
 ...reSessionListenerWriteBehindEnabledTest.java | 304 +++++++++++++++++++
 .../testsuites/IgniteCacheTestSuite4.java       |  12 +-
 9 files changed, 772 insertions(+), 772 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/c11fc411/modules/core/src/test/java/org/apache/ignite/cache/store/CacheStoreListenerRWThroughDisabledAtomicCache.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/cache/store/CacheStoreListenerRWThroughDisabledAtomicCache.java b/modules/core/src/test/java/org/apache/ignite/cache/store/CacheStoreListenerRWThroughDisabledAtomicCache.java
deleted file mode 100644
index 9b59940..0000000
--- a/modules/core/src/test/java/org/apache/ignite/cache/store/CacheStoreListenerRWThroughDisabledAtomicCache.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * 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.cache.store;
-
-import org.apache.ignite.cache.CacheAtomicityMode;
-
-import static org.apache.ignite.cache.CacheAtomicityMode.ATOMIC;
-
-/**
- * This class tests that redundant calls of {@link CacheStoreSessionListener#onSessionStart(CacheStoreSession)}
- * and {@link CacheStoreSessionListener#onSessionEnd(CacheStoreSession, boolean)} are not executed.
- */
-public class CacheStoreListenerRWThroughDisabledAtomicCache extends CacheStoreSessionListenerReadWriteThroughDisabled {
-    /** {@inheritDoc} */
-    @Override protected CacheAtomicityMode atomicityMode() {
-        return ATOMIC;
-    }
-}

http://git-wip-us.apache.org/repos/asf/ignite/blob/c11fc411/modules/core/src/test/java/org/apache/ignite/cache/store/CacheStoreListenerRWThroughDisabledAtomicCacheTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/cache/store/CacheStoreListenerRWThroughDisabledAtomicCacheTest.java b/modules/core/src/test/java/org/apache/ignite/cache/store/CacheStoreListenerRWThroughDisabledAtomicCacheTest.java
new file mode 100644
index 0000000..6e28a52
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/cache/store/CacheStoreListenerRWThroughDisabledAtomicCacheTest.java
@@ -0,0 +1,33 @@
+/*
+ * 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.cache.store;
+
+import org.apache.ignite.cache.CacheAtomicityMode;
+
+import static org.apache.ignite.cache.CacheAtomicityMode.ATOMIC;
+
+/**
+ * This class tests that redundant calls of {@link CacheStoreSessionListener#onSessionStart(CacheStoreSession)}
+ * and {@link CacheStoreSessionListener#onSessionEnd(CacheStoreSession, boolean)} are not executed.
+ */
+public class CacheStoreListenerRWThroughDisabledAtomicCacheTest extends CacheStoreSessionListenerReadWriteThroughDisabledTest {
+    /** {@inheritDoc} */
+    @Override protected CacheAtomicityMode atomicityMode() {
+        return ATOMIC;
+    }
+}

http://git-wip-us.apache.org/repos/asf/ignite/blob/c11fc411/modules/core/src/test/java/org/apache/ignite/cache/store/CacheStoreListenerRWThroughDisabledTransactionalCache.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/cache/store/CacheStoreListenerRWThroughDisabledTransactionalCache.java b/modules/core/src/test/java/org/apache/ignite/cache/store/CacheStoreListenerRWThroughDisabledTransactionalCache.java
deleted file mode 100644
index 6502c97..0000000
--- a/modules/core/src/test/java/org/apache/ignite/cache/store/CacheStoreListenerRWThroughDisabledTransactionalCache.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/*
- * 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.cache.store;
-
-import java.util.Random;
-import org.apache.ignite.IgniteCache;
-import org.apache.ignite.cache.CacheAtomicityMode;
-import org.apache.ignite.transactions.Transaction;
-import org.apache.ignite.transactions.TransactionConcurrency;
-import org.apache.ignite.transactions.TransactionIsolation;
-
-import static org.apache.ignite.cache.CacheAtomicityMode.TRANSACTIONAL;
-import static org.apache.ignite.transactions.TransactionConcurrency.OPTIMISTIC;
-import static org.apache.ignite.transactions.TransactionConcurrency.PESSIMISTIC;
-import static org.apache.ignite.transactions.TransactionIsolation.READ_COMMITTED;
-import static org.apache.ignite.transactions.TransactionIsolation.REPEATABLE_READ;
-import static org.apache.ignite.transactions.TransactionIsolation.SERIALIZABLE;
-
-/**
- * This class tests that redundant calls of {@link CacheStoreSessionListener#onSessionStart(CacheStoreSession)}
- * and {@link CacheStoreSessionListener#onSessionEnd(CacheStoreSession, boolean)} are not executed.
- */
-public class CacheStoreListenerRWThroughDisabledTransactionalCache extends CacheStoreSessionListenerReadWriteThroughDisabled {
-    /** {@inheritDoc} */
-    @Override protected CacheAtomicityMode atomicityMode() {
-        return TRANSACTIONAL;
-    }
-
-    /**
-     * Tests {@link IgniteCache#get(Object)} with disabled read-through and write-through modes.
-     */
-    public void testTransactionalLookup() {
-        testTransactionalLookup(OPTIMISTIC, READ_COMMITTED);
-        testTransactionalLookup(OPTIMISTIC, REPEATABLE_READ);
-        testTransactionalLookup(OPTIMISTIC, SERIALIZABLE);
-
-        testTransactionalLookup(PESSIMISTIC, READ_COMMITTED);
-        testTransactionalLookup(PESSIMISTIC, REPEATABLE_READ);
-        testTransactionalLookup(PESSIMISTIC, SERIALIZABLE);
-    }
-
-    /**
-     * @param concurrency Transaction concurrency level.
-     * @param isolation Transaction isolation level.
-     */
-    private void testTransactionalLookup(TransactionConcurrency concurrency, TransactionIsolation isolation) {
-        IgniteCache cache = grid(0).getOrCreateCache(DEFAULT_CACHE_NAME);
-
-        Random r = new Random();
-
-        try (Transaction tx = grid(0).transactions().txStart(concurrency, isolation)) {
-            for (int i = 0; i < CNT; ++i)
-                cache.get(r.nextInt());
-
-            tx.commit();
-        }
-    }
-
-    /**
-     * Tests {@link IgniteCache#put(Object, Object)} with disabled read-through and write-through modes.
-     */
-    public void testTransactionalUpdate() {
-        testTransactionalUpdate(OPTIMISTIC, READ_COMMITTED);
-        testTransactionalUpdate(OPTIMISTIC, REPEATABLE_READ);
-        testTransactionalUpdate(OPTIMISTIC, SERIALIZABLE);
-
-        testTransactionalUpdate(PESSIMISTIC, READ_COMMITTED);
-        testTransactionalUpdate(PESSIMISTIC, REPEATABLE_READ);
-        testTransactionalUpdate(PESSIMISTIC, SERIALIZABLE);
-    }
-
-    /**
-     * @param concurrency Transaction concurrency level.
-     * @param isolation Transaction isolation level.
-     */
-    private void testTransactionalUpdate(TransactionConcurrency concurrency, TransactionIsolation isolation) {
-        IgniteCache cache = grid(0).getOrCreateCache(DEFAULT_CACHE_NAME);
-
-        Random r = new Random();
-
-        try (Transaction tx = grid(0).transactions().txStart(concurrency, isolation)) {
-            for (int i = 0; i < CNT; ++i)
-                cache.put(r.nextInt(), "test-value");
-
-            tx.commit();
-        }
-    }
-
-    /**
-     * Tests {@link IgniteCache#remove(Object)} with disabled read-through and write-through modes.
-     */
-    public void testTransactionalRemove() {
-        testTransactionalRemove(OPTIMISTIC, READ_COMMITTED);
-        testTransactionalRemove(OPTIMISTIC, REPEATABLE_READ);
-        testTransactionalRemove(OPTIMISTIC, SERIALIZABLE);
-
-        testTransactionalRemove(PESSIMISTIC, READ_COMMITTED);
-        testTransactionalRemove(PESSIMISTIC, REPEATABLE_READ);
-        testTransactionalRemove(PESSIMISTIC, SERIALIZABLE);
-    }
-
-    /**
-     * @param concurrency Transaction concurrency level.
-     * @param isolation Transaction isolation level.
-     */
-    private void testTransactionalRemove(TransactionConcurrency concurrency, TransactionIsolation isolation) {
-        IgniteCache cache = grid(0).getOrCreateCache(DEFAULT_CACHE_NAME);
-
-        Random r = new Random();
-
-        try (Transaction tx = grid(0).transactions().txStart(concurrency, isolation)) {
-            for (int i = 0; i < CNT; ++i) {
-                int key = r.nextInt();
-
-                cache.put(key, "test-value");
-
-                cache.remove(key, "test-value");
-            }
-
-            tx.commit();
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/ignite/blob/c11fc411/modules/core/src/test/java/org/apache/ignite/cache/store/CacheStoreListenerRWThroughDisabledTransactionalCacheTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/cache/store/CacheStoreListenerRWThroughDisabledTransactionalCacheTest.java b/modules/core/src/test/java/org/apache/ignite/cache/store/CacheStoreListenerRWThroughDisabledTransactionalCacheTest.java
new file mode 100644
index 0000000..fd784a3
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/cache/store/CacheStoreListenerRWThroughDisabledTransactionalCacheTest.java
@@ -0,0 +1,138 @@
+/*
+ * 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.cache.store;
+
+import java.util.Random;
+import org.apache.ignite.IgniteCache;
+import org.apache.ignite.cache.CacheAtomicityMode;
+import org.apache.ignite.transactions.Transaction;
+import org.apache.ignite.transactions.TransactionConcurrency;
+import org.apache.ignite.transactions.TransactionIsolation;
+
+import static org.apache.ignite.cache.CacheAtomicityMode.TRANSACTIONAL;
+import static org.apache.ignite.transactions.TransactionConcurrency.OPTIMISTIC;
+import static org.apache.ignite.transactions.TransactionConcurrency.PESSIMISTIC;
+import static org.apache.ignite.transactions.TransactionIsolation.READ_COMMITTED;
+import static org.apache.ignite.transactions.TransactionIsolation.REPEATABLE_READ;
+import static org.apache.ignite.transactions.TransactionIsolation.SERIALIZABLE;
+
+/**
+ * This class tests that redundant calls of {@link CacheStoreSessionListener#onSessionStart(CacheStoreSession)}
+ * and {@link CacheStoreSessionListener#onSessionEnd(CacheStoreSession, boolean)} are not executed.
+ */
+public class CacheStoreListenerRWThroughDisabledTransactionalCacheTest extends CacheStoreSessionListenerReadWriteThroughDisabledTest {
+    /** {@inheritDoc} */
+    @Override protected CacheAtomicityMode atomicityMode() {
+        return TRANSACTIONAL;
+    }
+
+    /**
+     * Tests {@link IgniteCache#get(Object)} with disabled read-through and write-through modes.
+     */
+    public void testTransactionalLookup() {
+        testTransactionalLookup(OPTIMISTIC, READ_COMMITTED);
+        testTransactionalLookup(OPTIMISTIC, REPEATABLE_READ);
+        testTransactionalLookup(OPTIMISTIC, SERIALIZABLE);
+
+        testTransactionalLookup(PESSIMISTIC, READ_COMMITTED);
+        testTransactionalLookup(PESSIMISTIC, REPEATABLE_READ);
+        testTransactionalLookup(PESSIMISTIC, SERIALIZABLE);
+    }
+
+    /**
+     * @param concurrency Transaction concurrency level.
+     * @param isolation Transaction isolation level.
+     */
+    private void testTransactionalLookup(TransactionConcurrency concurrency, TransactionIsolation isolation) {
+        IgniteCache cache = grid(0).getOrCreateCache(DEFAULT_CACHE_NAME);
+
+        Random r = new Random();
+
+        try (Transaction tx = grid(0).transactions().txStart(concurrency, isolation)) {
+            for (int i = 0; i < CNT; ++i)
+                cache.get(r.nextInt());
+
+            tx.commit();
+        }
+    }
+
+    /**
+     * Tests {@link IgniteCache#put(Object, Object)} with disabled read-through and write-through modes.
+     */
+    public void testTransactionalUpdate() {
+        testTransactionalUpdate(OPTIMISTIC, READ_COMMITTED);
+        testTransactionalUpdate(OPTIMISTIC, REPEATABLE_READ);
+        testTransactionalUpdate(OPTIMISTIC, SERIALIZABLE);
+
+        testTransactionalUpdate(PESSIMISTIC, READ_COMMITTED);
+        testTransactionalUpdate(PESSIMISTIC, REPEATABLE_READ);
+        testTransactionalUpdate(PESSIMISTIC, SERIALIZABLE);
+    }
+
+    /**
+     * @param concurrency Transaction concurrency level.
+     * @param isolation Transaction isolation level.
+     */
+    private void testTransactionalUpdate(TransactionConcurrency concurrency, TransactionIsolation isolation) {
+        IgniteCache cache = grid(0).getOrCreateCache(DEFAULT_CACHE_NAME);
+
+        Random r = new Random();
+
+        try (Transaction tx = grid(0).transactions().txStart(concurrency, isolation)) {
+            for (int i = 0; i < CNT; ++i)
+                cache.put(r.nextInt(), "test-value");
+
+            tx.commit();
+        }
+    }
+
+    /**
+     * Tests {@link IgniteCache#remove(Object)} with disabled read-through and write-through modes.
+     */
+    public void testTransactionalRemove() {
+        testTransactionalRemove(OPTIMISTIC, READ_COMMITTED);
+        testTransactionalRemove(OPTIMISTIC, REPEATABLE_READ);
+        testTransactionalRemove(OPTIMISTIC, SERIALIZABLE);
+
+        testTransactionalRemove(PESSIMISTIC, READ_COMMITTED);
+        testTransactionalRemove(PESSIMISTIC, REPEATABLE_READ);
+        testTransactionalRemove(PESSIMISTIC, SERIALIZABLE);
+    }
+
+    /**
+     * @param concurrency Transaction concurrency level.
+     * @param isolation Transaction isolation level.
+     */
+    private void testTransactionalRemove(TransactionConcurrency concurrency, TransactionIsolation isolation) {
+        IgniteCache cache = grid(0).getOrCreateCache(DEFAULT_CACHE_NAME);
+
+        Random r = new Random();
+
+        try (Transaction tx = grid(0).transactions().txStart(concurrency, isolation)) {
+            for (int i = 0; i < CNT; ++i) {
+                int key = r.nextInt();
+
+                cache.put(key, "test-value");
+
+                cache.remove(key, "test-value");
+            }
+
+            tx.commit();
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/ignite/blob/c11fc411/modules/core/src/test/java/org/apache/ignite/cache/store/CacheStoreSessionListenerReadWriteThroughDisabled.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/cache/store/CacheStoreSessionListenerReadWriteThroughDisabled.java b/modules/core/src/test/java/org/apache/ignite/cache/store/CacheStoreSessionListenerReadWriteThroughDisabled.java
deleted file mode 100644
index 1f6e97d..0000000
--- a/modules/core/src/test/java/org/apache/ignite/cache/store/CacheStoreSessionListenerReadWriteThroughDisabled.java
+++ /dev/null
@@ -1,291 +0,0 @@
-/*
- * 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.cache.store;
-
-import java.io.PrintWriter;
-import java.io.Serializable;
-import java.sql.Connection;
-import java.sql.SQLException;
-import java.sql.SQLFeatureNotSupportedException;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Random;
-import java.util.Set;
-import java.util.TreeMap;
-import java.util.logging.Logger;
-import javax.cache.Cache;
-import javax.cache.configuration.Factory;
-import javax.cache.configuration.FactoryBuilder;
-import javax.cache.integration.CacheLoaderException;
-import javax.cache.integration.CacheWriterException;
-import javax.sql.DataSource;
-import org.apache.ignite.IgniteCache;
-import org.apache.ignite.cache.store.jdbc.CacheJdbcStoreSessionListener;
-import org.apache.ignite.configuration.CacheConfiguration;
-import org.apache.ignite.configuration.NearCacheConfiguration;
-import org.apache.ignite.internal.processors.cache.GridCacheAbstractSelfTest;
-
-/**
- * This class tests that redundant calls of {@link CacheStoreSessionListener#onSessionStart(CacheStoreSession)}
- * and {@link CacheStoreSessionListener#onSessionEnd(CacheStoreSession, boolean)} are not executed.
- */
-public abstract class CacheStoreSessionListenerReadWriteThroughDisabled extends GridCacheAbstractSelfTest {
-    /** {@inheritDoc} */
-    protected int gridCount() {
-        return 2;
-    }
-
-    /** */
-    protected final int CNT = 100;
-
-    /** {@inheritDoc} */
-    protected CacheConfiguration cacheConfiguration(String igniteInstanceName) throws Exception {
-        CacheConfiguration cacheCfg = super.cacheConfiguration(igniteInstanceName);
-
-        cacheCfg.setCacheStoreFactory(FactoryBuilder.factoryOf(EmptyCacheStore.class));
-
-        cacheCfg.setCacheStoreSessionListenerFactories(new CacheStoreSessionFactory());
-
-        cacheCfg.setReadThrough(false);
-        cacheCfg.setWriteThrough(false);
-
-        cacheCfg.setBackups(0);
-
-        return cacheCfg;
-    }
-
-    /** {@inheritDoc} */
-    protected NearCacheConfiguration nearConfiguration() {
-        return null;
-    }
-
-    /**
-     * Tests that there are no calls of {@link CacheStoreSessionListener#onSessionStart(CacheStoreSession)} and
-     * {@link CacheStoreSessionListener#onSessionStart(CacheStoreSession)}
-     * while {@link IgniteCache#get(Object)} performed.
-     *
-     * @throws Exception If failed.
-     */
-    public void testLookup() throws Exception {
-        IgniteCache<Object, Object> cache = grid(0).getOrCreateCache(DEFAULT_CACHE_NAME);
-
-        Random r = new Random();
-
-        for (int i = 0; i < CNT; ++i)
-            cache.get(r.nextInt());
-    }
-
-    /**
-     * Tests that there are no calls of {@link CacheStoreSessionListener#onSessionStart(CacheStoreSession)} and
-     * {@link CacheStoreSessionListener#onSessionStart(CacheStoreSession)}
-     * while {@link IgniteCache#getAll(Set)} performed.
-     *
-     * @throws Exception If failed.
-     */
-    public void testBatchLookup() throws Exception {
-        IgniteCache<Object, Object> cache = grid(0).getOrCreateCache(DEFAULT_CACHE_NAME);
-
-        Random r = new Random();
-
-        Set<Object> values = new HashSet<>();
-
-        for (int i = 0; i < CNT; ++i)
-            values.add(r.nextInt());
-
-        cache.getAll(values);
-    }
-
-    /**
-     * Tests that there are no calls of {@link CacheStoreSessionListener#onSessionStart(CacheStoreSession)} and
-     * {@link CacheStoreSessionListener#onSessionStart(CacheStoreSession)}
-     * while {@link IgniteCache#put(Object, Object)} performed.
-     *
-     * @throws Exception If failed.
-     */
-    public void testUpdate() throws Exception {
-        IgniteCache<Object, Object> cache = grid(0).getOrCreateCache(DEFAULT_CACHE_NAME);
-
-        Random r = new Random();
-
-        for (int i = 0; i < CNT; ++i)
-            cache.put(r.nextInt(), "test-value");
-    }
-
-    /**
-     * Tests that there are no calls of {@link CacheStoreSessionListener#onSessionStart(CacheStoreSession)} and
-     * {@link CacheStoreSessionListener#onSessionStart(CacheStoreSession)}
-     * while {@link IgniteCache#putAll(Map)} performed.
-     *
-     * @throws Exception If failed.
-     */
-    public void testBatchUpdate() throws Exception {
-        IgniteCache<Object, Object> cache = grid(0).getOrCreateCache(DEFAULT_CACHE_NAME);
-
-        Random r = new Random();
-
-        Map<Object, Object> values = new TreeMap<>();
-
-        for (int i = 0; i < CNT; ++i)
-            values.put(r.nextInt(), "test-value");
-
-        cache.putAll(values);
-    }
-
-    /**
-     * Tests that there are no calls of {@link CacheStoreSessionListener#onSessionStart(CacheStoreSession)} and
-     * {@link CacheStoreSessionListener#onSessionStart(CacheStoreSession)}
-     * while {@link IgniteCache#remove(Object)} performed.
-     *
-     * @throws Exception If failed.
-     */
-    public void testRemove() throws Exception {
-        IgniteCache<Object, Object> cache = grid(0).getOrCreateCache(DEFAULT_CACHE_NAME);
-
-        Random r = new Random();
-
-        for (int i = 0; i < CNT; ++i) {
-            int key = r.nextInt();
-
-            cache.put(key, "test-value");
-
-            cache.remove(key);
-        }
-    }
-
-    /**
-     * Tests that there are no calls of {@link CacheStoreSessionListener#onSessionStart(CacheStoreSession)} and
-     * {@link CacheStoreSessionListener#onSessionStart(CacheStoreSession)}
-     * while {@link IgniteCache#removeAll(Set)} performed.
-     *
-     * @throws Exception If failed.
-     */
-    public void testBatchRemove() throws Exception {
-        IgniteCache<Object, Object> cache = grid(0).getOrCreateCache(DEFAULT_CACHE_NAME);
-
-        Random r = new Random();
-
-        Set<Object> values = new HashSet<>();
-
-        for (int i = 0; i < CNT; ++i) {
-            int key = r.nextInt();
-
-            cache.put(key, "test-value");
-
-            values.add(key);
-        }
-
-        cache.removeAll(values);
-    }
-
-    /**
-     * Cache store session factory.
-     */
-    public static class CacheStoreSessionFactory implements Factory<TestCacheStoreSessionListener> {
-        /** {@inheritDoc} */
-        @Override public TestCacheStoreSessionListener create() {
-            TestCacheStoreSessionListener lsnr = new TestCacheStoreSessionListener();
-            lsnr.setDataSource(new DataSourceStub());
-            return lsnr;
-        }
-    }
-
-    /**
-     * Test cache store session listener.
-     */
-    public static class TestCacheStoreSessionListener extends CacheJdbcStoreSessionListener {
-        /** {@inheritDoc} */
-        @Override public void onSessionStart(CacheStoreSession ses) {
-            fail("TestCacheStoreSessionListener.onSessionStart(CacheStoreSession) should not be called.");
-        }
-
-        /** {@inheritDoc} */
-        @Override public void onSessionEnd(CacheStoreSession ses, boolean commit) {
-            fail("TestCacheStoreSessionListener.onSessionEnd(CacheStoreSession, boolean) should not be called.");
-        }
-    }
-
-    /** Empty cache store implementation. All overridden methods should not be called while the test is running. */
-    public static class EmptyCacheStore extends CacheStoreAdapter {
-        /** {@inheritDoc} */
-        @Override public Object load(Object key) throws CacheLoaderException {
-            fail("EmptyCacheStore.load(Object) should not be called.");
-
-            return null;
-        }
-
-        /** {@inheritDoc} */
-        @Override public void write(Cache.Entry entry) throws CacheWriterException {
-            fail("EmptyCacheStore.write(Cache.Entry) should not be called.");
-        }
-
-        /** {@inheritDoc} */
-        @Override public void delete(Object key) throws CacheWriterException {
-            fail("EmptyCacheStore.delete(Object) should not be called.");
-        }
-    }
-
-    /**
-     * Data source stub which should not be called.
-     */
-    public static class DataSourceStub implements DataSource, Serializable {
-        /** {@inheritDoc} */
-        @Override public Connection getConnection() throws SQLException {
-            throw new UnsupportedOperationException();
-        }
-
-        /** {@inheritDoc} */
-        @Override public Connection getConnection(String username, String password) throws SQLException {
-            throw new UnsupportedOperationException();
-        }
-
-        /** {@inheritDoc} */
-        @Override public <T> T unwrap(Class<T> iface) throws SQLException {
-            throw new UnsupportedOperationException();
-        }
-
-        /** {@inheritDoc} */
-        @Override public boolean isWrapperFor(Class<?> iface) throws SQLException {
-            throw new UnsupportedOperationException();
-        }
-
-        /** {@inheritDoc} */
-        @Override public PrintWriter getLogWriter() throws SQLException {
-            throw new UnsupportedOperationException();
-        }
-
-        /** {@inheritDoc} */
-        @Override public void setLogWriter(PrintWriter out) throws SQLException {
-            throw new UnsupportedOperationException();
-        }
-
-        /** {@inheritDoc} */
-        @Override public void setLoginTimeout(int seconds) throws SQLException {
-            throw new UnsupportedOperationException();
-        }
-
-        /** {@inheritDoc} */
-        @Override public int getLoginTimeout() throws SQLException {
-            throw new UnsupportedOperationException();
-        }
-
-        /** {@inheritDoc} */
-        @Override public Logger getParentLogger() throws SQLFeatureNotSupportedException {
-            throw new UnsupportedOperationException();
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/ignite/blob/c11fc411/modules/core/src/test/java/org/apache/ignite/cache/store/CacheStoreSessionListenerReadWriteThroughDisabledTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/cache/store/CacheStoreSessionListenerReadWriteThroughDisabledTest.java b/modules/core/src/test/java/org/apache/ignite/cache/store/CacheStoreSessionListenerReadWriteThroughDisabledTest.java
new file mode 100644
index 0000000..150e157
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/cache/store/CacheStoreSessionListenerReadWriteThroughDisabledTest.java
@@ -0,0 +1,291 @@
+/*
+ * 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.cache.store;
+
+import java.io.PrintWriter;
+import java.io.Serializable;
+import java.sql.Connection;
+import java.sql.SQLException;
+import java.sql.SQLFeatureNotSupportedException;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Random;
+import java.util.Set;
+import java.util.TreeMap;
+import java.util.logging.Logger;
+import javax.cache.Cache;
+import javax.cache.configuration.Factory;
+import javax.cache.configuration.FactoryBuilder;
+import javax.cache.integration.CacheLoaderException;
+import javax.cache.integration.CacheWriterException;
+import javax.sql.DataSource;
+import org.apache.ignite.IgniteCache;
+import org.apache.ignite.cache.store.jdbc.CacheJdbcStoreSessionListener;
+import org.apache.ignite.configuration.CacheConfiguration;
+import org.apache.ignite.configuration.NearCacheConfiguration;
+import org.apache.ignite.internal.processors.cache.GridCacheAbstractSelfTest;
+
+/**
+ * This class tests that redundant calls of {@link CacheStoreSessionListener#onSessionStart(CacheStoreSession)}
+ * and {@link CacheStoreSessionListener#onSessionEnd(CacheStoreSession, boolean)} are not executed.
+ */
+public abstract class CacheStoreSessionListenerReadWriteThroughDisabledTest extends GridCacheAbstractSelfTest {
+    /** {@inheritDoc} */
+    protected int gridCount() {
+        return 2;
+    }
+
+    /** */
+    protected final int CNT = 100;
+
+    /** {@inheritDoc} */
+    protected CacheConfiguration cacheConfiguration(String igniteInstanceName) throws Exception {
+        CacheConfiguration cacheCfg = super.cacheConfiguration(igniteInstanceName);
+
+        cacheCfg.setCacheStoreFactory(FactoryBuilder.factoryOf(EmptyCacheStore.class));
+
+        cacheCfg.setCacheStoreSessionListenerFactories(new CacheStoreSessionFactory());
+
+        cacheCfg.setReadThrough(false);
+        cacheCfg.setWriteThrough(false);
+
+        cacheCfg.setBackups(0);
+
+        return cacheCfg;
+    }
+
+    /** {@inheritDoc} */
+    protected NearCacheConfiguration nearConfiguration() {
+        return null;
+    }
+
+    /**
+     * Tests that there are no calls of {@link CacheStoreSessionListener#onSessionStart(CacheStoreSession)} and
+     * {@link CacheStoreSessionListener#onSessionStart(CacheStoreSession)}
+     * while {@link IgniteCache#get(Object)} performed.
+     *
+     * @throws Exception If failed.
+     */
+    public void testLookup() throws Exception {
+        IgniteCache<Object, Object> cache = grid(0).getOrCreateCache(DEFAULT_CACHE_NAME);
+
+        Random r = new Random();
+
+        for (int i = 0; i < CNT; ++i)
+            cache.get(r.nextInt());
+    }
+
+    /**
+     * Tests that there are no calls of {@link CacheStoreSessionListener#onSessionStart(CacheStoreSession)} and
+     * {@link CacheStoreSessionListener#onSessionStart(CacheStoreSession)}
+     * while {@link IgniteCache#getAll(Set)} performed.
+     *
+     * @throws Exception If failed.
+     */
+    public void testBatchLookup() throws Exception {
+        IgniteCache<Object, Object> cache = grid(0).getOrCreateCache(DEFAULT_CACHE_NAME);
+
+        Random r = new Random();
+
+        Set<Object> values = new HashSet<>();
+
+        for (int i = 0; i < CNT; ++i)
+            values.add(r.nextInt());
+
+        cache.getAll(values);
+    }
+
+    /**
+     * Tests that there are no calls of {@link CacheStoreSessionListener#onSessionStart(CacheStoreSession)} and
+     * {@link CacheStoreSessionListener#onSessionStart(CacheStoreSession)}
+     * while {@link IgniteCache#put(Object, Object)} performed.
+     *
+     * @throws Exception If failed.
+     */
+    public void testUpdate() throws Exception {
+        IgniteCache<Object, Object> cache = grid(0).getOrCreateCache(DEFAULT_CACHE_NAME);
+
+        Random r = new Random();
+
+        for (int i = 0; i < CNT; ++i)
+            cache.put(r.nextInt(), "test-value");
+    }
+
+    /**
+     * Tests that there are no calls of {@link CacheStoreSessionListener#onSessionStart(CacheStoreSession)} and
+     * {@link CacheStoreSessionListener#onSessionStart(CacheStoreSession)}
+     * while {@link IgniteCache#putAll(Map)} performed.
+     *
+     * @throws Exception If failed.
+     */
+    public void testBatchUpdate() throws Exception {
+        IgniteCache<Object, Object> cache = grid(0).getOrCreateCache(DEFAULT_CACHE_NAME);
+
+        Random r = new Random();
+
+        Map<Object, Object> values = new TreeMap<>();
+
+        for (int i = 0; i < CNT; ++i)
+            values.put(r.nextInt(), "test-value");
+
+        cache.putAll(values);
+    }
+
+    /**
+     * Tests that there are no calls of {@link CacheStoreSessionListener#onSessionStart(CacheStoreSession)} and
+     * {@link CacheStoreSessionListener#onSessionStart(CacheStoreSession)}
+     * while {@link IgniteCache#remove(Object)} performed.
+     *
+     * @throws Exception If failed.
+     */
+    public void testRemove() throws Exception {
+        IgniteCache<Object, Object> cache = grid(0).getOrCreateCache(DEFAULT_CACHE_NAME);
+
+        Random r = new Random();
+
+        for (int i = 0; i < CNT; ++i) {
+            int key = r.nextInt();
+
+            cache.put(key, "test-value");
+
+            cache.remove(key);
+        }
+    }
+
+    /**
+     * Tests that there are no calls of {@link CacheStoreSessionListener#onSessionStart(CacheStoreSession)} and
+     * {@link CacheStoreSessionListener#onSessionStart(CacheStoreSession)}
+     * while {@link IgniteCache#removeAll(Set)} performed.
+     *
+     * @throws Exception If failed.
+     */
+    public void testBatchRemove() throws Exception {
+        IgniteCache<Object, Object> cache = grid(0).getOrCreateCache(DEFAULT_CACHE_NAME);
+
+        Random r = new Random();
+
+        Set<Object> values = new HashSet<>();
+
+        for (int i = 0; i < CNT; ++i) {
+            int key = r.nextInt();
+
+            cache.put(key, "test-value");
+
+            values.add(key);
+        }
+
+        cache.removeAll(values);
+    }
+
+    /**
+     * Cache store session factory.
+     */
+    public static class CacheStoreSessionFactory implements Factory<TestCacheStoreSessionListener> {
+        /** {@inheritDoc} */
+        @Override public TestCacheStoreSessionListener create() {
+            TestCacheStoreSessionListener lsnr = new TestCacheStoreSessionListener();
+            lsnr.setDataSource(new DataSourceStub());
+            return lsnr;
+        }
+    }
+
+    /**
+     * Test cache store session listener.
+     */
+    public static class TestCacheStoreSessionListener extends CacheJdbcStoreSessionListener {
+        /** {@inheritDoc} */
+        @Override public void onSessionStart(CacheStoreSession ses) {
+            fail("TestCacheStoreSessionListener.onSessionStart(CacheStoreSession) should not be called.");
+        }
+
+        /** {@inheritDoc} */
+        @Override public void onSessionEnd(CacheStoreSession ses, boolean commit) {
+            fail("TestCacheStoreSessionListener.onSessionEnd(CacheStoreSession, boolean) should not be called.");
+        }
+    }
+
+    /** Empty cache store implementation. All overridden methods should not be called while the test is running. */
+    public static class EmptyCacheStore extends CacheStoreAdapter {
+        /** {@inheritDoc} */
+        @Override public Object load(Object key) throws CacheLoaderException {
+            fail("EmptyCacheStore.load(Object) should not be called.");
+
+            return null;
+        }
+
+        /** {@inheritDoc} */
+        @Override public void write(Cache.Entry entry) throws CacheWriterException {
+            fail("EmptyCacheStore.write(Cache.Entry) should not be called.");
+        }
+
+        /** {@inheritDoc} */
+        @Override public void delete(Object key) throws CacheWriterException {
+            fail("EmptyCacheStore.delete(Object) should not be called.");
+        }
+    }
+
+    /**
+     * Data source stub which should not be called.
+     */
+    public static class DataSourceStub implements DataSource, Serializable {
+        /** {@inheritDoc} */
+        @Override public Connection getConnection() throws SQLException {
+            throw new UnsupportedOperationException();
+        }
+
+        /** {@inheritDoc} */
+        @Override public Connection getConnection(String username, String password) throws SQLException {
+            throw new UnsupportedOperationException();
+        }
+
+        /** {@inheritDoc} */
+        @Override public <T> T unwrap(Class<T> iface) throws SQLException {
+            throw new UnsupportedOperationException();
+        }
+
+        /** {@inheritDoc} */
+        @Override public boolean isWrapperFor(Class<?> iface) throws SQLException {
+            throw new UnsupportedOperationException();
+        }
+
+        /** {@inheritDoc} */
+        @Override public PrintWriter getLogWriter() throws SQLException {
+            throw new UnsupportedOperationException();
+        }
+
+        /** {@inheritDoc} */
+        @Override public void setLogWriter(PrintWriter out) throws SQLException {
+            throw new UnsupportedOperationException();
+        }
+
+        /** {@inheritDoc} */
+        @Override public void setLoginTimeout(int seconds) throws SQLException {
+            throw new UnsupportedOperationException();
+        }
+
+        /** {@inheritDoc} */
+        @Override public int getLoginTimeout() throws SQLException {
+            throw new UnsupportedOperationException();
+        }
+
+        /** {@inheritDoc} */
+        @Override public Logger getParentLogger() throws SQLFeatureNotSupportedException {
+            throw new UnsupportedOperationException();
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/ignite/blob/c11fc411/modules/core/src/test/java/org/apache/ignite/cache/store/CacheStoreSessionListenerWriteBehindEnabled.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/cache/store/CacheStoreSessionListenerWriteBehindEnabled.java b/modules/core/src/test/java/org/apache/ignite/cache/store/CacheStoreSessionListenerWriteBehindEnabled.java
deleted file mode 100644
index fbb881e..0000000
--- a/modules/core/src/test/java/org/apache/ignite/cache/store/CacheStoreSessionListenerWriteBehindEnabled.java
+++ /dev/null
@@ -1,304 +0,0 @@
-/*
- * 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.cache.store;
-
-import java.io.PrintWriter;
-import java.io.Serializable;
-import java.sql.Connection;
-import java.sql.SQLException;
-import java.sql.SQLFeatureNotSupportedException;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.concurrent.atomic.AtomicInteger;
-import java.util.logging.Logger;
-import javax.cache.Cache;
-import javax.cache.configuration.Factory;
-import javax.cache.configuration.FactoryBuilder;
-import javax.cache.integration.CacheLoaderException;
-import javax.cache.integration.CacheWriterException;
-import javax.sql.DataSource;
-import org.apache.ignite.Ignite;
-import org.apache.ignite.IgniteCache;
-import org.apache.ignite.IgniteException;
-import org.apache.ignite.cache.store.jdbc.CacheJdbcStoreSessionListener;
-import org.apache.ignite.configuration.CacheConfiguration;
-import org.apache.ignite.internal.processors.cache.GridCacheAbstractSelfTest;
-import org.apache.ignite.internal.processors.cache.store.GridCacheWriteBehindStore;
-import org.apache.ignite.resources.IgniteInstanceResource;
-
-/**
- * This class tests that calls of {@link CacheStoreSessionListener#onSessionStart(CacheStoreSession)}
- * and {@link CacheStoreSessionListener#onSessionEnd(CacheStoreSession, boolean)} are executed from
- * {@link GridCacheWriteBehindStore} only.
- */
-public class CacheStoreSessionListenerWriteBehindEnabled extends GridCacheAbstractSelfTest {
-    /** */
-    protected final static int CNT = 100;
-
-    /** */
-    private final static int WRITE_BEHIND_FLUSH_FREQUENCY = 1000;
-
-    /** */
-    private static final List<OperationType> operations = Collections.synchronizedList(new ArrayList<OperationType>());
-
-    /** */
-    private static final AtomicInteger entryCnt = new AtomicInteger();
-
-    /** {@inheritDoc} */
-    @Override protected int gridCount() {
-        return 1;
-    }
-
-    /** {@inheritDoc} */
-    @Override protected CacheConfiguration cacheConfiguration(String igniteInstanceName) throws Exception {
-        CacheConfiguration cacheCfg = super.cacheConfiguration(igniteInstanceName);
-
-        cacheCfg.setCacheStoreFactory(FactoryBuilder.factoryOf(EmptyCacheStore.class));
-
-        cacheCfg.setCacheStoreSessionListenerFactories(new CacheStoreSessionFactory());
-
-        cacheCfg.setReadThrough(true);
-        cacheCfg.setWriteThrough(true);
-
-        cacheCfg.setWriteBehindEnabled(true);
-        cacheCfg.setWriteBehindBatchSize(CNT * 2);
-        cacheCfg.setWriteBehindFlushFrequency(WRITE_BEHIND_FLUSH_FREQUENCY);
-
-        cacheCfg.setBackups(0);
-
-        return cacheCfg;
-    }
-
-    /** {@inheritDoc} */
-    @Override protected void beforeTest() throws Exception {
-        super.beforeTest();
-
-        operations.clear();
-
-        entryCnt.set(0);
-    }
-
-    /**
-     * Tests that there are no redundant calls of {@link CacheStoreSessionListener#onSessionStart(CacheStoreSession)}
-     * while {@link IgniteCache#get(Object)} performed.
-     */
-    public void testLookup() {
-        IgniteCache<Object, Object> cache = grid(0).getOrCreateCache(DEFAULT_CACHE_NAME);
-
-        for (int i = 0; i < CNT; ++i)
-            cache.get(i);
-
-        checkSessionCounters(CNT);
-    }
-
-    /**
-     * Tests that there are no redundant calls of {@link CacheStoreSessionListener#onSessionStart(CacheStoreSession)}
-     * while {@link IgniteCache#put(Object, Object)} performed.
-     */
-    public void testUpdate() {
-        IgniteCache<Object, Object> cache = grid(0).getOrCreateCache(DEFAULT_CACHE_NAME);
-
-        for (int i = 0; i < CNT; ++i)
-            cache.put(i, i);
-
-        checkSessionCounters(1);
-    }
-
-    /**
-     * Tests that there are no redundant calls of {@link CacheStoreSessionListener#onSessionStart(CacheStoreSession)}
-     * while {@link IgniteCache#remove(Object)} performed.
-     */
-    public void testRemove() {
-        IgniteCache<Object, Object> cache = grid(0).getOrCreateCache(DEFAULT_CACHE_NAME);
-
-        for (int i = 0; i < CNT; ++i) {
-            cache.remove(i);
-        }
-
-        checkSessionCounters(1);
-    }
-
-    /**
-     * @param startedSessions Number of expected sessions.
-     */
-    private void checkSessionCounters(int startedSessions) {
-        try {
-            // Wait for GridCacheWriteBehindStore
-            Thread.sleep(WRITE_BEHIND_FLUSH_FREQUENCY * 4);
-
-            assertEquals(CNT, entryCnt.get());
-
-            checkOpCount(operations, OperationType.SESSION_START, startedSessions);
-
-            checkOpCount(operations, OperationType.SESSION_END, startedSessions);
-        }
-        catch (InterruptedException e) {
-            throw new IgniteException("Failed to wait for the GridCacheWriteBehindStore due to interruption.", e);
-        }
-    }
-
-    /**
-     * @param operations List of {@link OperationType}.
-     * @param op Operation.
-     * @param expected Expected number of operations for the given {@code op}.
-     */
-    private void checkOpCount(List<OperationType> operations, OperationType op, int expected) {
-        int n = 0;
-
-        for (OperationType o : operations) {
-            if (op.equals(o))
-                ++n;
-        }
-
-        assertEquals("Operation=" + op.name(), expected, n);
-    }
-
-    /**
-     * Operation type.
-     */
-    public enum OperationType {
-        /**
-         * Cache store session started.
-         */
-        SESSION_START,
-
-        /**
-         * Cache store session ended.
-         */
-        SESSION_END,
-    }
-
-    /**
-     * Cache store session factory.
-     */
-    public static class CacheStoreSessionFactory implements Factory<TestCacheStoreSessionListener> {
-        /** {@inheritDoc} */
-        @Override public TestCacheStoreSessionListener create() {
-            TestCacheStoreSessionListener lsnr = new TestCacheStoreSessionListener();
-            lsnr.setDataSource(new DataSourceStub());
-            return lsnr;
-        }
-    }
-
-    /**
-     * Test cache store session listener.
-     */
-    public static class TestCacheStoreSessionListener extends CacheJdbcStoreSessionListener {
-        /** */
-        @IgniteInstanceResource
-        private Ignite ignite;
-
-        /** {@inheritDoc} */
-        @Override public void onSessionStart(CacheStoreSession ses) {
-            operations.add(OperationType.SESSION_START);
-        }
-
-        /** {@inheritDoc} */
-        @Override public void onSessionEnd(CacheStoreSession ses, boolean commit) {
-            operations.add(OperationType.SESSION_END);
-        }
-    }
-
-    /**
-     * Test cache store.
-     *
-     * {@link EmptyCacheStore#writeAll(Collection)} and {@link EmptyCacheStore#deleteAll(Collection)} should be called
-     * by {@link GridCacheWriteBehindStore}.
-     */
-    public static class EmptyCacheStore extends CacheStoreAdapter<Object, Object> {
-        /** */
-        @IgniteInstanceResource
-        private Ignite ignite;
-
-        /** {@inheritDoc} */
-        @Override public Object load(Object key) throws CacheLoaderException {
-            entryCnt.getAndIncrement();
-            return null;
-        }
-
-        /** {@inheritDoc} */
-        @Override public void writeAll(Collection<Cache.Entry<?, ?>> entries) {
-            entryCnt.addAndGet(entries.size());
-        }
-
-        /** {@inheritDoc} */
-        @Override public void write(Cache.Entry entry) throws CacheWriterException {
-        }
-
-        /** {@inheritDoc} */
-        @Override public void deleteAll(Collection<?> keys) {
-            entryCnt.addAndGet(keys.size());
-        }
-
-        /** {@inheritDoc} */
-        @Override public void delete(Object key) throws CacheWriterException {
-        }
-    }
-
-    /**
-     * Data source stub which should not be called.
-     */
-    public static class DataSourceStub implements DataSource, Serializable {
-        /** {@inheritDoc} */
-        @Override public Connection getConnection() throws SQLException {
-            throw new UnsupportedOperationException();
-        }
-
-        /** {@inheritDoc} */
-        @Override public Connection getConnection(String username, String password) throws SQLException {
-            throw new UnsupportedOperationException();
-        }
-
-        /** {@inheritDoc} */
-        @Override public <T> T unwrap(Class<T> iface) throws SQLException {
-            throw new UnsupportedOperationException();
-        }
-
-        /** {@inheritDoc} */
-        @Override public boolean isWrapperFor(Class<?> iface) throws SQLException {
-            throw new UnsupportedOperationException();
-        }
-
-        /** {@inheritDoc} */
-        @Override public PrintWriter getLogWriter() throws SQLException {
-            throw new UnsupportedOperationException();
-        }
-
-        /** {@inheritDoc} */
-        @Override public void setLogWriter(PrintWriter out) throws SQLException {
-            throw new UnsupportedOperationException();
-        }
-
-        /** {@inheritDoc} */
-        @Override public void setLoginTimeout(int seconds) throws SQLException {
-            throw new UnsupportedOperationException();
-        }
-
-        /** {@inheritDoc} */
-        @Override public int getLoginTimeout() throws SQLException {
-            throw new UnsupportedOperationException();
-        }
-
-        /** {@inheritDoc} */
-        @Override public Logger getParentLogger() throws SQLFeatureNotSupportedException {
-            throw new UnsupportedOperationException();
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/ignite/blob/c11fc411/modules/core/src/test/java/org/apache/ignite/cache/store/CacheStoreSessionListenerWriteBehindEnabledTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/cache/store/CacheStoreSessionListenerWriteBehindEnabledTest.java b/modules/core/src/test/java/org/apache/ignite/cache/store/CacheStoreSessionListenerWriteBehindEnabledTest.java
new file mode 100644
index 0000000..b9095d0
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/cache/store/CacheStoreSessionListenerWriteBehindEnabledTest.java
@@ -0,0 +1,304 @@
+/*
+ * 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.cache.store;
+
+import java.io.PrintWriter;
+import java.io.Serializable;
+import java.sql.Connection;
+import java.sql.SQLException;
+import java.sql.SQLFeatureNotSupportedException;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.concurrent.atomic.AtomicInteger;
+import java.util.logging.Logger;
+import javax.cache.Cache;
+import javax.cache.configuration.Factory;
+import javax.cache.configuration.FactoryBuilder;
+import javax.cache.integration.CacheLoaderException;
+import javax.cache.integration.CacheWriterException;
+import javax.sql.DataSource;
+import org.apache.ignite.Ignite;
+import org.apache.ignite.IgniteCache;
+import org.apache.ignite.IgniteException;
+import org.apache.ignite.cache.store.jdbc.CacheJdbcStoreSessionListener;
+import org.apache.ignite.configuration.CacheConfiguration;
+import org.apache.ignite.internal.processors.cache.GridCacheAbstractSelfTest;
+import org.apache.ignite.internal.processors.cache.store.GridCacheWriteBehindStore;
+import org.apache.ignite.resources.IgniteInstanceResource;
+
+/**
+ * This class tests that calls of {@link CacheStoreSessionListener#onSessionStart(CacheStoreSession)}
+ * and {@link CacheStoreSessionListener#onSessionEnd(CacheStoreSession, boolean)} are executed from
+ * {@link GridCacheWriteBehindStore} only.
+ */
+public class CacheStoreSessionListenerWriteBehindEnabledTest extends GridCacheAbstractSelfTest {
+    /** */
+    protected final static int CNT = 100;
+
+    /** */
+    private final static int WRITE_BEHIND_FLUSH_FREQUENCY = 1000;
+
+    /** */
+    private static final List<OperationType> operations = Collections.synchronizedList(new ArrayList<OperationType>());
+
+    /** */
+    private static final AtomicInteger entryCnt = new AtomicInteger();
+
+    /** {@inheritDoc} */
+    @Override protected int gridCount() {
+        return 1;
+    }
+
+    /** {@inheritDoc} */
+    @Override protected CacheConfiguration cacheConfiguration(String igniteInstanceName) throws Exception {
+        CacheConfiguration cacheCfg = super.cacheConfiguration(igniteInstanceName);
+
+        cacheCfg.setCacheStoreFactory(FactoryBuilder.factoryOf(EmptyCacheStore.class));
+
+        cacheCfg.setCacheStoreSessionListenerFactories(new CacheStoreSessionFactory());
+
+        cacheCfg.setReadThrough(true);
+        cacheCfg.setWriteThrough(true);
+
+        cacheCfg.setWriteBehindEnabled(true);
+        cacheCfg.setWriteBehindBatchSize(CNT * 2);
+        cacheCfg.setWriteBehindFlushFrequency(WRITE_BEHIND_FLUSH_FREQUENCY);
+
+        cacheCfg.setBackups(0);
+
+        return cacheCfg;
+    }
+
+    /** {@inheritDoc} */
+    @Override protected void beforeTest() throws Exception {
+        super.beforeTest();
+
+        operations.clear();
+
+        entryCnt.set(0);
+    }
+
+    /**
+     * Tests that there are no redundant calls of {@link CacheStoreSessionListener#onSessionStart(CacheStoreSession)}
+     * while {@link IgniteCache#get(Object)} performed.
+     */
+    public void testLookup() {
+        IgniteCache<Object, Object> cache = grid(0).getOrCreateCache(DEFAULT_CACHE_NAME);
+
+        for (int i = 0; i < CNT; ++i)
+            cache.get(i);
+
+        checkSessionCounters(CNT);
+    }
+
+    /**
+     * Tests that there are no redundant calls of {@link CacheStoreSessionListener#onSessionStart(CacheStoreSession)}
+     * while {@link IgniteCache#put(Object, Object)} performed.
+     */
+    public void testUpdate() {
+        IgniteCache<Object, Object> cache = grid(0).getOrCreateCache(DEFAULT_CACHE_NAME);
+
+        for (int i = 0; i < CNT; ++i)
+            cache.put(i, i);
+
+        checkSessionCounters(1);
+    }
+
+    /**
+     * Tests that there are no redundant calls of {@link CacheStoreSessionListener#onSessionStart(CacheStoreSession)}
+     * while {@link IgniteCache#remove(Object)} performed.
+     */
+    public void testRemove() {
+        IgniteCache<Object, Object> cache = grid(0).getOrCreateCache(DEFAULT_CACHE_NAME);
+
+        for (int i = 0; i < CNT; ++i) {
+            cache.remove(i);
+        }
+
+        checkSessionCounters(1);
+    }
+
+    /**
+     * @param startedSessions Number of expected sessions.
+     */
+    private void checkSessionCounters(int startedSessions) {
+        try {
+            // Wait for GridCacheWriteBehindStore
+            Thread.sleep(WRITE_BEHIND_FLUSH_FREQUENCY * 4);
+
+            assertEquals(CNT, entryCnt.get());
+
+            checkOpCount(operations, OperationType.SESSION_START, startedSessions);
+
+            checkOpCount(operations, OperationType.SESSION_END, startedSessions);
+        }
+        catch (InterruptedException e) {
+            throw new IgniteException("Failed to wait for the GridCacheWriteBehindStore due to interruption.", e);
+        }
+    }
+
+    /**
+     * @param operations List of {@link OperationType}.
+     * @param op Operation.
+     * @param expected Expected number of operations for the given {@code op}.
+     */
+    private void checkOpCount(List<OperationType> operations, OperationType op, int expected) {
+        int n = 0;
+
+        for (OperationType o : operations) {
+            if (op.equals(o))
+                ++n;
+        }
+
+        assertEquals("Operation=" + op.name(), expected, n);
+    }
+
+    /**
+     * Operation type.
+     */
+    public enum OperationType {
+        /**
+         * Cache store session started.
+         */
+        SESSION_START,
+
+        /**
+         * Cache store session ended.
+         */
+        SESSION_END,
+    }
+
+    /**
+     * Cache store session factory.
+     */
+    public static class CacheStoreSessionFactory implements Factory<TestCacheStoreSessionListener> {
+        /** {@inheritDoc} */
+        @Override public TestCacheStoreSessionListener create() {
+            TestCacheStoreSessionListener lsnr = new TestCacheStoreSessionListener();
+            lsnr.setDataSource(new DataSourceStub());
+            return lsnr;
+        }
+    }
+
+    /**
+     * Test cache store session listener.
+     */
+    public static class TestCacheStoreSessionListener extends CacheJdbcStoreSessionListener {
+        /** */
+        @IgniteInstanceResource
+        private Ignite ignite;
+
+        /** {@inheritDoc} */
+        @Override public void onSessionStart(CacheStoreSession ses) {
+            operations.add(OperationType.SESSION_START);
+        }
+
+        /** {@inheritDoc} */
+        @Override public void onSessionEnd(CacheStoreSession ses, boolean commit) {
+            operations.add(OperationType.SESSION_END);
+        }
+    }
+
+    /**
+     * Test cache store.
+     *
+     * {@link EmptyCacheStore#writeAll(Collection)} and {@link EmptyCacheStore#deleteAll(Collection)} should be called
+     * by {@link GridCacheWriteBehindStore}.
+     */
+    public static class EmptyCacheStore extends CacheStoreAdapter<Object, Object> {
+        /** */
+        @IgniteInstanceResource
+        private Ignite ignite;
+
+        /** {@inheritDoc} */
+        @Override public Object load(Object key) throws CacheLoaderException {
+            entryCnt.getAndIncrement();
+            return null;
+        }
+
+        /** {@inheritDoc} */
+        @Override public void writeAll(Collection<Cache.Entry<?, ?>> entries) {
+            entryCnt.addAndGet(entries.size());
+        }
+
+        /** {@inheritDoc} */
+        @Override public void write(Cache.Entry entry) throws CacheWriterException {
+        }
+
+        /** {@inheritDoc} */
+        @Override public void deleteAll(Collection<?> keys) {
+            entryCnt.addAndGet(keys.size());
+        }
+
+        /** {@inheritDoc} */
+        @Override public void delete(Object key) throws CacheWriterException {
+        }
+    }
+
+    /**
+     * Data source stub which should not be called.
+     */
+    public static class DataSourceStub implements DataSource, Serializable {
+        /** {@inheritDoc} */
+        @Override public Connection getConnection() throws SQLException {
+            throw new UnsupportedOperationException();
+        }
+
+        /** {@inheritDoc} */
+        @Override public Connection getConnection(String username, String password) throws SQLException {
+            throw new UnsupportedOperationException();
+        }
+
+        /** {@inheritDoc} */
+        @Override public <T> T unwrap(Class<T> iface) throws SQLException {
+            throw new UnsupportedOperationException();
+        }
+
+        /** {@inheritDoc} */
+        @Override public boolean isWrapperFor(Class<?> iface) throws SQLException {
+            throw new UnsupportedOperationException();
+        }
+
+        /** {@inheritDoc} */
+        @Override public PrintWriter getLogWriter() throws SQLException {
+            throw new UnsupportedOperationException();
+        }
+
+        /** {@inheritDoc} */
+        @Override public void setLogWriter(PrintWriter out) throws SQLException {
+            throw new UnsupportedOperationException();
+        }
+
+        /** {@inheritDoc} */
+        @Override public void setLoginTimeout(int seconds) throws SQLException {
+            throw new UnsupportedOperationException();
+        }
+
+        /** {@inheritDoc} */
+        @Override public int getLoginTimeout() throws SQLException {
+            throw new UnsupportedOperationException();
+        }
+
+        /** {@inheritDoc} */
+        @Override public Logger getParentLogger() throws SQLFeatureNotSupportedException {
+            throw new UnsupportedOperationException();
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/ignite/blob/c11fc411/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 e4930e0..ba7aa1b 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
@@ -18,9 +18,9 @@
 package org.apache.ignite.testsuites;
 
 import junit.framework.TestSuite;
-import org.apache.ignite.cache.store.CacheStoreListenerRWThroughDisabledAtomicCache;
-import org.apache.ignite.cache.store.CacheStoreListenerRWThroughDisabledTransactionalCache;
-import org.apache.ignite.cache.store.CacheStoreSessionListenerWriteBehindEnabled;
+import org.apache.ignite.cache.store.CacheStoreListenerRWThroughDisabledAtomicCacheTest;
+import org.apache.ignite.cache.store.CacheStoreListenerRWThroughDisabledTransactionalCacheTest;
+import org.apache.ignite.cache.store.CacheStoreSessionListenerWriteBehindEnabledTest;
 import org.apache.ignite.cache.store.jdbc.CacheJdbcStoreSessionListenerSelfTest;
 import org.apache.ignite.internal.processors.GridCacheTxLoadFromStoreOnLockSelfTest;
 import org.apache.ignite.internal.processors.cache.CacheClientStoreSelfTest;
@@ -279,9 +279,9 @@ public class IgniteCacheTestSuite4 extends TestSuite {
         suite.addTestSuite(CacheOffheapMapEntrySelfTest.class);
 
         suite.addTestSuite(CacheJdbcStoreSessionListenerSelfTest.class);
-        suite.addTestSuite(CacheStoreListenerRWThroughDisabledAtomicCache.class);
-        suite.addTestSuite(CacheStoreListenerRWThroughDisabledTransactionalCache.class);
-        suite.addTestSuite(CacheStoreSessionListenerWriteBehindEnabled.class);
+        suite.addTestSuite(CacheStoreListenerRWThroughDisabledAtomicCacheTest.class);
+        suite.addTestSuite(CacheStoreListenerRWThroughDisabledTransactionalCacheTest.class);
+        suite.addTestSuite(CacheStoreSessionListenerWriteBehindEnabledTest.class);
 
         suite.addTestSuite(CacheClientStoreSelfTest.class);
         suite.addTestSuite(CacheStoreUsageMultinodeStaticStartAtomicTest.class);