You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by vo...@apache.org on 2015/09/22 17:01:40 UTC

[06/51] [partial] ignite git commit: IGNITE-1513: Finalized build procedure.

http://git-wip-us.apache.org/repos/asf/ignite/blob/f0bac562/modules/platform/src/test/dotnet/Apache.Ignite.Core.Tests/Cache/Query/Continuous/ContinuousQueryAbstractTest.cs
----------------------------------------------------------------------
diff --git a/modules/platform/src/test/dotnet/Apache.Ignite.Core.Tests/Cache/Query/Continuous/ContinuousQueryAbstractTest.cs b/modules/platform/src/test/dotnet/Apache.Ignite.Core.Tests/Cache/Query/Continuous/ContinuousQueryAbstractTest.cs
deleted file mode 100644
index e0dcdaa..0000000
--- a/modules/platform/src/test/dotnet/Apache.Ignite.Core.Tests/Cache/Query/Continuous/ContinuousQueryAbstractTest.cs
+++ /dev/null
@@ -1,1181 +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.
- */
-
-namespace Apache.Ignite.Core.Tests.Cache.Query.Continuous
-{
-    using System;
-    using System.Collections.Concurrent;
-    using System.Collections.Generic;
-    using System.Diagnostics.CodeAnalysis;
-    using System.Linq;
-    using System.Runtime.Serialization;
-    using System.Threading;
-    using Apache.Ignite.Core.Cache;
-    using Apache.Ignite.Core.Cache.Event;
-    using Apache.Ignite.Core.Cache.Query;
-    using Apache.Ignite.Core.Cache.Query.Continuous;
-    using Apache.Ignite.Core.Cluster;
-    using Apache.Ignite.Core.Common;
-    using Apache.Ignite.Core.Impl;
-    using Apache.Ignite.Core.Portable;
-    using Apache.Ignite.Core.Resource;
-    using NUnit.Framework;
-    using CQU = Apache.Ignite.Core.Impl.Cache.Query.Continuous.ContinuousQueryUtils;
-
-    /// <summary>
-    /// Tests for continuous query.
-    /// </summary>
-    [SuppressMessage("ReSharper", "InconsistentNaming")]
-    [SuppressMessage("ReSharper", "PossibleNullReferenceException")]
-    [SuppressMessage("ReSharper", "StaticMemberInGenericType")]
-    public abstract class ContinuousQueryAbstractTest
-    {
-        /** Cache name: ATOMIC, backup. */
-        protected const string CACHE_ATOMIC_BACKUP = "atomic_backup";
-
-        /** Cache name: ATOMIC, no backup. */
-        protected const string CACHE_ATOMIC_NO_BACKUP = "atomic_no_backup";
-
-        /** Cache name: TRANSACTIONAL, backup. */
-        protected const string CACHE_TX_BACKUP = "transactional_backup";
-
-        /** Cache name: TRANSACTIONAL, no backup. */
-        protected const string CACHE_TX_NO_BACKUP = "transactional_no_backup";
-
-        /** Listener events. */
-        public static BlockingCollection<CallbackEvent> CB_EVTS = new BlockingCollection<CallbackEvent>();
-
-        /** Listener events. */
-        public static BlockingCollection<FilterEvent> FILTER_EVTS = new BlockingCollection<FilterEvent>();
-
-        /** First node. */
-        private IIgnite grid1;
-
-        /** Second node. */
-        private IIgnite grid2;
-
-        /** Cache on the first node. */
-        private ICache<int, PortableEntry> cache1;
-
-        /** Cache on the second node. */
-        private ICache<int, PortableEntry> cache2;
-
-        /** Cache name. */
-        private readonly string cacheName;
-        
-        /// <summary>
-        /// Constructor.
-        /// </summary>
-        /// <param name="cacheName">Cache name.</param>
-        protected ContinuousQueryAbstractTest(string cacheName)
-        {
-            this.cacheName = cacheName;
-        }
-
-        /// <summary>
-        /// Set-up routine.
-        /// </summary>
-        [TestFixtureSetUp]
-        public void SetUp()
-        {
-            GC.Collect();
-            TestUtils.JvmDebug = true;
-
-            IgniteConfigurationEx cfg = new IgniteConfigurationEx();
-
-            PortableConfiguration portCfg = new PortableConfiguration();
-
-            ICollection<PortableTypeConfiguration> portTypeCfgs = new List<PortableTypeConfiguration>();
-
-            portTypeCfgs.Add(new PortableTypeConfiguration(typeof(PortableEntry)));
-            portTypeCfgs.Add(new PortableTypeConfiguration(typeof(PortableFilter)));
-            portTypeCfgs.Add(new PortableTypeConfiguration(typeof(KeepPortableFilter)));
-
-            portCfg.TypeConfigurations = portTypeCfgs;
-
-            cfg.PortableConfiguration = portCfg;
-            cfg.JvmClasspath = TestUtils.CreateTestClasspath();
-            cfg.JvmOptions = TestUtils.TestJavaOptions();
-            cfg.SpringConfigUrl = "config\\cache-query-continuous.xml";
-
-            cfg.GridName = "grid-1";
-            grid1 = Ignition.Start(cfg);
-            cache1 = grid1.GetCache<int, PortableEntry>(cacheName);
-
-            cfg.GridName = "grid-2";
-            grid2 = Ignition.Start(cfg);
-            cache2 = grid2.GetCache<int, PortableEntry>(cacheName);
-        }
-
-        /// <summary>
-        /// Tear-down routine.
-        /// </summary>
-        [TestFixtureTearDown]
-        public void TearDown()
-        {
-            Ignition.StopAll(true);
-        }
-
-        /// <summary>
-        /// Before-test routine.
-        /// </summary>
-        [SetUp]
-        public void BeforeTest()
-        {
-            CB_EVTS = new BlockingCollection<CallbackEvent>();
-            FILTER_EVTS = new BlockingCollection<FilterEvent>();
-
-            AbstractFilter<PortableEntry>.res = true;
-            AbstractFilter<PortableEntry>.err = false;
-            AbstractFilter<PortableEntry>.marshErr = false;
-            AbstractFilter<PortableEntry>.unmarshErr = false;
-
-            cache1.Remove(PrimaryKey(cache1));
-            cache1.Remove(PrimaryKey(cache2));
-
-            Assert.AreEqual(0, cache1.GetSize());
-            Assert.AreEqual(0, cache2.GetSize());
-
-            Console.WriteLine("Test started: " + TestContext.CurrentContext.Test.Name);
-        }
-        
-        /// <summary>
-        /// Test arguments validation.
-        /// </summary>
-        [Test]
-        public void TestValidation()
-        {
-            Assert.Throws<ArgumentException>(() => { cache1.QueryContinuous(new ContinuousQuery<int, PortableEntry>(null)); });
-        }
-
-        /// <summary>
-        /// Test multiple closes.
-        /// </summary>
-        [Test]
-        public void TestMultipleClose()
-        {
-            int key1 = PrimaryKey(cache1);
-            int key2 = PrimaryKey(cache2);
-
-            ContinuousQuery<int, PortableEntry> qry =
-                new ContinuousQuery<int, PortableEntry>(new Listener<PortableEntry>());
-
-            IDisposable qryHnd;
-
-            using (qryHnd = cache1.QueryContinuous(qry))
-            {
-                // Put from local node.
-                cache1.GetAndPut(key1, Entry(key1));
-                CheckCallbackSingle(key1, null, Entry(key1));
-
-                // Put from remote node.
-                cache2.GetAndPut(key2, Entry(key2));
-                CheckCallbackSingle(key2, null, Entry(key2));
-            }
-
-            qryHnd.Dispose();
-        }
-
-        /// <summary>
-        /// Test regular callback operations.
-        /// </summary>
-        [Test]
-        public void TestCallback()
-        {
-            CheckCallback(false);
-        }
-
-        /// <summary>
-        /// Check regular callback execution.
-        /// </summary>
-        /// <param name="loc"></param>
-        protected void CheckCallback(bool loc)
-        {
-            int key1 = PrimaryKey(cache1);
-            int key2 = PrimaryKey(cache2);
-            
-            ContinuousQuery<int, PortableEntry> qry = loc ?
-                new ContinuousQuery<int, PortableEntry>(new Listener<PortableEntry>(), true) :
-                new ContinuousQuery<int, PortableEntry>(new Listener<PortableEntry>());
-
-            using (cache1.QueryContinuous(qry))
-            {
-                // Put from local node.
-                cache1.GetAndPut(key1, Entry(key1));
-                CheckCallbackSingle(key1, null, Entry(key1));
-
-                cache1.GetAndPut(key1, Entry(key1 + 1));
-                CheckCallbackSingle(key1, Entry(key1), Entry(key1 + 1));
-
-                cache1.Remove(key1);
-                CheckCallbackSingle(key1, Entry(key1 + 1), null);
-
-                // Put from remote node.
-                cache2.GetAndPut(key2, Entry(key2));
-
-                if (loc)
-                    CheckNoCallback(100);
-                else
-                    CheckCallbackSingle(key2, null, Entry(key2));
-
-                cache1.GetAndPut(key2, Entry(key2 + 1));
-
-                if (loc)
-                    CheckNoCallback(100);
-                else
-                    CheckCallbackSingle(key2, Entry(key2), Entry(key2 + 1));
-
-                cache1.Remove(key2);
-
-                if (loc)
-                    CheckNoCallback(100);
-                else
-                    CheckCallbackSingle(key2, Entry(key2 + 1), null);
-            }
-
-            cache1.Put(key1, Entry(key1));
-            CheckNoCallback(100);
-
-            cache1.Put(key2, Entry(key2));
-            CheckNoCallback(100);
-        } 
-        
-        /// <summary>
-        /// Test Ignite injection into callback.
-        /// </summary>
-        [Test]
-        public void TestCallbackInjection()
-        {
-            Listener<PortableEntry> cb = new Listener<PortableEntry>();
-
-            Assert.IsNull(cb.ignite);
-
-            using (cache1.QueryContinuous(new ContinuousQuery<int, PortableEntry>(cb)))
-            {
-                Assert.IsNotNull(cb.ignite);
-            }
-        }
-        
-        /// <summary>
-        /// Test portable filter logic.
-        /// </summary>
-        [Test]
-        public void TestFilterPortable()
-        {
-            CheckFilter(true, false);
-        }
-
-        /// <summary>
-        /// Test serializable filter logic.
-        /// </summary>
-        [Test]
-        public void TestFilterSerializable()
-        {
-            CheckFilter(false, false);
-        }
-
-        /// <summary>
-        /// Check filter.
-        /// </summary>
-        /// <param name="portable">Portable.</param>
-        /// <param name="loc">Local cache flag.</param>
-        protected void CheckFilter(bool portable, bool loc)
-        {
-            ICacheEntryEventListener<int, PortableEntry> lsnr = new Listener<PortableEntry>();
-            ICacheEntryEventFilter<int, PortableEntry> filter = 
-                portable ? (AbstractFilter<PortableEntry>)new PortableFilter() : new SerializableFilter();
-
-            ContinuousQuery<int, PortableEntry> qry = loc ? 
-                new ContinuousQuery<int, PortableEntry>(lsnr, filter, true) : 
-                new ContinuousQuery<int, PortableEntry>(lsnr, filter);
-
-            using (cache1.QueryContinuous(qry))
-            {
-                // Put from local node.
-                int key1 = PrimaryKey(cache1);
-                cache1.GetAndPut(key1, Entry(key1));
-                CheckFilterSingle(key1, null, Entry(key1));
-                CheckCallbackSingle(key1, null, Entry(key1));
-
-                // Put from remote node.
-                int key2 = PrimaryKey(cache2);
-                cache1.GetAndPut(key2, Entry(key2));
-
-                if (loc)
-                {
-                    CheckNoFilter(key2);
-                    CheckNoCallback(key2);
-                }
-                else
-                {
-                    CheckFilterSingle(key2, null, Entry(key2));
-                    CheckCallbackSingle(key2, null, Entry(key2));
-                }
-
-                AbstractFilter<PortableEntry>.res = false;
-
-                // Ignored put from local node.
-                cache1.GetAndPut(key1, Entry(key1 + 1));
-                CheckFilterSingle(key1, Entry(key1), Entry(key1 + 1));
-                CheckNoCallback(100);
-
-                // Ignored put from remote node.
-                cache1.GetAndPut(key2, Entry(key2 + 1));
-
-                if (loc)
-                    CheckNoFilter(100);
-                else
-                    CheckFilterSingle(key2, Entry(key2), Entry(key2 + 1));
-
-                CheckNoCallback(100);
-            }
-        }
-
-        /// <summary>
-        /// Test portable filter error during invoke.
-        /// </summary>
-        [Ignore("IGNITE-521")]
-        [Test]
-        public void TestFilterInvokeErrorPortable()
-        {
-            CheckFilterInvokeError(true);
-        }
-
-        /// <summary>
-        /// Test serializable filter error during invoke.
-        /// </summary>
-        [Ignore("IGNITE-521")]
-        [Test]
-        public void TestFilterInvokeErrorSerializable()
-        {
-            CheckFilterInvokeError(false);
-        }
-
-        /// <summary>
-        /// Check filter error handling logic during invoke.
-        /// </summary>
-        private void CheckFilterInvokeError(bool portable)
-        {
-            AbstractFilter<PortableEntry>.err = true;
-
-            ICacheEntryEventListener<int, PortableEntry> lsnr = new Listener<PortableEntry>();
-            ICacheEntryEventFilter<int, PortableEntry> filter =
-                portable ? (AbstractFilter<PortableEntry>) new PortableFilter() : new SerializableFilter();
-
-            ContinuousQuery<int, PortableEntry> qry = new ContinuousQuery<int, PortableEntry>(lsnr, filter);
-
-            using (cache1.QueryContinuous(qry))
-            {
-                // Put from local node.
-                try
-                {
-                    cache1.GetAndPut(PrimaryKey(cache1), Entry(1));
-
-                    Assert.Fail("Should not reach this place.");
-                }
-                catch (IgniteException)
-                {
-                    // No-op.
-                }
-                catch (Exception)
-                {
-                    Assert.Fail("Unexpected error.");
-                }
-
-                // Put from remote node.
-                try
-                {
-                    cache1.GetAndPut(PrimaryKey(cache2), Entry(1));
-
-                    Assert.Fail("Should not reach this place.");
-                }
-                catch (IgniteException)
-                {
-                    // No-op.
-                }
-                catch (Exception)
-                {
-                    Assert.Fail("Unexpected error.");
-                }
-            }
-        }
-
-        /// <summary>
-        /// Test portable filter marshalling error.
-        /// </summary>
-        [Test]
-        public void TestFilterMarshalErrorPortable()
-        {
-            CheckFilterMarshalError(true);
-        }
-
-        /// <summary>
-        /// Test serializable filter marshalling error.
-        /// </summary>
-        [Test]
-        public void TestFilterMarshalErrorSerializable()
-        {
-            CheckFilterMarshalError(false);
-        }
-
-        /// <summary>
-        /// Check filter marshal error handling.
-        /// </summary>
-        /// <param name="portable">Portable flag.</param>
-        private void CheckFilterMarshalError(bool portable)
-        {
-            AbstractFilter<PortableEntry>.marshErr = true;
-
-            ICacheEntryEventListener<int, PortableEntry> lsnr = new Listener<PortableEntry>();
-            ICacheEntryEventFilter<int, PortableEntry> filter =
-                portable ? (AbstractFilter<PortableEntry>)new PortableFilter() : new SerializableFilter();
-
-            ContinuousQuery<int, PortableEntry> qry = new ContinuousQuery<int, PortableEntry>(lsnr, filter);
-
-            Assert.Throws<Exception>(() =>
-            {
-                using (cache1.QueryContinuous(qry))
-                {
-                    // No-op.
-                }
-            });
-        }
-
-        /// <summary>
-        /// Test non-serializable filter error.
-        /// </summary>
-        [Test]
-        public void TestFilterNonSerializable()
-        {
-            CheckFilterNonSerializable(false);
-        }
-
-        /// <summary>
-        /// Test non-serializable filter behavior.
-        /// </summary>
-        /// <param name="loc"></param>
-        protected void CheckFilterNonSerializable(bool loc)
-        {
-            AbstractFilter<PortableEntry>.unmarshErr = true;
-
-            ICacheEntryEventListener<int, PortableEntry> lsnr = new Listener<PortableEntry>();
-            ICacheEntryEventFilter<int, PortableEntry> filter = new LocalFilter();
-
-            ContinuousQuery<int, PortableEntry> qry = loc
-                ? new ContinuousQuery<int, PortableEntry>(lsnr, filter, true)
-                : new ContinuousQuery<int, PortableEntry>(lsnr, filter);
-
-            if (loc)
-            {
-                using (cache1.QueryContinuous(qry))
-                {
-                    // Local put must be fine.
-                    int key1 = PrimaryKey(cache1);
-                    cache1.GetAndPut(key1, Entry(key1));
-                    CheckFilterSingle(key1, null, Entry(key1));
-                }
-            }
-            else
-            {
-                Assert.Throws<SerializationException>(() =>
-                {
-                    using (cache1.QueryContinuous(qry))
-                    {
-                        // No-op.
-                    }
-                });
-            }
-        }
-
-        /// <summary>
-        /// Test portable filter unmarshalling error.
-        /// </summary>
-        [Ignore("IGNITE-521")]
-        [Test]
-        public void TestFilterUnmarshalErrorPortable()
-        {
-            CheckFilterUnmarshalError(true);
-        }
-        
-        /// <summary>
-        /// Test serializable filter unmarshalling error.
-        /// </summary>
-        [Ignore("IGNITE-521")]
-        [Test]
-        public void TestFilterUnmarshalErrorSerializable()
-        {
-            CheckFilterUnmarshalError(false);
-        }
-
-        /// <summary>
-        /// Check filter unmarshal error handling.
-        /// </summary>
-        /// <param name="portable">Portable flag.</param>
-        private void CheckFilterUnmarshalError(bool portable)
-        {
-            AbstractFilter<PortableEntry>.unmarshErr = true;
-
-            ICacheEntryEventListener<int, PortableEntry> lsnr = new Listener<PortableEntry>();
-            ICacheEntryEventFilter<int, PortableEntry> filter =
-                portable ? (AbstractFilter<PortableEntry>)new PortableFilter() : new SerializableFilter();
-
-            ContinuousQuery<int, PortableEntry> qry = new ContinuousQuery<int, PortableEntry>(lsnr, filter);
-
-            using (cache1.QueryContinuous(qry))
-            {
-                // Local put must be fine.
-                int key1 = PrimaryKey(cache1);
-                cache1.GetAndPut(key1, Entry(key1));
-                CheckFilterSingle(key1, null, Entry(key1));
-                
-                // Remote put must fail.
-                try
-                {
-                    cache1.GetAndPut(PrimaryKey(cache2), Entry(1));
-
-                    Assert.Fail("Should not reach this place.");
-                }
-                catch (IgniteException)
-                {
-                    // No-op.
-                }
-                catch (Exception)
-                {
-                    Assert.Fail("Unexpected error.");
-                }
-            }
-        }
-
-        /// <summary>
-        /// Test Ignite injection into filters.
-        /// </summary>
-        [Test]
-        public void TestFilterInjection()
-        {
-            Listener<PortableEntry> cb = new Listener<PortableEntry>();
-            PortableFilter filter = new PortableFilter();
-
-            Assert.IsNull(filter.ignite);
-
-            using (cache1.QueryContinuous(new ContinuousQuery<int, PortableEntry>(cb, filter)))
-            {
-                // Local injection.
-                Assert.IsNotNull(filter.ignite);
-
-                // Remote injection.
-                cache1.GetAndPut(PrimaryKey(cache2), Entry(1));
-
-                FilterEvent evt;
-
-                Assert.IsTrue(FILTER_EVTS.TryTake(out evt, 500));
-
-                Assert.IsNotNull(evt.ignite);
-            }
-        }
-
-
-        /// <summary>
-        /// Test "keep-portable" scenario.
-        /// </summary>
-        [Test]
-        public void TestKeepPortable()
-        {
-            var cache = cache1.WithKeepPortable<int, IPortableObject>();
-
-            ContinuousQuery<int, IPortableObject> qry = new ContinuousQuery<int, IPortableObject>(
-                    new Listener<IPortableObject>(), new KeepPortableFilter());
-
-            using (cache.QueryContinuous(qry))
-            {
-                // 1. Local put.
-                cache1.GetAndPut(PrimaryKey(cache1), Entry(1));
-
-                CallbackEvent cbEvt;
-                FilterEvent filterEvt;
-
-                Assert.IsTrue(FILTER_EVTS.TryTake(out filterEvt, 500));
-                Assert.AreEqual(PrimaryKey(cache1), filterEvt.entry.Key);
-                Assert.AreEqual(null, filterEvt.entry.OldValue);
-                Assert.AreEqual(Entry(1), (filterEvt.entry.Value as IPortableObject)
-                    .Deserialize<PortableEntry>());
-
-                Assert.IsTrue(CB_EVTS.TryTake(out cbEvt, 500));
-                Assert.AreEqual(1, cbEvt.entries.Count);
-                Assert.AreEqual(PrimaryKey(cache1), cbEvt.entries.First().Key);
-                Assert.AreEqual(null, cbEvt.entries.First().OldValue);
-                Assert.AreEqual(Entry(1), (cbEvt.entries.First().Value as IPortableObject)
-                    .Deserialize<PortableEntry>());
-
-                // 2. Remote put.
-                cache1.GetAndPut(PrimaryKey(cache2), Entry(2));
-
-                Assert.IsTrue(FILTER_EVTS.TryTake(out filterEvt, 500));
-                Assert.AreEqual(PrimaryKey(cache2), filterEvt.entry.Key);
-                Assert.AreEqual(null, filterEvt.entry.OldValue);
-                Assert.AreEqual(Entry(2), (filterEvt.entry.Value as IPortableObject)
-                    .Deserialize<PortableEntry>());
-
-                Assert.IsTrue(CB_EVTS.TryTake(out cbEvt, 500));
-                Assert.AreEqual(1, cbEvt.entries.Count);
-                Assert.AreEqual(PrimaryKey(cache2), cbEvt.entries.First().Key);
-                Assert.AreEqual(null, cbEvt.entries.First().OldValue);
-                Assert.AreEqual(Entry(2),
-                    (cbEvt.entries.First().Value as IPortableObject).Deserialize<PortableEntry>());
-            }
-        }
-
-        /// <summary>
-        /// Test whether buffer size works fine.
-        /// </summary>
-        [Test]
-        public void TestBufferSize()
-        {
-            // Put two remote keys in advance.
-            List<int> rmtKeys = PrimaryKeys(cache2, 2);
-
-            ContinuousQuery<int, PortableEntry> qry = new ContinuousQuery<int, PortableEntry>(new Listener<PortableEntry>());
-
-            qry.BufferSize = 2;
-            qry.TimeInterval = TimeSpan.FromMilliseconds(1000000);
-
-            using (cache1.QueryContinuous(qry))
-            {
-                qry.BufferSize = 2;
-
-                cache1.GetAndPut(rmtKeys[0], Entry(rmtKeys[0]));
-
-                CheckNoCallback(100);
-                
-                cache1.GetAndPut(rmtKeys[1], Entry(rmtKeys[1]));
-                
-                CallbackEvent evt;
-
-                Assert.IsTrue(CB_EVTS.TryTake(out evt, 1000));
-
-                Assert.AreEqual(2, evt.entries.Count);
-
-                var entryRmt0 = evt.entries.Single(entry => { return entry.Key.Equals(rmtKeys[0]); });
-                var entryRmt1 = evt.entries.Single(entry => { return entry.Key.Equals(rmtKeys[1]); });
-
-                Assert.AreEqual(rmtKeys[0], entryRmt0.Key);
-                Assert.IsNull(entryRmt0.OldValue);
-                Assert.AreEqual(Entry(rmtKeys[0]), entryRmt0.Value);
-
-                Assert.AreEqual(rmtKeys[1], entryRmt1.Key);
-                Assert.IsNull(entryRmt1.OldValue);
-                Assert.AreEqual(Entry(rmtKeys[1]), entryRmt1.Value);
-            }
-
-            cache1.Remove(rmtKeys[0]);
-            cache1.Remove(rmtKeys[1]);
-        }
-
-        /// <summary>
-        /// Test whether timeout works fine.
-        /// </summary>
-        [Test]
-        public void TestTimeout()
-        {
-            int key1 = PrimaryKey(cache1);
-            int key2 = PrimaryKey(cache2);
-
-            ContinuousQuery<int, PortableEntry> qry =
-                new ContinuousQuery<int, PortableEntry>(new Listener<PortableEntry>());
-
-            qry.BufferSize = 2;
-            qry.TimeInterval = TimeSpan.FromMilliseconds(500);
-
-            using (cache1.QueryContinuous(qry))
-            {
-                // Put from local node.
-                cache1.GetAndPut(key1, Entry(key1));
-                CheckCallbackSingle(key1, null, Entry(key1));
-
-                // Put from remote node.
-                cache1.GetAndPut(key2, Entry(key2));
-                CheckNoCallback(100);
-                CheckCallbackSingle(key2, null, Entry(key2), 1000);
-            }
-        }
-
-        /// <summary>
-        /// Test whether nested Ignite API call from callback works fine.
-        /// </summary>
-        [Test]
-        public void TestNestedCallFromCallback()
-        {
-            var cache = cache1.WithKeepPortable<int, IPortableObject>();
-
-            int key = PrimaryKey(cache1);
-
-            NestedCallListener cb = new NestedCallListener();
-
-            using (cache.QueryContinuous(new ContinuousQuery<int, IPortableObject>(cb)))
-            {
-                cache1.GetAndPut(key, Entry(key));
-
-                cb.countDown.Wait();
-            }
-
-            cache.Remove(key);
-        }
-
-        /// <summary>
-        /// Tests the initial query.
-        /// </summary>
-        [Test]
-        public void TestInitialQuery()
-        {
-            // Scan query, GetAll
-            TestInitialQuery(new ScanQuery<int, PortableEntry>(new InitialQueryScanFilter()), cur => cur.GetAll());
-
-            // Scan query, iterator
-            TestInitialQuery(new ScanQuery<int, PortableEntry>(new InitialQueryScanFilter()), cur => cur.ToList());
-
-            // Sql query, GetAll
-            TestInitialQuery(new SqlQuery(typeof(PortableEntry), "val < 33"), cur => cur.GetAll());
-            
-            // Sql query, iterator
-            TestInitialQuery(new SqlQuery(typeof(PortableEntry), "val < 33"), cur => cur.ToList());
-
-            // Text query, GetAll
-            TestInitialQuery(new TextQuery(typeof(PortableEntry), "1*"), cur => cur.GetAll());
-            
-            // Text query, iterator
-            TestInitialQuery(new TextQuery(typeof(PortableEntry), "1*"), cur => cur.ToList());
-
-            // Test exception: invalid initial query
-            var ex = Assert.Throws<IgniteException>(
-                () => TestInitialQuery(new TextQuery(typeof (PortableEntry), "*"), cur => cur.GetAll()));
-
-            Assert.AreEqual("Cannot parse '*': '*' or '?' not allowed as first character in WildcardQuery", ex.Message);
-        }
-
-        /// <summary>
-        /// Tests the initial query.
-        /// </summary>
-        private void TestInitialQuery(QueryBase initialQry, Func<IQueryCursor<ICacheEntry<int, PortableEntry>>, 
-            IEnumerable<ICacheEntry<int, PortableEntry>>> getAllFunc)
-        {
-            var qry = new ContinuousQuery<int, PortableEntry>(new Listener<PortableEntry>());
-
-            cache1.Put(11, Entry(11));
-            cache1.Put(12, Entry(12));
-            cache1.Put(33, Entry(33));
-
-            try
-            {
-                IContinuousQueryHandle<ICacheEntry<int, PortableEntry>> contQry;
-                
-                using (contQry = cache1.QueryContinuous(qry, initialQry))
-                {
-                    // Check initial query
-                    var initialEntries =
-                        getAllFunc(contQry.GetInitialQueryCursor()).Distinct().OrderBy(x => x.Key).ToList();
-
-                    Assert.Throws<InvalidOperationException>(() => contQry.GetInitialQueryCursor());
-
-                    Assert.AreEqual(2, initialEntries.Count);
-
-                    for (int i = 0; i < initialEntries.Count; i++)
-                    {
-                        Assert.AreEqual(i + 11, initialEntries[i].Key);
-                        Assert.AreEqual(i + 11, initialEntries[i].Value.val);
-                    }
-
-                    // Check continuous query
-                    cache1.Put(44, Entry(44));
-                    CheckCallbackSingle(44, null, Entry(44));
-                }
-
-                Assert.Throws<ObjectDisposedException>(() => contQry.GetInitialQueryCursor());
-
-                contQry.Dispose();  // multiple dispose calls are ok
-            }
-            finally
-            {
-                cache1.Clear();
-            }
-        }
-
-        /// <summary>
-        /// Check single filter event.
-        /// </summary>
-        /// <param name="expKey">Expected key.</param>
-        /// <param name="expOldVal">Expected old value.</param>
-        /// <param name="expVal">Expected value.</param>
-        private void CheckFilterSingle(int expKey, PortableEntry expOldVal, PortableEntry expVal)
-        {
-            CheckFilterSingle(expKey, expOldVal, expVal, 1000);
-        }
-
-        /// <summary>
-        /// Check single filter event.
-        /// </summary>
-        /// <param name="expKey">Expected key.</param>
-        /// <param name="expOldVal">Expected old value.</param>
-        /// <param name="expVal">Expected value.</param>
-        /// <param name="timeout">Timeout.</param>
-        private void CheckFilterSingle(int expKey, PortableEntry expOldVal, PortableEntry expVal, int timeout)
-        {
-            FilterEvent evt;
-
-            Assert.IsTrue(FILTER_EVTS.TryTake(out evt, timeout));
-
-            Assert.AreEqual(expKey, evt.entry.Key);
-            Assert.AreEqual(expOldVal, evt.entry.OldValue);
-            Assert.AreEqual(expVal, evt.entry.Value);
-        }
-
-        /// <summary>
-        /// Ensure that no filter events are logged.
-        /// </summary>
-        /// <param name="timeout">Timeout.</param>
-        private void CheckNoFilter(int timeout)
-        {
-            FilterEvent evt;
-
-            Assert.IsFalse(FILTER_EVTS.TryTake(out evt, timeout));
-        }
-
-        /// <summary>
-        /// Check single callback event.
-        /// </summary>
-        /// <param name="expKey">Expected key.</param>
-        /// <param name="expOldVal">Expected old value.</param>
-        /// <param name="expVal">Expected new value.</param>
-        private void CheckCallbackSingle(int expKey, PortableEntry expOldVal, PortableEntry expVal)
-        {
-            CheckCallbackSingle(expKey, expOldVal, expVal, 1000);
-        }
-
-        /// <summary>
-        /// Check single callback event.
-        /// </summary>
-        /// <param name="expKey">Expected key.</param>
-        /// <param name="expOldVal">Expected old value.</param>
-        /// <param name="expVal">Expected new value.</param>
-        /// <param name="timeout">Timeout.</param>
-        private void CheckCallbackSingle(int expKey, PortableEntry expOldVal, PortableEntry expVal, int timeout)
-        {
-            CallbackEvent evt;
-
-            Assert.IsTrue(CB_EVTS.TryTake(out evt, timeout));
-
-            Assert.AreEqual(1, evt.entries.Count);
-
-            Assert.AreEqual(expKey, evt.entries.First().Key);
-            Assert.AreEqual(expOldVal, evt.entries.First().OldValue);
-            Assert.AreEqual(expVal, evt.entries.First().Value);
-        }
-
-        /// <summary>
-        /// Ensure that no callback events are logged.
-        /// </summary>
-        /// <param name="timeout">Timeout.</param>
-        private void CheckNoCallback(int timeout)
-        {
-            CallbackEvent evt;
-
-            Assert.IsFalse(CB_EVTS.TryTake(out evt, timeout));
-        }
-
-        /// <summary>
-        /// Craate entry.
-        /// </summary>
-        /// <param name="val">Value.</param>
-        /// <returns>Entry.</returns>
-        private static PortableEntry Entry(int val)
-        {
-            return new PortableEntry(val);
-        }
-
-        /// <summary>
-        /// Get primary key for cache.
-        /// </summary>
-        /// <param name="cache">Cache.</param>
-        /// <returns>Primary key.</returns>
-        private static int PrimaryKey<T>(ICache<int, T> cache)
-        {
-            return PrimaryKeys(cache, 1)[0];
-        }
-
-        /// <summary>
-        /// Get primary keys for cache.
-        /// </summary>
-        /// <param name="cache">Cache.</param>
-        /// <param name="cnt">Amount of keys.</param>
-        /// <param name="startFrom">Value to start from.</param>
-        /// <returns></returns>
-        private static List<int> PrimaryKeys<T>(ICache<int, T> cache, int cnt, int startFrom = 0)
-        {
-            IClusterNode node = cache.Ignite.GetCluster().GetLocalNode();
-
-            ICacheAffinity aff = cache.Ignite.GetAffinity(cache.Name);
-
-            List<int> keys = new List<int>(cnt);
-
-            for (int i = startFrom; i < startFrom + 100000; i++)
-            {
-                if (aff.IsPrimary(node, i))
-                {
-                    keys.Add(i);
-
-                    if (keys.Count == cnt)
-                        return keys;
-                }
-            }
-
-            Assert.Fail("Failed to find " + cnt + " primary keys.");
-
-            return null;
-        }
-
-        /// <summary>
-        /// Portable entry.
-        /// </summary>
-        public class PortableEntry
-        {
-            /** Value. */
-            public readonly int val;
-
-            /** <inheritDot /> */
-            public override int GetHashCode()
-            {
-                return val;
-            }
-
-            /// <summary>
-            /// Constructor.
-            /// </summary>
-            /// <param name="val">Value.</param>
-            public PortableEntry(int val)
-            {
-                this.val = val;
-            }
-
-            /** <inheritDoc /> */
-            public override bool Equals(object obj)
-            {
-                return obj != null && obj is PortableEntry && ((PortableEntry)obj).val == val;
-            }
-        }
-
-        /// <summary>
-        /// Abstract filter.
-        /// </summary>
-        [Serializable]
-        public abstract class AbstractFilter<V> : ICacheEntryEventFilter<int, V>
-        {
-            /** Result. */
-            public static volatile bool res = true;
-
-            /** Throw error on invocation. */
-            public static volatile bool err;
-
-            /** Throw error during marshalling. */
-            public static volatile bool marshErr;
-
-            /** Throw error during unmarshalling. */
-            public static volatile bool unmarshErr;
-
-            /** Grid. */
-            [InstanceResource]
-            public IIgnite ignite;
-
-            /** <inheritDoc /> */
-            public bool Evaluate(ICacheEntryEvent<int, V> evt)
-            {
-                if (err)
-                    throw new Exception("Filter error.");
-
-                FILTER_EVTS.Add(new FilterEvent(ignite,
-                    CQU.CreateEvent<object, object>(evt.Key, evt.OldValue, evt.Value)));
-
-                return res;
-            }
-        }
-
-        /// <summary>
-        /// Filter which cannot be serialized.
-        /// </summary>
-        public class LocalFilter : AbstractFilter<PortableEntry>
-        {
-            // No-op.
-        }
-
-        /// <summary>
-        /// Portable filter.
-        /// </summary>
-        public class PortableFilter : AbstractFilter<PortableEntry>, IPortableMarshalAware
-        {
-            /** <inheritDoc /> */
-            public void WritePortable(IPortableWriter writer)
-            {
-                if (marshErr)
-                    throw new Exception("Filter marshalling error.");
-            }
-
-            /** <inheritDoc /> */
-            public void ReadPortable(IPortableReader reader)
-            {
-                if (unmarshErr)
-                    throw new Exception("Filter unmarshalling error.");
-            }
-        }
-
-        /// <summary>
-        /// Serializable filter.
-        /// </summary>
-        [Serializable]
-        public class SerializableFilter : AbstractFilter<PortableEntry>, ISerializable
-        {
-            /// <summary>
-            /// Constructor.
-            /// </summary>
-            public SerializableFilter()
-            {
-                // No-op.
-            }
-
-            /// <summary>
-            /// Serialization constructor.
-            /// </summary>
-            /// <param name="info">Info.</param>
-            /// <param name="context">Context.</param>
-            protected SerializableFilter(SerializationInfo info, StreamingContext context)
-            {
-                if (unmarshErr)
-                    throw new Exception("Filter unmarshalling error.");
-            }
-
-            /** <inheritDoc /> */
-            public void GetObjectData(SerializationInfo info, StreamingContext context)
-            {
-                if (marshErr)
-                    throw new Exception("Filter marshalling error.");
-            }
-        }
-
-        /// <summary>
-        /// Filter for "keep-portable" scenario.
-        /// </summary>
-        public class KeepPortableFilter : AbstractFilter<IPortableObject>
-        {
-            // No-op.
-        }
-
-        /// <summary>
-        /// Listener.
-        /// </summary>
-        public class Listener<V> : ICacheEntryEventListener<int, V>
-        {
-            [InstanceResource]
-            public IIgnite ignite;
-            
-            /** <inheritDoc /> */
-            public void OnEvent(IEnumerable<ICacheEntryEvent<int, V>> evts)
-            {
-                ICollection<ICacheEntryEvent<object, object>> entries0 =
-                    new List<ICacheEntryEvent<object, object>>();
-
-                foreach (ICacheEntryEvent<int, V> evt in evts)
-                    entries0.Add(CQU.CreateEvent<object, object>(evt.Key, evt.OldValue, evt.Value));
-
-                CB_EVTS.Add(new CallbackEvent(entries0));
-            }
-        }
-
-        /// <summary>
-        /// Listener with nested Ignite API call.
-        /// </summary>
-        public class NestedCallListener : ICacheEntryEventListener<int, IPortableObject>
-        {
-            /** Event. */
-            public readonly CountdownEvent countDown = new CountdownEvent(1);
-
-            public void OnEvent(IEnumerable<ICacheEntryEvent<int, IPortableObject>> evts)
-            {
-                foreach (ICacheEntryEvent<int, IPortableObject> evt in evts)
-                {
-                    IPortableObject val = evt.Value;
-
-                    IPortableMetadata meta = val.GetMetadata();
-
-                    Assert.AreEqual(typeof(PortableEntry).Name, meta.TypeName);
-                }
-
-                countDown.Signal();
-            }
-        }
-
-        /// <summary>
-        /// Filter event.
-        /// </summary>
-        public class FilterEvent
-        {
-            /** Grid. */
-            public IIgnite ignite;
-
-            /** Entry. */
-            public ICacheEntryEvent<object, object> entry;
-
-            /// <summary>
-            /// Constructor.
-            /// </summary>
-            /// <param name="ignite">Grid.</param>
-            /// <param name="entry">Entry.</param>
-            public FilterEvent(IIgnite ignite, ICacheEntryEvent<object, object> entry)
-            {
-                this.ignite = ignite;
-                this.entry = entry;
-            }
-        }
-
-        /// <summary>
-        /// Callbakc event.
-        /// </summary>
-        public class CallbackEvent
-        {
-            /** Entries. */
-            public ICollection<ICacheEntryEvent<object, object>> entries;
-
-            /// <summary>
-            /// Constructor.
-            /// </summary>
-            /// <param name="entries">Entries.</param>
-            public CallbackEvent(ICollection<ICacheEntryEvent<object, object>> entries)
-            {
-                this.entries = entries;
-            }
-        }
-
-        /// <summary>
-        /// ScanQuery filter for InitialQuery test.
-        /// </summary>
-        [Serializable]
-        private class InitialQueryScanFilter : ICacheEntryFilter<int, PortableEntry>
-        {
-            /** <inheritdoc /> */
-            public bool Invoke(ICacheEntry<int, PortableEntry> entry)
-            {
-                return entry.Key < 33;
-            }
-        }
-    }
-}
-

http://git-wip-us.apache.org/repos/asf/ignite/blob/f0bac562/modules/platform/src/test/dotnet/Apache.Ignite.Core.Tests/Cache/Query/Continuous/ContinuousQueryAtomicBackupTest.cs
----------------------------------------------------------------------
diff --git a/modules/platform/src/test/dotnet/Apache.Ignite.Core.Tests/Cache/Query/Continuous/ContinuousQueryAtomicBackupTest.cs b/modules/platform/src/test/dotnet/Apache.Ignite.Core.Tests/Cache/Query/Continuous/ContinuousQueryAtomicBackupTest.cs
deleted file mode 100644
index ac44f10..0000000
--- a/modules/platform/src/test/dotnet/Apache.Ignite.Core.Tests/Cache/Query/Continuous/ContinuousQueryAtomicBackupTest.cs
+++ /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.
- */
-
-namespace Apache.Ignite.Core.Tests.Cache.Query.Continuous
-{
-    /// <summary>
-    /// Continuous query tests for ATOMIC cache with backups.
-    /// </summary>
-    public class ContinuousQueryAtomiclBackupTest : ContinuousQueryAbstractTest
-    {
-        /// <summary>
-        /// Constructor.
-        /// </summary>
-        public ContinuousQueryAtomiclBackupTest() : base(CACHE_ATOMIC_BACKUP)
-        {
-            // No-op.
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/ignite/blob/f0bac562/modules/platform/src/test/dotnet/Apache.Ignite.Core.Tests/Cache/Query/Continuous/ContinuousQueryAtomicNoBackupTest.cs
----------------------------------------------------------------------
diff --git a/modules/platform/src/test/dotnet/Apache.Ignite.Core.Tests/Cache/Query/Continuous/ContinuousQueryAtomicNoBackupTest.cs b/modules/platform/src/test/dotnet/Apache.Ignite.Core.Tests/Cache/Query/Continuous/ContinuousQueryAtomicNoBackupTest.cs
deleted file mode 100644
index 8e1a18f..0000000
--- a/modules/platform/src/test/dotnet/Apache.Ignite.Core.Tests/Cache/Query/Continuous/ContinuousQueryAtomicNoBackupTest.cs
+++ /dev/null
@@ -1,34 +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.
- */
-
-namespace Apache.Ignite.Core.Tests.Cache.Query.Continuous
-{
-    /// <summary>
-    /// Continuous query tests for ATOMIC cache with no backups.
-    /// </summary>
-    public class ContinuousQueryAtomiclNoBackupTest : ContinuousQueryNoBackupAbstractTest
-    {
-        /// <summary>
-        /// Constructor.
-        /// </summary>
-        public ContinuousQueryAtomiclNoBackupTest()
-            : base(CACHE_ATOMIC_NO_BACKUP)
-        {
-            // No-op.
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/ignite/blob/f0bac562/modules/platform/src/test/dotnet/Apache.Ignite.Core.Tests/Cache/Query/Continuous/ContinuousQueryNoBackupAbstractTest.cs
----------------------------------------------------------------------
diff --git a/modules/platform/src/test/dotnet/Apache.Ignite.Core.Tests/Cache/Query/Continuous/ContinuousQueryNoBackupAbstractTest.cs b/modules/platform/src/test/dotnet/Apache.Ignite.Core.Tests/Cache/Query/Continuous/ContinuousQueryNoBackupAbstractTest.cs
deleted file mode 100644
index aa7d627..0000000
--- a/modules/platform/src/test/dotnet/Apache.Ignite.Core.Tests/Cache/Query/Continuous/ContinuousQueryNoBackupAbstractTest.cs
+++ /dev/null
@@ -1,72 +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.
- */
-
-namespace Apache.Ignite.Core.Tests.Cache.Query.Continuous
-{
-    using NUnit.Framework;
-
-    /// <summary>
-    /// Tests for ocntinuous query when there are no backups.
-    /// </summary>
-    public abstract class ContinuousQueryNoBackupAbstractTest : ContinuousQueryAbstractTest
-    {
-        /// <summary>
-        /// Constructor.
-        /// </summary>
-        /// <param name="cacheName">Cache name.</param>
-        protected ContinuousQueryNoBackupAbstractTest(string cacheName) : base(cacheName)
-        {
-            // No-op.
-        }
-
-        /// <summary>
-        /// Test regular callback operations for local query.
-        /// </summary>
-        [Test]
-        public void TestCallbackLocal()
-        {
-            CheckCallback(true);
-        }
-
-        /// <summary>
-        /// Test portable filter logic.
-        /// </summary>
-        [Test]
-        public void TestFilterPortableLocal()
-        {
-            CheckFilter(true, true);
-        }
-
-        /// <summary>
-        /// Test serializable filter logic.
-        /// </summary>
-        [Test]
-        public void TestFilterSerializableLocal()
-        {
-            CheckFilter(false, true);
-        }
-
-        /// <summary>
-        /// Test non-serializable filter for local query.
-        /// </summary>
-        [Test]
-        public void TestFilterNonSerializableLocal()
-        {
-            CheckFilterNonSerializable(true);
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/ignite/blob/f0bac562/modules/platform/src/test/dotnet/Apache.Ignite.Core.Tests/Cache/Query/Continuous/ContinuousQueryTransactionalBackupTest.cs
----------------------------------------------------------------------
diff --git a/modules/platform/src/test/dotnet/Apache.Ignite.Core.Tests/Cache/Query/Continuous/ContinuousQueryTransactionalBackupTest.cs b/modules/platform/src/test/dotnet/Apache.Ignite.Core.Tests/Cache/Query/Continuous/ContinuousQueryTransactionalBackupTest.cs
deleted file mode 100644
index 08ae88c..0000000
--- a/modules/platform/src/test/dotnet/Apache.Ignite.Core.Tests/Cache/Query/Continuous/ContinuousQueryTransactionalBackupTest.cs
+++ /dev/null
@@ -1,34 +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.
- */
-
-namespace Apache.Ignite.Core.Tests.Cache.Query.Continuous
-{
-    /// <summary>
-    /// Continuous query tests for TRANSACTIONAL cache with backups.
-    /// </summary>
-    public class ContinuousQueryTransactionalBackupTest : ContinuousQueryAbstractTest
-    {
-        /// <summary>
-        /// Constructor.
-        /// </summary>
-        public ContinuousQueryTransactionalBackupTest()
-            : base(CACHE_TX_BACKUP)
-        {
-            // No-op.
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/ignite/blob/f0bac562/modules/platform/src/test/dotnet/Apache.Ignite.Core.Tests/Cache/Query/Continuous/ContinuousQueryTransactionalNoBackupTest.cs
----------------------------------------------------------------------
diff --git a/modules/platform/src/test/dotnet/Apache.Ignite.Core.Tests/Cache/Query/Continuous/ContinuousQueryTransactionalNoBackupTest.cs b/modules/platform/src/test/dotnet/Apache.Ignite.Core.Tests/Cache/Query/Continuous/ContinuousQueryTransactionalNoBackupTest.cs
deleted file mode 100644
index 685f7b4..0000000
--- a/modules/platform/src/test/dotnet/Apache.Ignite.Core.Tests/Cache/Query/Continuous/ContinuousQueryTransactionalNoBackupTest.cs
+++ /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.
- */
-
-namespace Apache.Ignite.Core.Tests.Cache.Query.Continuous
-{
-    /// <summary>
-    /// Continuous query tests for TRANSACTIONAL cache with no backups.
-    /// </summary>
-    public class ContinuousQueryTransactionalNoBackupTest : ContinuousQueryNoBackupAbstractTest
-    {
-        /// <summary>
-        /// Constructor.
-        /// </summary>
-        public ContinuousQueryTransactionalNoBackupTest() : base(CACHE_TX_NO_BACKUP)
-        {
-            // No-op.
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/ignite/blob/f0bac562/modules/platform/src/test/dotnet/Apache.Ignite.Core.Tests/Cache/Store/CacheParallelLoadStoreTest.cs
----------------------------------------------------------------------
diff --git a/modules/platform/src/test/dotnet/Apache.Ignite.Core.Tests/Cache/Store/CacheParallelLoadStoreTest.cs b/modules/platform/src/test/dotnet/Apache.Ignite.Core.Tests/Cache/Store/CacheParallelLoadStoreTest.cs
deleted file mode 100644
index a7d9adb..0000000
--- a/modules/platform/src/test/dotnet/Apache.Ignite.Core.Tests/Cache/Store/CacheParallelLoadStoreTest.cs
+++ /dev/null
@@ -1,110 +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.
- */
-
-namespace Apache.Ignite.Core.Tests.Cache.Store
-{
-    using System;
-    using Apache.Ignite.Core.Cache;
-    using Apache.Ignite.Core.Portable;
-    using NUnit.Framework;
-
-    /// <summary>
-    /// Tests for GridCacheParallelLoadStoreAdapter.
-    /// </summary>
-    public class CacheParallelLoadStoreTest
-    {
-        // object store name
-        private const string ObjectStoreCacheName = "object_store_parallel";
-
-        /// <summary>
-        /// Set up test class.
-        /// </summary>
-        [TestFixtureSetUp]
-        public virtual void BeforeTests()
-        {
-            TestUtils.KillProcesses();
-            TestUtils.JvmDebug = true;
-
-            Ignition.Start(new IgniteConfiguration
-            {
-                JvmClasspath = TestUtils.CreateTestClasspath(),
-                JvmOptions = TestUtils.TestJavaOptions(),
-                SpringConfigUrl = "config\\native-client-test-cache-parallel-store.xml",
-                PortableConfiguration = new PortableConfiguration
-                {
-                    Types = new[] {typeof (CacheTestParallelLoadStore.Record).FullName}
-                }
-            });
-        }
-
-        /// <summary>
-        /// Tear down test class.
-        /// </summary>
-        [TestFixtureTearDown]
-        public virtual void AfterTests()
-        {
-            Ignition.StopAll(true);
-        }
-
-        /// <summary>
-        /// Test setup.
-        /// </summary>
-        [SetUp]
-        public void BeforeTest()
-        {
-            Console.WriteLine("Test started: " + TestContext.CurrentContext.Test.Name);
-        }
-
-        /// <summary>
-        /// Tests the LoadCache.
-        /// </summary>
-        [Test]
-        public void TestLoadCache()
-        {
-            var cache = GetCache();
-
-            Assert.AreEqual(0, cache.GetSize());
-
-            const int minId = 113;
-            const int expectedItemCount = CacheTestParallelLoadStore.InputDataLength - minId;
-
-            CacheTestParallelLoadStore.ResetCounters();
-
-            cache.LocalLoadCache(null, minId);
-
-            Assert.AreEqual(expectedItemCount, cache.GetSize());
-
-            // check items presence; increment by 100 to speed up the test
-            for (var i = minId; i < expectedItemCount; i += 100)
-            {
-                var rec = cache.Get(i);
-                Assert.AreEqual(i, rec.Id);
-            }
-
-            // check that items were processed in parallel
-            Assert.GreaterOrEqual(CacheTestParallelLoadStore.UniqueThreadCount, Environment.ProcessorCount);
-        }
-
-        /// <summary>
-        /// Gets the cache.
-        /// </summary>
-        private static ICache<int, CacheTestParallelLoadStore.Record> GetCache()
-        {
-            return Ignition.GetIgnite().GetCache<int, CacheTestParallelLoadStore.Record>(ObjectStoreCacheName);
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/ignite/blob/f0bac562/modules/platform/src/test/dotnet/Apache.Ignite.Core.Tests/Cache/Store/CacheStoreSessionTest.cs
----------------------------------------------------------------------
diff --git a/modules/platform/src/test/dotnet/Apache.Ignite.Core.Tests/Cache/Store/CacheStoreSessionTest.cs b/modules/platform/src/test/dotnet/Apache.Ignite.Core.Tests/Cache/Store/CacheStoreSessionTest.cs
deleted file mode 100644
index 137215e..0000000
--- a/modules/platform/src/test/dotnet/Apache.Ignite.Core.Tests/Cache/Store/CacheStoreSessionTest.cs
+++ /dev/null
@@ -1,285 +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.
- */
-
-namespace Apache.Ignite.Core.Tests.Cache.Store
-{
-    using System;
-    using System.Collections.Concurrent;
-    using System.Collections.Generic;
-    using System.Linq;
-    using Apache.Ignite.Core.Cache.Store;
-    using Apache.Ignite.Core.Impl;
-    using Apache.Ignite.Core.Resource;
-    using NUnit.Framework;
-
-    /// <summary>
-    /// Tests for store session.
-    /// </summary>
-    public class CacheStoreSessionTest
-    {
-        /** Grid name. */
-        private const string IgniteName = "grid";
-
-        /** Cache 1 name. */
-        private const string Cache1 = "cache1";
-
-        /** Cache 2 name. */
-        private const string Cache2 = "cache2";
-
-        /** Operations. */
-        private static ConcurrentBag<ICollection<Operation>> _dumps;
-
-        /// <summary>
-        /// Set up routine.
-        /// </summary>
-        [TestFixtureSetUp]
-        public virtual void BeforeTests()
-        {
-            //TestUtils.JVM_DEBUG = true;
-
-            TestUtils.KillProcesses();
-
-            TestUtils.JvmDebug = true;
-
-            IgniteConfigurationEx cfg = new IgniteConfigurationEx
-            {
-                GridName = IgniteName,
-                JvmClasspath = TestUtils.CreateTestClasspath(),
-                JvmOptions = TestUtils.TestJavaOptions(),
-                SpringConfigUrl = @"config\cache\store\cache-store-session.xml"
-            };
-
-
-            Ignition.Start(cfg);
-        }
-
-        /// <summary>
-        /// Tear down routine.
-        /// </summary>
-        [TestFixtureTearDown]
-        public virtual void AfterTests()
-        {
-            Ignition.StopAll(true);
-        }
-        
-        /// <summary>
-        /// Test basic session API.
-        /// </summary>
-        [Test]
-        public void TestSession()
-        {
-            _dumps = new ConcurrentBag<ICollection<Operation>>();
-
-            var ignite = Ignition.GetIgnite(IgniteName);
-
-            var cache1 = Ignition.GetIgnite(IgniteName).GetCache<int, int>(Cache1);
-            var cache2 = Ignition.GetIgnite(IgniteName).GetCache<int, int>(Cache2);
-
-            // 1. Test rollback.
-            using (var tx = ignite.GetTransactions().TxStart())
-            {
-                cache1.Put(1, 1);
-                cache2.Put(2, 2);
-
-                tx.Rollback();
-            }
-
-            Assert.AreEqual(1, _dumps.Count);
-            var ops = _dumps.First();
-            Assert.AreEqual(1, ops.Count);
-
-            Assert.AreEqual(1, ops.Count(op => op.Type == OperationType.SesEnd && !op.Commit));
-
-            _dumps = new ConcurrentBag<ICollection<Operation>>();
-
-            // 2. Test puts.
-            using (var tx = ignite.GetTransactions().TxStart())
-            {
-                cache1.Put(1, 1);
-                cache2.Put(2, 2);
-
-                tx.Commit();
-            }
-
-            Assert.AreEqual(1, _dumps.Count);
-            ops = _dumps.First();
-            Assert.AreEqual(3, ops.Count);
-
-            Assert.AreEqual(1, ops.Count(op => op.Type == OperationType.Write && Cache1.Equals(op.CacheName) && 1.Equals(op.Key) && 1.Equals(op.Value)));
-            Assert.AreEqual(1, ops.Count(op => op.Type == OperationType.Write && Cache2.Equals(op.CacheName) && 2.Equals(op.Key) && 2.Equals(op.Value)));
-            Assert.AreEqual(1, ops.Count(op => op.Type == OperationType.SesEnd && op.Commit));
-
-            _dumps = new ConcurrentBag<ICollection<Operation>>();
-
-            // 3. Test removes.
-            using (var tx = ignite.GetTransactions().TxStart())
-            {
-                cache1.Remove(1);
-                cache2.Remove(2);
-
-                tx.Commit();
-            }
-
-            Assert.AreEqual(1, _dumps.Count);
-            ops = _dumps.First();
-            Assert.AreEqual(3, ops.Count);
-
-            Assert.AreEqual(1, ops.Count(op => op.Type == OperationType.Delete && Cache1.Equals(op.CacheName) && 1.Equals(op.Key)));
-            Assert.AreEqual(1, ops.Count(op => op.Type == OperationType.Delete && Cache2.Equals(op.CacheName) && 2.Equals(op.Key)));
-            Assert.AreEqual(1, ops.Count(op => op.Type == OperationType.SesEnd && op.Commit));
-        }
-
-        /// <summary>
-        /// Dump operations.
-        /// </summary>
-        /// <param name="dump">Dump.</param>
-        internal static void DumpOperations(ICollection<Operation> dump)
-        {
-            _dumps.Add(dump);
-        }
-
-        /// <summary>
-        /// Test store implementation.
-        /// </summary>
-        public class Store : CacheStoreAdapter
-        {
-            /** Store session. */
-            [StoreSessionResource]
-#pragma warning disable 649
-            private ICacheStoreSession _ses;
-#pragma warning restore 649
-
-            /** <inheritdoc /> */
-            public override object Load(object key)
-            {
-                throw new NotImplementedException();
-            }
-
-            /** <inheritdoc /> */
-            public override void Write(object key, object val)
-            {
-                GetOperations().Add(new Operation(_ses.CacheName, OperationType.Write, (int)key, (int)val));
-            }
-
-            /** <inheritdoc /> */
-            public override void Delete(object key)
-            {
-                GetOperations().Add(new Operation(_ses.CacheName, OperationType.Delete, (int)key, 0));
-            }
-
-            /** <inheritdoc /> */
-            public override void SessionEnd(bool commit)
-            {
-                Operation op = new Operation(_ses.CacheName, OperationType.SesEnd) { Commit = commit };
-
-                ICollection<Operation> ops = GetOperations();
-
-                ops.Add(op);
-
-                DumpOperations(ops);
-            }
-
-            /// <summary>
-            /// Get collection with operations.
-            /// </summary>
-            /// <returns>Operations.</returns>
-            private ICollection<Operation> GetOperations()
-            {
-                object ops;
-
-                if (!_ses.Properties.TryGetValue("ops", out ops))
-                {
-                    ops = new List<Operation>();
-
-                    _ses.Properties["ops"] = ops;
-                }
-
-                return (ICollection<Operation>) ops;
-            } 
-        }
-
-        /// <summary>
-        /// Logged operation.
-        /// </summary>
-        internal class Operation
-        {
-            /// <summary>
-            /// Constructor.
-            /// </summary>
-            /// <param name="cacheName">Cache name.</param>
-            /// <param name="type">Operation type.</param>
-            public Operation(string cacheName, OperationType type)
-            {
-                CacheName = cacheName;
-                Type = type;
-            }
-
-            /// <summary>
-            /// Constructor.
-            /// </summary>
-            /// <param name="cacheName">Cache name.</param>
-            /// <param name="type">Operation type.</param>
-            /// <param name="key">Key.</param>
-            /// <param name="val">Value.</param>
-            public Operation(string cacheName, OperationType type, int key, int val) : this(cacheName, type)
-            {
-                Key = key;
-                Value = val;
-            }
-
-            /// <summary>
-            /// Cache name.
-            /// </summary>
-            public string CacheName { get; set; }
-            
-            /// <summary>
-            /// Operation type.
-            /// </summary>
-            public OperationType Type { get; set; }
-
-            /// <summary>
-            /// Key.
-            /// </summary>
-            public int Key { get; set; }
-
-            /// <summary>
-            /// Value.
-            /// </summary>
-            public int Value { get; set; }
-
-            /// <summary>
-            /// Commit flag.
-            /// </summary>
-            public bool Commit { get; set; }
-        }
-
-        /// <summary>
-        /// Operation types.
-        /// </summary>
-        internal enum OperationType
-        {
-            /** Write. */
-            Write,
-
-            /** Delete. */
-            Delete,
-
-            /** Session end. */
-            SesEnd
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/ignite/blob/f0bac562/modules/platform/src/test/dotnet/Apache.Ignite.Core.Tests/Cache/Store/CacheStoreTest.cs
----------------------------------------------------------------------
diff --git a/modules/platform/src/test/dotnet/Apache.Ignite.Core.Tests/Cache/Store/CacheStoreTest.cs b/modules/platform/src/test/dotnet/Apache.Ignite.Core.Tests/Cache/Store/CacheStoreTest.cs
deleted file mode 100644
index bfafcf4..0000000
--- a/modules/platform/src/test/dotnet/Apache.Ignite.Core.Tests/Cache/Store/CacheStoreTest.cs
+++ /dev/null
@@ -1,510 +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.
- */
-
-namespace Apache.Ignite.Core.Tests.Cache.Store
-{
-    using System;
-    using System.Collections;
-    using System.Collections.Generic;
-    using Apache.Ignite.Core.Cache;
-    using Apache.Ignite.Core.Impl;
-    using Apache.Ignite.Core.Portable;
-    using NUnit.Framework;
-
-    /// <summary>
-    ///
-    /// </summary>
-    class Key
-    {
-        private readonly int _idx;
-
-        public Key(int idx)
-        {
-            _idx = idx;
-        }
-
-        public int Index()
-        {
-            return _idx;
-        }
-
-        public override bool Equals(object obj)
-        {
-            if (obj == null || obj.GetType() != GetType())
-                return false;
-
-            Key key = (Key)obj;
-
-            return key._idx == _idx;
-        }
-
-        public override int GetHashCode()
-        {
-            return _idx;
-        }
-    }
-
-    /// <summary>
-    ///
-    /// </summary>
-    class Value
-    {
-        private int _idx;
-
-        public Value(int idx)
-        {
-            _idx = idx;
-        }
-
-        public int Index()
-        {
-            return _idx;
-        }
-    }
-
-    /// <summary>
-    /// Cache entry predicate.
-    /// </summary>
-    [Serializable]
-    public class CacheEntryFilter : ICacheEntryFilter<int, string>
-    {
-        /** <inheritdoc /> */
-        public bool Invoke(ICacheEntry<int, string> entry)
-        {
-            return entry.Key >= 105;
-        }
-    }
-
-    /// <summary>
-    ///
-    /// </summary>
-    public class CacheStoreTest
-    {
-        /** */
-        private const string PortableStoreCacheName = "portable_store";
-
-        /** */
-        private const string ObjectStoreCacheName = "object_store";
-
-        /** */
-        private const string CustomStoreCacheName = "custom_store";
-
-        /** */
-        private const string TemplateStoreCacheName = "template_store*";
-
-        /// <summary>
-        ///
-        /// </summary>
-        [TestFixtureSetUp]
-        public void BeforeTests()
-        {
-            //TestUtils.JVM_DEBUG = true;
-
-            TestUtils.KillProcesses();
-
-            TestUtils.JvmDebug = true;
-
-            IgniteConfigurationEx cfg = new IgniteConfigurationEx();
-
-            cfg.GridName = GridName();
-            cfg.JvmClasspath = TestUtils.CreateTestClasspath();
-            cfg.JvmOptions = TestUtils.TestJavaOptions();
-            cfg.SpringConfigUrl = "config\\native-client-test-cache-store.xml";
-
-            PortableConfiguration portCfg = new PortableConfiguration();
-
-            portCfg.Types = new List<string> { typeof(Key).FullName, typeof(Value).FullName };
-
-            cfg.PortableConfiguration = portCfg;
-
-            Ignition.Start(cfg);
-        }
-
-        /// <summary>
-        ///
-        /// </summary>
-        [TestFixtureTearDown]
-        public virtual void AfterTests()
-        {
-            Ignition.StopAll(true);
-        }
-
-        /// <summary>
-        ///
-        /// </summary>
-        [SetUp]
-        public void BeforeTest()
-        {
-            Console.WriteLine("Test started: " + TestContext.CurrentContext.Test.Name);
-        }
-
-        /// <summary>
-        ///
-        /// </summary>
-        [TearDown]
-        public void AfterTest()
-        {
-            var cache = Cache();
-
-            cache.Clear();
-
-            Assert.IsTrue(cache.IsEmpty(), "Cache is not empty: " + cache.GetSize());
-
-            CacheTestStore.Reset();
-
-            Console.WriteLine("Test finished: " + TestContext.CurrentContext.Test.Name);
-        }
-
-        [Test]
-        public void TestLoadCache()
-        {
-            var cache = Cache();
-
-            Assert.AreEqual(0, cache.GetSize());
-
-            cache.LoadCache(new CacheEntryFilter(), 100, 10);
-
-            Assert.AreEqual(5, cache.GetSize());
-
-            for (int i = 105; i < 110; i++)
-                Assert.AreEqual("val_" + i, cache.Get(i));
-        }
-
-        [Test]
-        public void TestLocalLoadCache()
-        {
-            var cache = Cache();
-
-            Assert.AreEqual(0, cache.GetSize());
-
-            cache.LocalLoadCache(new CacheEntryFilter(), 100, 10);
-
-            Assert.AreEqual(5, cache.GetSize());
-
-            for (int i = 105; i < 110; i++)
-                Assert.AreEqual("val_" + i, cache.Get(i));
-        }
-
-        [Test]
-        public void TestLoadCacheMetadata()
-        {
-            CacheTestStore.LoadObjects = true;
-
-            var cache = Cache();
-
-            Assert.AreEqual(0, cache.GetSize());
-
-            cache.LocalLoadCache(null, 0, 3);
-
-            Assert.AreEqual(3, cache.GetSize());
-
-            var meta = cache.WithKeepPortable<Key, IPortableObject>().Get(new Key(0)).GetMetadata();
-
-            Assert.NotNull(meta);
-
-            Assert.AreEqual("Value", meta.TypeName);
-        }
-
-        [Test]
-        public void TestLoadCacheAsync()
-        {
-            var cache = Cache().WithAsync();
-
-            Assert.AreEqual(0, cache.GetSize());
-
-            cache.LocalLoadCache(new CacheEntryFilter(), 100, 10);
-
-            var fut = cache.GetFuture<object>();
-
-            fut.Get();
-
-            Assert.IsTrue(fut.IsDone);
-
-            cache.GetSize();
-            Assert.AreEqual(5, cache.GetFuture<int>().ToTask().Result);
-
-            for (int i = 105; i < 110; i++)
-            {
-                cache.Get(i);
-
-                Assert.AreEqual("val_" + i, cache.GetFuture<string>().ToTask().Result);
-            }
-        }
-
-        [Test]
-        public void TestPutLoad()
-        {
-            var cache = Cache();
-
-            cache.Put(1, "val");
-
-            IDictionary map = StoreMap();
-
-            Assert.AreEqual(1, map.Count);
-
-            cache.LocalEvict(new[] { 1 });
-
-            Assert.AreEqual(0, cache.GetSize());
-
-            Assert.AreEqual("val", cache.Get(1));
-
-            Assert.AreEqual(1, cache.GetSize());
-        }
-
-        [Test]
-        public void TestPutLoadPortables()
-        {
-            var cache = PortableStoreCache<int, Value>();
-
-            cache.Put(1, new Value(1));
-
-            IDictionary map = StoreMap();
-
-            Assert.AreEqual(1, map.Count);
-
-            IPortableObject v = (IPortableObject)map[1];
-
-            Assert.AreEqual(1, v.GetField<int>("_idx"));
-
-            cache.LocalEvict(new[] { 1 });
-
-            Assert.AreEqual(0, cache.GetSize());
-
-            Assert.AreEqual(1, cache.Get(1).Index());
-
-            Assert.AreEqual(1, cache.GetSize());
-        }
-
-        [Test]
-        public void TestPutLoadObjects()
-        {
-            var cache = ObjectStoreCache<int, Value>();
-
-            cache.Put(1, new Value(1));
-
-            IDictionary map = StoreMap();
-
-            Assert.AreEqual(1, map.Count);
-
-            Value v = (Value)map[1];
-
-            Assert.AreEqual(1, v.Index());
-
-            cache.LocalEvict(new[] { 1 });
-
-            Assert.AreEqual(0, cache.GetSize());
-
-            Assert.AreEqual(1, cache.Get(1).Index());
-
-            Assert.AreEqual(1, cache.GetSize());
-        }
-
-        [Test]
-        public void TestPutLoadAll()
-        {
-            var putMap = new Dictionary<int, string>();
-
-            for (int i = 0; i < 10; i++)
-                putMap.Add(i, "val_" + i);
-
-            var cache = Cache();
-
-            cache.PutAll(putMap);
-
-            IDictionary map = StoreMap();
-
-            Assert.AreEqual(10, map.Count);
-
-            for (int i = 0; i < 10; i++)
-                Assert.AreEqual("val_" + i, map[i]);
-
-            cache.Clear();
-
-            Assert.AreEqual(0, cache.GetSize());
-
-            ICollection<int> keys = new List<int>();
-
-            for (int i = 0; i < 10; i++)
-                keys.Add(i);
-
-            IDictionary<int, string> loaded = cache.GetAll(keys);
-
-            Assert.AreEqual(10, loaded.Count);
-
-            for (int i = 0; i < 10; i++)
-                Assert.AreEqual("val_" + i, loaded[i]);
-
-            Assert.AreEqual(10, cache.GetSize());
-        }
-
-        [Test]
-        public void TestRemove()
-        {
-            var cache = Cache();
-
-            for (int i = 0; i < 10; i++)
-                cache.Put(i, "val_" + i);
-
-            IDictionary map = StoreMap();
-
-            Assert.AreEqual(10, map.Count);
-
-            for (int i = 0; i < 5; i++)
-                cache.Remove(i);
-
-            Assert.AreEqual(5, map.Count);
-
-            for (int i = 5; i < 10; i++)
-                Assert.AreEqual("val_" + i, map[i]);
-        }
-
-        [Test]
-        public void TestRemoveAll()
-        {
-            var cache = Cache();
-
-            for (int i = 0; i < 10; i++)
-                cache.Put(i, "val_" + i);
-
-            IDictionary map = StoreMap();
-
-            Assert.AreEqual(10, map.Count);
-
-            cache.RemoveAll(new List<int> { 0, 1, 2, 3, 4 });
-
-            Assert.AreEqual(5, map.Count);
-
-            for (int i = 5; i < 10; i++)
-                Assert.AreEqual("val_" + i, map[i]);
-        }
-
-        [Test]
-        public void TestTx()
-        {
-            var cache = Cache();
-
-            using (var tx = cache.Ignite.GetTransactions().TxStart())
-            {
-                CacheTestStore.ExpCommit = true;
-
-                tx.AddMeta("meta", 100);
-
-                cache.Put(1, "val");
-
-                tx.Commit();
-            }
-
-            IDictionary map = StoreMap();
-
-            Assert.AreEqual(1, map.Count);
-
-            Assert.AreEqual("val", map[1]);
-        }
-
-        [Test]
-        public void TestLoadCacheMultithreaded()
-        {
-            CacheTestStore.LoadMultithreaded = true;
-
-            var cache = Cache();
-
-            Assert.AreEqual(0, cache.GetSize());
-
-            cache.LocalLoadCache(null, 0, null);
-
-            Assert.AreEqual(1000, cache.GetSize());
-
-            for (int i = 0; i < 1000; i++)
-                Assert.AreEqual("val_" + i, cache.Get(i));
-        }
-
-        [Test]
-        public void TestCustomStoreProperties()
-        {
-            var cache = CustomStoreCache();
-            Assert.IsNotNull(cache);
-
-            Assert.AreEqual(42, CacheTestStore.intProperty);
-            Assert.AreEqual("String value", CacheTestStore.stringProperty);
-        }
-
-        [Test]
-        public void TestDynamicStoreStart()
-        {
-            var cache = TemplateStoreCache();
-
-            Assert.IsNotNull(cache);
-
-            cache.Put(1, cache.Name);
-
-            Assert.AreEqual(cache.Name, CacheTestStore.Map[1]);
-        }
-
-        /// <summary>
-        /// Get's grid name for this test.
-        /// </summary>
-        /// <returns>Grid name.</returns>
-        protected virtual string GridName()
-        {
-            return null;
-        }
-
-        private IDictionary StoreMap()
-        {
-            return CacheTestStore.Map;
-        }
-
-        private ICache<int, string> Cache()
-        {
-            return PortableStoreCache<int, string>();
-        }
-
-        private ICache<TK, TV> PortableStoreCache<TK, TV>()
-        {
-            return Ignition.GetIgnite(GridName()).GetCache<TK, TV>(PortableStoreCacheName);
-        }
-
-        private ICache<TK, TV> ObjectStoreCache<TK, TV>()
-        {
-            return Ignition.GetIgnite(GridName()).GetCache<TK, TV>(ObjectStoreCacheName);
-        }
-
-        private ICache<int, string> CustomStoreCache()
-        {
-            return Ignition.GetIgnite(GridName()).GetCache<int, string>(CustomStoreCacheName);
-        }
-
-        private ICache<int, string> TemplateStoreCache()
-        {
-            var cacheName = TemplateStoreCacheName.Replace("*", Guid.NewGuid().ToString());
-            
-            return Ignition.GetIgnite(GridName()).GetOrCreateCache<int, string>(cacheName);
-        }
-    }
-
-    /// <summary>
-    /// 
-    /// </summary>
-    public class NamedNodeCacheStoreTest : CacheStoreTest
-    {
-        /** <inheritDoc /> */
-        protected override string GridName()
-        {
-            return "name";
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/ignite/blob/f0bac562/modules/platform/src/test/dotnet/Apache.Ignite.Core.Tests/Cache/Store/CacheTestParallelLoadStore.cs
----------------------------------------------------------------------
diff --git a/modules/platform/src/test/dotnet/Apache.Ignite.Core.Tests/Cache/Store/CacheTestParallelLoadStore.cs b/modules/platform/src/test/dotnet/Apache.Ignite.Core.Tests/Cache/Store/CacheTestParallelLoadStore.cs
deleted file mode 100644
index 770ca83..0000000
--- a/modules/platform/src/test/dotnet/Apache.Ignite.Core.Tests/Cache/Store/CacheTestParallelLoadStore.cs
+++ /dev/null
@@ -1,91 +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.
- */
-
-namespace Apache.Ignite.Core.Tests.Cache.Store
-{
-    using System.Collections;
-    using System.Collections.Concurrent;
-    using System.Collections.Generic;
-    using System.Linq;
-    using System.Threading;
-    using Apache.Ignite.Core.Cache.Store;
-
-    /// <summary>
-    /// Test cache store with parallel load.
-    /// </summary>
-    public class CacheTestParallelLoadStore : CacheParallelLoadStoreAdapter
-    {
-        /** Length of input data sequence */
-        public const int InputDataLength = 10000;
-
-        /** list of thread ids where Parse has been executed */
-        private static readonly ConcurrentDictionary<int, int> ThreadIds = new ConcurrentDictionary<int, int>();
-
-        /// <summary>
-        /// Gets the count of unique threads that entered Parse method.
-        /// </summary>
-        public static int UniqueThreadCount
-        {
-            get { return ThreadIds.Count; }
-        }
-
-        /// <summary>
-        /// Resets the test counters.
-        /// </summary>
-        public static void ResetCounters()
-        {
-            ThreadIds.Clear();
-        }
-
-        /** <inheritdoc /> */
-        protected override IEnumerable GetInputData()
-        {
-            return Enumerable.Range(0, InputDataLength).Select(x => new Record {Id = x, Name = "Test Record " + x});
-        }
-
-        /** <inheritdoc /> */
-        protected override KeyValuePair<object, object>? Parse(object inputRecord, params object[] args)
-        {
-            var threadId = Thread.CurrentThread.ManagedThreadId;
-            ThreadIds.GetOrAdd(threadId, threadId);
-
-            var minId = (int)args[0];
-
-            var rec = (Record)inputRecord;
-
-            return rec.Id >= minId
-                ? new KeyValuePair<object, object>(rec.Id, rec)
-                : (KeyValuePair<object, object>?) null;
-        }
-
-        /// <summary>
-        /// Test store record.
-        /// </summary>
-        public class Record
-        {
-            /// <summary>
-            /// Gets or sets the identifier.
-            /// </summary>
-            public int Id { get; set; }
-
-            /// <summary>
-            /// Gets or sets the name.
-            /// </summary>
-            public string Name { get; set; }
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ignite/blob/f0bac562/modules/platform/src/test/dotnet/Apache.Ignite.Core.Tests/Cache/Store/CacheTestStore.cs
----------------------------------------------------------------------
diff --git a/modules/platform/src/test/dotnet/Apache.Ignite.Core.Tests/Cache/Store/CacheTestStore.cs b/modules/platform/src/test/dotnet/Apache.Ignite.Core.Tests/Cache/Store/CacheTestStore.cs
deleted file mode 100644
index 9c381cb..0000000
--- a/modules/platform/src/test/dotnet/Apache.Ignite.Core.Tests/Cache/Store/CacheTestStore.cs
+++ /dev/null
@@ -1,155 +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.
- */
-
-namespace Apache.Ignite.Core.Tests.Cache.Store
-{
-    using System;
-    using System.Collections;
-    using System.Collections.Concurrent;
-    using System.Diagnostics;
-    using System.Diagnostics.CodeAnalysis;
-    using System.Linq;
-    using System.Threading;
-    using Apache.Ignite.Core.Cache.Store;
-    using Apache.Ignite.Core.Resource;
-
-    [SuppressMessage("ReSharper", "FieldCanBeMadeReadOnly.Local")]
-    public class CacheTestStore : ICacheStore
-    {
-        public static readonly IDictionary Map = new ConcurrentDictionary<object, object>();
-
-        public static bool ExpCommit;
-        
-        public static bool LoadMultithreaded;
-
-        public static bool LoadObjects;
-
-        [InstanceResource]
-        private IIgnite _grid = null;
-
-        [StoreSessionResource]
-#pragma warning disable 649
-        private ICacheStoreSession _ses;
-#pragma warning restore 649
-
-        public static int intProperty;
-
-        public static string stringProperty;
-
-        public static void Reset()
-        {
-            Map.Clear();
-
-            ExpCommit = false;
-            LoadMultithreaded = false;
-            LoadObjects = false;
-        }
-
-        public void LoadCache(Action<object, object> act, params object[] args)
-        {
-            Debug.Assert(_grid != null);
-
-            if (LoadMultithreaded)
-            {
-                int cnt = 0;
-
-                TestUtils.RunMultiThreaded(() => {
-                    int i;
-
-                    while ((i = Interlocked.Increment(ref cnt) - 1) < 1000)
-                        act(i, "val_" + i);
-                }, 8);
-            }
-            else
-            {
-                int start = (int)args[0];
-                int cnt = (int)args[1];
-
-                for (int i = start; i < start + cnt; i++)
-                {
-                    if (LoadObjects)
-                        act(new Key(i), new Value(i));
-                    else
-                        act(i, "val_" + i);
-                }
-            }
-        }
-
-        public object Load(object key)
-        {
-            Debug.Assert(_grid != null);
-
-            return Map[key];
-        }
-
-        public IDictionary LoadAll(ICollection keys)
-        {
-            Debug.Assert(_grid != null);
-
-            return keys.OfType<object>().ToDictionary(key => key, Load);
-        }
-
-        public void Write(object key, object val)
-        {
-            Debug.Assert(_grid != null);
-
-            Map[key] = val;
-        }
-
-        public void WriteAll(IDictionary map)
-        {
-            Debug.Assert(_grid != null);
-
-            foreach (DictionaryEntry e in map)
-                Map[e.Key] = e.Value;
-        }
-
-        public void Delete(object key)
-        {
-            Debug.Assert(_grid != null);
-
-            Map.Remove(key);
-        }
-
-        public void DeleteAll(ICollection keys)
-        {
-            Debug.Assert(_grid != null);
-
-            foreach (object key in keys)
-                Map.Remove(key);
-        }
-
-        public void SessionEnd(bool commit)
-        {
-            Debug.Assert(_grid != null);
-
-            Debug.Assert(_ses != null);
-        }
-
-        public int IntProperty
-        {
-            get { return intProperty; }
-            set { intProperty = value; }
-        }
-
-        public string StringProperty
-        {
-            get { return stringProperty; }
-            set { stringProperty = value; }
-        }
-    }
-}