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 09:40:53 UTC

[34/51] [abbrv] [partial] ignite git commit: IGNITE-1513: platform -> platforms.

http://git-wip-us.apache.org/repos/asf/ignite/blob/bcefaa24/modules/platform/dotnet/Apache.Ignite.Core.Tests/Cache/CacheAffinityTest.cs
----------------------------------------------------------------------
diff --git a/modules/platform/dotnet/Apache.Ignite.Core.Tests/Cache/CacheAffinityTest.cs b/modules/platform/dotnet/Apache.Ignite.Core.Tests/Cache/CacheAffinityTest.cs
deleted file mode 100644
index 469887d..0000000
--- a/modules/platform/dotnet/Apache.Ignite.Core.Tests/Cache/CacheAffinityTest.cs
+++ /dev/null
@@ -1,139 +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
-{
-    using Apache.Ignite.Core.Cache;
-    using Apache.Ignite.Core.Cluster;
-    using Apache.Ignite.Core.Impl;
-    using Apache.Ignite.Core.Portable;
-    using NUnit.Framework;
-
-    /// <summary>
-    /// Affinity key tests.
-    /// </summary>
-    public class CacheAffinityTest
-    {
-        /// <summary>
-        ///
-        /// </summary>
-        [TestFixtureSetUp]
-        public virtual void StartGrids()
-        {
-            TestUtils.KillProcesses();
-
-            IgniteConfigurationEx cfg = new IgniteConfigurationEx();
-
-            cfg.JvmClasspath = TestUtils.CreateTestClasspath();
-            cfg.JvmOptions = TestUtils.TestJavaOptions();
-            cfg.SpringConfigUrl = "config\\native-client-test-cache-affinity.xml";
-
-            for (int i = 0; i < 3; i++)
-            {
-                cfg.GridName = "grid-" + i;
-
-                Ignition.Start(cfg);
-            }
-        }
-
-        /// <summary>
-        /// Tear-down routine.
-        /// </summary>
-        [TestFixtureTearDown]
-        public virtual void StopGrids()
-        {
-            for (int i = 0; i < 3; i++)
-                Ignition.Stop("grid-" + i, true);
-        }
-
-        /// <summary>
-        /// Test affinity key.
-        /// </summary>
-        [Test]
-        public void TestAffinity()
-        {
-            IIgnite g = Ignition.GetIgnite("grid-0");
-
-            ICacheAffinity aff = g.GetAffinity(null);
-
-            IClusterNode node = aff.MapKeyToNode(new AffinityTestKey(0, 1));
-
-            for (int i = 0; i < 10; i++)
-                Assert.AreEqual(node.Id, aff.MapKeyToNode(new AffinityTestKey(i, 1)).Id);
-        }
-
-        /// <summary>
-        /// Test affinity with portable flag.
-        /// </summary>
-        [Test]
-        public void TestAffinityPortable()
-        {
-            IIgnite g = Ignition.GetIgnite("grid-0");
-
-            ICacheAffinity aff = g.GetAffinity(null);  
-
-            IPortableObject affKey = g.GetPortables().ToPortable<IPortableObject>(new AffinityTestKey(0, 1));
-
-            IClusterNode node = aff.MapKeyToNode(affKey);
-
-            for (int i = 0; i < 10; i++)
-            {
-                IPortableObject otherAffKey =
-                    g.GetPortables().ToPortable<IPortableObject>(new AffinityTestKey(i, 1));
-
-                Assert.AreEqual(node.Id, aff.MapKeyToNode(otherAffKey).Id);
-            }
-        }
-
-        /// <summary>
-        /// Affinity key.
-        /// </summary>
-        public class AffinityTestKey
-        {
-            /** ID. */
-            private int _id;
-
-            /** Affinity key. */
-            private int _affKey;
-
-            /// <summary>
-            /// Constructor.
-            /// </summary>
-            /// <param name="id">ID.</param>
-            /// <param name="affKey">Affinity key.</param>
-            public AffinityTestKey(int id, int affKey)
-            {
-                _id = id;
-                _affKey = affKey;
-            }
-
-            /** <inheritdoc /> */
-            public override bool Equals(object obj)
-            {
-                AffinityTestKey other = obj as AffinityTestKey;
-
-                return other != null && _id == other._id;
-            }
-
-            /** <inheritdoc /> */
-            public override int GetHashCode()
-            {
-                return _id;
-            }
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/ignite/blob/bcefaa24/modules/platform/dotnet/Apache.Ignite.Core.Tests/Cache/CacheDynamicStartTest.cs
----------------------------------------------------------------------
diff --git a/modules/platform/dotnet/Apache.Ignite.Core.Tests/Cache/CacheDynamicStartTest.cs b/modules/platform/dotnet/Apache.Ignite.Core.Tests/Cache/CacheDynamicStartTest.cs
deleted file mode 100644
index abef473..0000000
--- a/modules/platform/dotnet/Apache.Ignite.Core.Tests/Cache/CacheDynamicStartTest.cs
+++ /dev/null
@@ -1,281 +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
-{
-    using System;
-    using System.Collections.Generic;
-    using Apache.Ignite.Core.Cache;
-    using Apache.Ignite.Core.Impl;
-    using Apache.Ignite.Core.Portable;
-    using Apache.Ignite.Core.Tests.Query;
-    using NUnit.Framework;
-
-    /// <summary>
-    /// Tests for dynamic a cache start.
-    /// </summary>
-    public class CacheDynamicStartTest
-    {
-        /** Grid name: data. */
-        private const string GridData = "d";
-
-        /** Grid name: data, no configuration. */
-        private const string GridDataNoCfg = "dnc";
-
-        /** Grid name: client. */
-        private const string GridClient = "c";
-
-        /** Cache name: partitioned, transactional. */
-        private const string CacheTx = "p";
-
-        /** Cache name: atomic. */
-        private const string CacheAtomic = "pa";
-
-        /** Cache name: dummy. */
-        private const string CacheDummy = "dummy";
-        
-        /// <summary>
-        /// Set up routine.
-        /// </summary>
-        [SetUp]
-        public void SetUp()
-        {
-            TestUtils.KillProcesses();
-
-            Ignition.Start(CreateConfiguration(GridData, @"config/dynamic/dynamic-data.xml"));
-            Ignition.Start(CreateConfiguration(GridDataNoCfg, @"config/dynamic/dynamic-data-no-cfg.xml"));
-            Ignition.Start(CreateConfiguration(GridClient, @"config/dynamic/dynamic-client.xml"));
-        }
-
-        /// <summary>
-        /// Tear down routine.
-        /// </summary>
-        [TearDown]
-        public void StopGrids()
-        {
-            Ignition.Stop(GridData, true);
-            Ignition.Stop(GridDataNoCfg, true);
-            Ignition.Stop(GridClient, true);
-        }
-
-        /// <summary>
-        /// Create configuration.
-        /// </summary>
-        /// <param name="name">Grid name.</param>
-        /// <param name="springCfg">Spring configuration.</param>
-        /// <returns>Configuration.</returns>
-        private static IgniteConfigurationEx CreateConfiguration(string name, string springCfg)
-        {
-            IgniteConfigurationEx cfg = new IgniteConfigurationEx();
-
-            PortableConfiguration portCfg = new PortableConfiguration();
-
-            ICollection<PortableTypeConfiguration> portTypeCfgs = new List<PortableTypeConfiguration>();
-
-            portTypeCfgs.Add(new PortableTypeConfiguration(typeof(DynamicTestKey)));
-            portTypeCfgs.Add(new PortableTypeConfiguration(typeof(DynamicTestValue)));
-
-            portCfg.TypeConfigurations = portTypeCfgs;
-
-            cfg.GridName = name;
-            cfg.PortableConfiguration = portCfg;
-            cfg.JvmClasspath = TestUtils.CreateTestClasspath();
-            cfg.JvmOptions = TestUtils.TestJavaOptions();
-            cfg.SpringConfigUrl = springCfg;
-
-            return cfg;
-        }
-
-        /// <summary>
-        /// Try getting not configured cache.
-        /// </summary>
-        [Test]
-        public void TestNoStarted()
-        {
-            Assert.Throws<ArgumentException>(() =>
-            {
-                Ignition.GetIgnite(GridData).GetCache<CacheTestKey, PortablePerson>(CacheDummy);
-            });
-
-            Assert.Throws<ArgumentException>(() =>
-            {
-                Ignition.GetIgnite(GridDataNoCfg).GetCache<CacheTestKey, PortablePerson>(CacheDummy);
-            });
-
-            Assert.Throws<ArgumentException>(() =>
-            {
-                Ignition.GetIgnite(GridClient).GetCache<CacheTestKey, PortablePerson>(CacheDummy);
-            });
-        }
-
-        /// <summary>
-        /// Test TX cache.
-        /// </summary>
-        [Test]
-        public void TestTransactional()
-        {
-            Check(CacheTx);
-        }
-
-        /// <summary>
-        /// Test ATOMIC cache.
-        /// </summary>
-        [Test]
-        public void TestAtomic()
-        {
-            Check(CacheAtomic);
-        }
-
-        /// <summary>
-        /// Check routine.
-        /// </summary>
-        /// <param name="cacheName">Cache name.</param>
-        private void Check(string cacheName)
-        {
-            ICache<DynamicTestKey, DynamicTestValue> cacheData =
-                Ignition.GetIgnite(GridData).GetCache<DynamicTestKey, DynamicTestValue>(cacheName);
-
-            ICache<DynamicTestKey, DynamicTestValue> cacheDataNoCfg =
-                Ignition.GetIgnite(GridDataNoCfg).GetCache<DynamicTestKey, DynamicTestValue>(cacheName);
-
-            ICache<DynamicTestKey, DynamicTestValue> cacheClient =
-                Ignition.GetIgnite(GridClient).GetCache<DynamicTestKey, DynamicTestValue>(cacheName);
-
-            DynamicTestKey key1 = new DynamicTestKey(1);
-            DynamicTestKey key2 = new DynamicTestKey(2);
-            DynamicTestKey key3 = new DynamicTestKey(3);
-
-            DynamicTestValue val1 = new DynamicTestValue(1);
-            DynamicTestValue val2 = new DynamicTestValue(2);
-            DynamicTestValue val3 = new DynamicTestValue(3);
-
-            cacheData.Put(key1, val1);
-            Assert.AreEqual(val1, cacheData.Get(key1));
-            Assert.AreEqual(val1, cacheDataNoCfg.Get(key1));
-            Assert.AreEqual(val1, cacheClient.Get(key1));
-
-            cacheDataNoCfg.Put(key2, val2);
-            Assert.AreEqual(val2, cacheData.Get(key2));
-            Assert.AreEqual(val2, cacheDataNoCfg.Get(key2));
-            Assert.AreEqual(val2, cacheClient.Get(key2));
-
-            cacheClient.Put(key3, val3);
-            Assert.AreEqual(val3, cacheData.Get(key3));
-            Assert.AreEqual(val3, cacheDataNoCfg.Get(key3));
-            Assert.AreEqual(val3, cacheClient.Get(key3));
-
-            for (int i = 0; i < 10000; i++)
-                cacheClient.Put(new DynamicTestKey(i), new DynamicTestValue(1));
-
-            int sizeClient = cacheClient.GetLocalSize();
-
-            Assert.AreEqual(0, sizeClient);
-        }
-    }
-
-    /// <summary>
-    /// Key for dynamic cache start tests.
-    /// </summary>
-    class DynamicTestKey
-    {
-        /// <summary>
-        /// Default constructor.
-        /// </summary>
-        public DynamicTestKey()
-        {
-            // No-op.
-        }
-
-        /// <summary>
-        /// Constructor.
-        /// </summary>
-        /// <param name="id">ID.</param>
-        public DynamicTestKey(int id)
-        {
-            Id = id;
-        }
-
-        /// <summary>
-        /// ID.
-        /// </summary>
-        public int Id
-        {
-            get;
-            set;
-        }
-
-        /** <inheritdoc /> */
-        public override bool Equals(object obj)
-        {
-            DynamicTestKey other = obj as DynamicTestKey;
-
-            return other != null && Id == other.Id;
-        }
-
-        /** <inheritdoc /> */
-        public override int GetHashCode()
-        {
-            return Id;
-        }
-    }
-
-    /// <summary>
-    /// Value for dynamic cache start tests.
-    /// </summary>
-    class DynamicTestValue
-    {
-        /// <summary>
-        /// Default constructor.
-        /// </summary>
-        public DynamicTestValue()
-        {
-            // No-op.
-        }
-
-        /// <summary>
-        /// Constructor.
-        /// </summary>
-        /// <param name="id">ID.</param>
-        public DynamicTestValue(int id)
-        {
-            Id = id;
-        }
-
-        /// <summary>
-        /// ID.
-        /// </summary>
-        public int Id
-        {
-            get;
-            set;
-        }
-
-        /** <inheritdoc /> */
-        public override bool Equals(object obj)
-        {
-            DynamicTestValue other = obj as DynamicTestValue;
-
-            return other != null && Id == other.Id;
-        }
-
-        /** <inheritdoc /> */
-        public override int GetHashCode()
-        {
-            return Id;
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/ignite/blob/bcefaa24/modules/platform/dotnet/Apache.Ignite.Core.Tests/Cache/CacheEntryTest.cs
----------------------------------------------------------------------
diff --git a/modules/platform/dotnet/Apache.Ignite.Core.Tests/Cache/CacheEntryTest.cs b/modules/platform/dotnet/Apache.Ignite.Core.Tests/Cache/CacheEntryTest.cs
deleted file mode 100644
index 8464b8e..0000000
--- a/modules/platform/dotnet/Apache.Ignite.Core.Tests/Cache/CacheEntryTest.cs
+++ /dev/null
@@ -1,69 +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
-{
-    using System.Collections.Generic;
-    using Apache.Ignite.Core.Impl.Cache;
-    using NUnit.Framework;
-
-    /// <summary>
-    /// <see cref="CacheEntry{TK,TV}"/> tests.
-    /// </summary>
-    public class CacheEntryTest
-    {
-        /// <summary>
-        /// Tests equality members.
-        /// </summary>
-        [Test]
-        public void TestEquality()
-        {
-            var entry1 = new CacheEntry<int, int>(1, 2);
-            var entry2 = new CacheEntry<int, int>(1, 2);
-            var entry3 = new CacheEntry<int, int>(1, 3);
-
-            Assert.AreEqual(entry1, entry2);
-            Assert.AreNotEqual(entry1, entry3);
-
-            var boxedEntry1 = (object) entry1;
-            var boxedEntry2 = (object) entry2;
-            var boxedEntry3 = (object) entry3;
-
-            Assert.IsFalse(ReferenceEquals(boxedEntry1, boxedEntry2));
-
-            Assert.AreEqual(boxedEntry1, boxedEntry2);
-            Assert.AreNotEqual(boxedEntry1, boxedEntry3);
-        }
-
-        /// <summary>
-        /// Tests with hash data structures.
-        /// </summary>
-        [Test]
-        public void TestHashCode()
-        {
-            var entry1 = new CacheEntry<int, int>(1, 2);
-            var entry2 = new CacheEntry<int, int>(1, 2);
-            var entry3 = new CacheEntry<int, int>(1, 3);
-
-            var set = new HashSet<object> {entry1};
-
-            Assert.IsTrue(set.Contains(entry1));
-            Assert.IsTrue(set.Contains(entry2));
-            Assert.IsFalse(set.Contains(entry3));
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/ignite/blob/bcefaa24/modules/platform/dotnet/Apache.Ignite.Core.Tests/Cache/CacheForkedTest.cs
----------------------------------------------------------------------
diff --git a/modules/platform/dotnet/Apache.Ignite.Core.Tests/Cache/CacheForkedTest.cs b/modules/platform/dotnet/Apache.Ignite.Core.Tests/Cache/CacheForkedTest.cs
deleted file mode 100644
index 46c54e6..0000000
--- a/modules/platform/dotnet/Apache.Ignite.Core.Tests/Cache/CacheForkedTest.cs
+++ /dev/null
@@ -1,81 +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
-{
-    using System.IO;
-    using Apache.Ignite.Core.Tests.Process;
-    using NUnit.Framework;
-
-    /// <summary>
-    /// Tests cache with a standalone process.
-    /// </summary>
-    public class CacheForkedTest
-    {
-        /** */
-        private IIgnite _grid;
-
-        /// <summary>
-        /// Set up.
-        /// </summary>
-        [TestFixtureSetUp]
-        public void SetUp()
-        {
-            const string springConfigUrl = "config\\compute\\compute-grid1.xml";
-            
-            // ReSharper disable once UnusedVariable
-            var proc = new IgniteProcess(
-                "-jvmClasspath=" + TestUtils.CreateTestClasspath(),
-                "-springConfigUrl=" + Path.GetFullPath(springConfigUrl),
-                "-J-ea",
-                "-J-Xcheck:jni",
-                "-J-Xms512m",
-                "-J-Xmx512m",
-                "-J-DIGNITE_QUIET=false"
-                );
-
-            _grid = Ignition.Start(new IgniteConfiguration
-            {
-                JvmClasspath = TestUtils.CreateTestClasspath(),
-                JvmOptions = TestUtils.TestJavaOptions(),
-                SpringConfigUrl = springConfigUrl
-            });
-
-            Assert.IsTrue(_grid.WaitTopology(2, 30000));
-        }
-
-        /// <summary>
-        /// Tear down.
-        /// </summary>
-        [TestFixtureTearDown]
-        public void TearDown()
-        {
-            IgniteProcess.KillAll();
-
-            Ignition.StopAll(true);
-        }
-
-        /// <summary>
-        /// Tests cache clear.
-        /// </summary>
-        [Test]
-        public void TestClearCache()
-        {
-            _grid.GetCache<object, object>(null).Clear();
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ignite/blob/bcefaa24/modules/platform/dotnet/Apache.Ignite.Core.Tests/Cache/CacheLocalAtomicTest.cs
----------------------------------------------------------------------
diff --git a/modules/platform/dotnet/Apache.Ignite.Core.Tests/Cache/CacheLocalAtomicTest.cs b/modules/platform/dotnet/Apache.Ignite.Core.Tests/Cache/CacheLocalAtomicTest.cs
deleted file mode 100644
index b60c254..0000000
--- a/modules/platform/dotnet/Apache.Ignite.Core.Tests/Cache/CacheLocalAtomicTest.cs
+++ /dev/null
@@ -1,57 +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
-{
-    public class CacheLocalAtomicTest : CacheAbstractTest
-    {
-        protected override int CachePartitions()
-        {
-            return 1;
-        }
-
-        protected override int GridCount()
-        {
-            return 1;
-        }
-
-        protected override string CacheName()
-        {
-            return "local_atomic";
-        }
-
-        protected override bool NearEnabled()
-        {
-            return false;
-        }
-
-        protected override bool TxEnabled()
-        {
-            return false;
-        }
-
-        protected override bool LocalCache()
-        {
-            return true;
-        }
-
-        protected override int Backups()
-        {
-            return 0;
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/ignite/blob/bcefaa24/modules/platform/dotnet/Apache.Ignite.Core.Tests/Cache/CacheLocalTest.cs
----------------------------------------------------------------------
diff --git a/modules/platform/dotnet/Apache.Ignite.Core.Tests/Cache/CacheLocalTest.cs b/modules/platform/dotnet/Apache.Ignite.Core.Tests/Cache/CacheLocalTest.cs
deleted file mode 100644
index 02cb987..0000000
--- a/modules/platform/dotnet/Apache.Ignite.Core.Tests/Cache/CacheLocalTest.cs
+++ /dev/null
@@ -1,56 +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
-{
-    public class CacheLocalTest : CacheAbstractTest
-    {
-        protected override int CachePartitions()
-        {
-            return 1;
-        }
-
-        protected override int GridCount()
-        {
-            return 1;
-        }
-
-        protected override string CacheName()
-        {
-            return "local";
-        }
-
-        protected override bool NearEnabled()
-        {
-            return false;
-        }
-
-        protected override bool TxEnabled()
-        {
-            return true;
-        }
-        protected override bool LocalCache()
-        {
-            return true;
-        }
-
-        protected override int Backups()
-        {
-            return 0;
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/ignite/blob/bcefaa24/modules/platform/dotnet/Apache.Ignite.Core.Tests/Cache/CachePartitionedAtomicNearEnabledTest.cs
----------------------------------------------------------------------
diff --git a/modules/platform/dotnet/Apache.Ignite.Core.Tests/Cache/CachePartitionedAtomicNearEnabledTest.cs b/modules/platform/dotnet/Apache.Ignite.Core.Tests/Cache/CachePartitionedAtomicNearEnabledTest.cs
deleted file mode 100644
index 4f6e7a0..0000000
--- a/modules/platform/dotnet/Apache.Ignite.Core.Tests/Cache/CachePartitionedAtomicNearEnabledTest.cs
+++ /dev/null
@@ -1,50 +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
-{
-    using NUnit.Framework;
-
-    [Category(TestUtils.CategoryIntensive)]
-    public class CachePartitionedAtomicNearEnabledTest : CacheAbstractTest
-    {
-        protected override int GridCount()
-        {
-            return 3;
-        }
-
-        protected override string CacheName()
-        {
-            return "partitioned_atomic_near";
-        }
-
-        protected override bool NearEnabled()
-        {
-            return true;
-        }
-
-        protected override bool TxEnabled()
-        {
-            return false;
-        }
-
-        protected override int Backups()
-        {
-            return 1;
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/ignite/blob/bcefaa24/modules/platform/dotnet/Apache.Ignite.Core.Tests/Cache/CachePartitionedAtomicTest.cs
----------------------------------------------------------------------
diff --git a/modules/platform/dotnet/Apache.Ignite.Core.Tests/Cache/CachePartitionedAtomicTest.cs b/modules/platform/dotnet/Apache.Ignite.Core.Tests/Cache/CachePartitionedAtomicTest.cs
deleted file mode 100644
index ab59c64..0000000
--- a/modules/platform/dotnet/Apache.Ignite.Core.Tests/Cache/CachePartitionedAtomicTest.cs
+++ /dev/null
@@ -1,50 +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
-{
-    using NUnit.Framework;
-
-    [Category(TestUtils.CategoryIntensive)]
-    public class CachePartitionedAtomicTest : CacheAbstractTest
-    {
-        protected override int GridCount()
-        {
-            return 3;
-        }
-
-        protected override string CacheName()
-        {
-            return "partitioned_atomic";
-        }
-
-        protected override bool NearEnabled()
-        {
-            return false;
-        }
-
-        protected override bool TxEnabled()
-        {
-            return false;
-        }
-
-        protected override int Backups()
-        {
-            return 1;
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/ignite/blob/bcefaa24/modules/platform/dotnet/Apache.Ignite.Core.Tests/Cache/CachePartitionedNearEnabledTest.cs
----------------------------------------------------------------------
diff --git a/modules/platform/dotnet/Apache.Ignite.Core.Tests/Cache/CachePartitionedNearEnabledTest.cs b/modules/platform/dotnet/Apache.Ignite.Core.Tests/Cache/CachePartitionedNearEnabledTest.cs
deleted file mode 100644
index 830698b..0000000
--- a/modules/platform/dotnet/Apache.Ignite.Core.Tests/Cache/CachePartitionedNearEnabledTest.cs
+++ /dev/null
@@ -1,50 +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
-{
-    using NUnit.Framework;
-
-    [Category(TestUtils.CategoryIntensive)]
-    public class CachePartitionedNearEnabledTest : CacheAbstractTest
-    {
-        protected override int GridCount()
-        {
-            return 3;
-        }
-
-        protected override string CacheName()
-        {
-            return "partitioned_near";
-        }
-
-        protected override bool NearEnabled()
-        {
-            return true;
-        }
-
-        protected override bool TxEnabled()
-        {
-            return true;
-        }
-
-        protected override int Backups()
-        {
-            return 1;
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/ignite/blob/bcefaa24/modules/platform/dotnet/Apache.Ignite.Core.Tests/Cache/CachePartitionedTest.cs
----------------------------------------------------------------------
diff --git a/modules/platform/dotnet/Apache.Ignite.Core.Tests/Cache/CachePartitionedTest.cs b/modules/platform/dotnet/Apache.Ignite.Core.Tests/Cache/CachePartitionedTest.cs
deleted file mode 100644
index 02d3208..0000000
--- a/modules/platform/dotnet/Apache.Ignite.Core.Tests/Cache/CachePartitionedTest.cs
+++ /dev/null
@@ -1,50 +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
-{
-    using NUnit.Framework;
-
-    [Category(TestUtils.CategoryIntensive)]
-    public class CachePartitionedTest : CacheAbstractTest
-    {
-        protected override int GridCount()
-        {
-            return 3;
-        }
-
-        protected override string CacheName()
-        {
-            return "partitioned";
-        }
-
-        protected override bool NearEnabled()
-        {
-            return false;
-        }
-
-        protected override bool TxEnabled()
-        {
-            return true;
-        }
-
-        protected override int Backups()
-        {
-            return 1;
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/ignite/blob/bcefaa24/modules/platform/dotnet/Apache.Ignite.Core.Tests/Cache/CacheReplicatedAtomicTest.cs
----------------------------------------------------------------------
diff --git a/modules/platform/dotnet/Apache.Ignite.Core.Tests/Cache/CacheReplicatedAtomicTest.cs b/modules/platform/dotnet/Apache.Ignite.Core.Tests/Cache/CacheReplicatedAtomicTest.cs
deleted file mode 100644
index db6f5a5..0000000
--- a/modules/platform/dotnet/Apache.Ignite.Core.Tests/Cache/CacheReplicatedAtomicTest.cs
+++ /dev/null
@@ -1,60 +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
-{
-    using NUnit.Framework;
-
-    [Category(TestUtils.CategoryIntensive)]
-    public class CacheReplicatedAtomicTest : CacheAbstractTest
-    {
-        protected override int CachePartitions()
-        {
-            return 512;
-        }
-
-        protected override int GridCount()
-        {
-            return 3;
-        }
-
-        protected override string CacheName()
-        {
-            return "replicated_atomic";
-        }
-
-        protected override bool NearEnabled()
-        {
-            return false;
-        }
-
-        protected override bool TxEnabled()
-        {
-            return false;
-        }
-
-        protected override int Backups()
-        {
-            return GridCount() - 1;
-        }
-
-        protected override bool ReplicatedCache()
-        {
-            return true;
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/ignite/blob/bcefaa24/modules/platform/dotnet/Apache.Ignite.Core.Tests/Cache/CacheReplicatedTest.cs
----------------------------------------------------------------------
diff --git a/modules/platform/dotnet/Apache.Ignite.Core.Tests/Cache/CacheReplicatedTest.cs b/modules/platform/dotnet/Apache.Ignite.Core.Tests/Cache/CacheReplicatedTest.cs
deleted file mode 100644
index 7c70222..0000000
--- a/modules/platform/dotnet/Apache.Ignite.Core.Tests/Cache/CacheReplicatedTest.cs
+++ /dev/null
@@ -1,60 +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
-{
-    using NUnit.Framework;
-
-    [Category(TestUtils.CategoryIntensive)]
-    public class CacheReplicatedTest : CacheAbstractTest
-    {
-        protected override int CachePartitions()
-        {
-            return 512;
-        }
-
-        protected override int GridCount()
-        {
-            return 3;
-        }
-
-        protected override string CacheName()
-        {
-            return "replicated";
-        }
-
-        protected override bool NearEnabled()
-        {
-            return false;
-        }
-
-        protected override bool TxEnabled()
-        {
-            return true;
-        }
-
-        protected override int Backups()
-        {
-            return GridCount() - 1;
-        }
-
-        protected override bool ReplicatedCache()
-        {
-            return true;
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/ignite/blob/bcefaa24/modules/platform/dotnet/Apache.Ignite.Core.Tests/Cache/CacheTestAsyncWrapper.cs
----------------------------------------------------------------------
diff --git a/modules/platform/dotnet/Apache.Ignite.Core.Tests/Cache/CacheTestAsyncWrapper.cs b/modules/platform/dotnet/Apache.Ignite.Core.Tests/Cache/CacheTestAsyncWrapper.cs
deleted file mode 100644
index 52a856a..0000000
--- a/modules/platform/dotnet/Apache.Ignite.Core.Tests/Cache/CacheTestAsyncWrapper.cs
+++ /dev/null
@@ -1,437 +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
-{
-    using System.Collections;
-    using System.Collections.Generic;
-    using System.Diagnostics;
-    using Apache.Ignite.Core.Cache;
-    using Apache.Ignite.Core.Cache.Expiry;
-    using Apache.Ignite.Core.Cache.Query;
-    using Apache.Ignite.Core.Cache.Query.Continuous;
-    using Apache.Ignite.Core.Common;
-
-    /// <summary>
-    /// Wraps IGridCache implementation to simplify async mode testing.
-    /// </summary>
-    internal class CacheTestAsyncWrapper<TK, TV> : ICache<TK, TV>
-    {
-        private readonly ICache<TK, TV> _cache;
-
-        /// <summary>
-        /// Initializes a new instance of the <see cref="CacheTestAsyncWrapper{K, V}"/> class.
-        /// </summary>
-        /// <param name="cache">The cache to be wrapped.</param>
-        public CacheTestAsyncWrapper(ICache<TK, TV> cache)
-        {
-            Debug.Assert(cache.IsAsync, "GridCacheTestAsyncWrapper only works with async caches.");
-
-            _cache = cache;
-        }
-
-        /** <inheritDoc /> */
-        public ICache<TK, TV> WithAsync()
-        {
-            return this;
-        }
-
-        /** <inheritDoc /> */
-        public bool IsAsync
-        {
-            get { return true; }
-        }
-
-        /** <inheritDoc /> */
-        public IFuture GetFuture()
-        {
-            Debug.Fail("GridCacheTestAsyncWrapper.Future() should not be called. It always returns null.");
-            return null;
-        }
-
-        /** <inheritDoc /> */
-        public IFuture<TResult> GetFuture<TResult>()
-        {
-            Debug.Fail("GridCacheTestAsyncWrapper.Future() should not be called. It always returns null.");
-            return null;
-        }
-
-        /** <inheritDoc /> */
-        public string Name
-        {
-            get { return _cache.Name; }
-        }
-
-        /** <inheritDoc /> */
-        public IIgnite Ignite
-        {
-            get { return _cache.Ignite; }
-        }
-
-        /** <inheritDoc /> */
-
-        public bool IsEmpty()
-        {
-            return _cache.IsEmpty();
-        }
-
-        /** <inheritDoc /> */
-        public bool IsKeepPortable
-        {
-            get { return _cache.IsKeepPortable; }
-        }
-
-        /** <inheritDoc /> */
-        public ICache<TK, TV> WithSkipStore()
-        {
-            return _cache.WithSkipStore().WrapAsync();
-        }
-
-        /** <inheritDoc /> */
-        public ICache<TK, TV> WithExpiryPolicy(IExpiryPolicy plc)
-        {
-            return _cache.WithExpiryPolicy(plc).WrapAsync();
-        }
-
-        /** <inheritDoc /> */
-        public ICache<TK1, TV1> WithKeepPortable<TK1, TV1>()
-        {
-            return _cache.WithKeepPortable<TK1, TV1>().WrapAsync();
-        }
-        
-        /** <inheritDoc /> */
-        public void LoadCache(ICacheEntryFilter<TK, TV> p, params object[] args)
-        {
-            _cache.LoadCache(p, args);
-            WaitResult();
-        }
-
-        /** <inheritDoc /> */
-        public void LocalLoadCache(ICacheEntryFilter<TK, TV> p, params object[] args)
-        {
-            _cache.LocalLoadCache(p, args);
-            WaitResult();
-        }
-
-        /** <inheritDoc /> */
-        public bool ContainsKey(TK key)
-        {
-            _cache.ContainsKey(key);
-            return GetResult<bool>();
-        }
-
-        /** <inheritDoc /> */
-        public bool ContainsKeys(IEnumerable<TK> keys)
-        {
-            _cache.ContainsKeys(keys);
-            return GetResult<bool>();
-        }
-
-        /** <inheritDoc /> */
-        public TV LocalPeek(TK key, params CachePeekMode[] modes)
-        {
-            _cache.LocalPeek(key, modes);
-            return GetResult<TV>();
-        }
-
-        /** <inheritDoc /> */
-        public TV Get(TK key)
-        {
-            _cache.Get(key);
-            return GetResult<TV>();
-        }
-
-        /** <inheritDoc /> */
-        public IDictionary<TK, TV> GetAll(IEnumerable<TK> keys)
-        {
-            _cache.GetAll(keys);
-            return GetResult<IDictionary<TK, TV>>();
-        }
-
-        /** <inheritDoc /> */
-        public void Put(TK key, TV val)
-        {
-            _cache.Put(key, val);
-            WaitResult();
-        }
-
-        /** <inheritDoc /> */
-        public TV GetAndPut(TK key, TV val)
-        {
-            _cache.GetAndPut(key, val);
-            return GetResult<TV>();
-        }
-
-        /** <inheritDoc /> */
-        public TV GetAndReplace(TK key, TV val)
-        {
-            _cache.GetAndReplace(key, val);
-            return GetResult<TV>();
-        }
-
-        /** <inheritDoc /> */
-        public TV GetAndRemove(TK key)
-        {
-            _cache.GetAndRemove(key);
-            return GetResult<TV>();
-        }
-
-        /** <inheritDoc /> */
-        public bool PutIfAbsent(TK key, TV val)
-        {
-            _cache.PutIfAbsent(key, val);
-            return GetResult<bool>();
-        }
-
-        /** <inheritDoc /> */
-        public TV GetAndPutIfAbsent(TK key, TV val)
-        {
-            _cache.GetAndPutIfAbsent(key, val);
-            return GetResult<TV>();
-        }
-
-        /** <inheritDoc /> */
-        public bool Replace(TK key, TV val)
-        {
-            _cache.Replace(key, val);
-            return GetResult<bool>();
-        }
-
-        /** <inheritDoc /> */
-        public bool Replace(TK key, TV oldVal, TV newVal)
-        {
-            _cache.Replace(key, oldVal, newVal);
-            return GetResult<bool>();
-        }
-
-        /** <inheritDoc /> */
-        public void PutAll(IDictionary<TK, TV> vals)
-        {
-            _cache.PutAll(vals);
-            WaitResult();
-        }
-
-        /** <inheritDoc /> */
-        public void LocalEvict(IEnumerable<TK> keys)
-        {
-            _cache.LocalEvict(keys);
-        }
-
-        /** <inheritDoc /> */
-        public void Clear()
-        {
-            _cache.Clear();
-            WaitResult();
-        }
-
-        /** <inheritDoc /> */
-        public void Clear(TK key)
-        {
-            _cache.Clear(key);
-        }
-
-        /** <inheritDoc /> */
-        public void ClearAll(IEnumerable<TK> keys)
-        {
-            _cache.ClearAll(keys);
-        }
-
-        /** <inheritDoc /> */
-        public void LocalClear(TK key)
-        {
-            _cache.LocalClear(key);
-        }
-
-        /** <inheritDoc /> */
-        public void LocalClearAll(IEnumerable<TK> keys)
-        {
-            _cache.LocalClearAll(keys);
-        }
-
-        /** <inheritDoc /> */
-        public bool Remove(TK key)
-        {
-            _cache.Remove(key);
-            return GetResult<bool>();
-        }
-
-        /** <inheritDoc /> */
-        public bool Remove(TK key, TV val)
-        {
-            _cache.Remove(key, val);
-            return GetResult<bool>();
-        }
-
-        /** <inheritDoc /> */
-        public void RemoveAll(IEnumerable<TK> keys)
-        {
-            _cache.RemoveAll(keys);
-            WaitResult();
-        }
-
-        /** <inheritDoc /> */
-        public void RemoveAll()
-        {
-            _cache.RemoveAll();
-            WaitResult();
-        }
-
-        /** <inheritDoc /> */
-        public int GetLocalSize(params CachePeekMode[] modes)
-        {
-            return _cache.GetLocalSize(modes);
-        }
-
-        /** <inheritDoc /> */
-        public int GetSize(params CachePeekMode[] modes)
-        {
-            _cache.GetSize(modes);
-            return GetResult<int>();
-        }
-
-        /** <inheritDoc /> */
-        public void LocalPromote(IEnumerable<TK> keys)
-        {
-            _cache.LocalPromote(keys);
-        }
-        
-        /** <inheritDoc /> */
-        public IQueryCursor<ICacheEntry<TK, TV>> Query(QueryBase qry)
-        {
-            return _cache.Query(qry);
-        }
-
-        /** <inheritDoc /> */
-        public IQueryCursor<IList> QueryFields(SqlFieldsQuery qry)
-        {
-            return _cache.QueryFields(qry);
-        }
-
-        /** <inheritDoc /> */
-        IContinuousQueryHandle ICache<TK, TV>.QueryContinuous(ContinuousQuery<TK, TV> qry)
-        {
-            return _cache.QueryContinuous(qry);
-        }
-
-        /** <inheritDoc /> */
-        public IContinuousQueryHandle<ICacheEntry<TK, TV>> QueryContinuous(ContinuousQuery<TK, TV> qry, QueryBase initialQry)
-        {
-            return _cache.QueryContinuous(qry, initialQry);
-        }
-
-        /** <inheritDoc /> */
-        public IEnumerable<ICacheEntry<TK, TV>> GetLocalEntries(params CachePeekMode[] peekModes)
-        {
-            return _cache.GetLocalEntries(peekModes);
-        }
-
-        /** <inheritDoc /> */
-        public TR Invoke<TR, TA>(TK key, ICacheEntryProcessor<TK, TV, TA, TR> processor, TA arg)
-        {
-            _cache.Invoke(key, processor, arg);
-            
-            return GetResult<TR>();
-        }
-
-        /** <inheritDoc /> */
-        public IDictionary<TK, ICacheEntryProcessorResult<TR>> InvokeAll<TR, TA>(IEnumerable<TK> keys, 
-            ICacheEntryProcessor<TK, TV, TA, TR> processor, TA arg)
-        {
-            _cache.InvokeAll(keys, processor, arg);
-
-            return GetResult<IDictionary<TK, ICacheEntryProcessorResult<TR>>>();
-        }
-
-        /** <inheritDoc /> */
-        public ICacheLock Lock(TK key)
-        {
-            return _cache.Lock(key);
-        }
-
-        /** <inheritDoc /> */
-        public ICacheLock LockAll(IEnumerable<TK> keys)
-        {
-            return _cache.LockAll(keys);
-        }
-
-        /** <inheritDoc /> */
-        public bool IsLocalLocked(TK key, bool byCurrentThread)
-        {
-            return _cache.IsLocalLocked(key, byCurrentThread);
-        }
-
-        /** <inheritDoc /> */
-        public ICacheMetrics GetMetrics()
-        {
-            return _cache.GetMetrics();
-        }
-
-        /** <inheritDoc /> */
-        public IFuture Rebalance()
-        {
-            return _cache.Rebalance();
-        }
-
-        /** <inheritDoc /> */
-        public ICache<TK, TV> WithNoRetries()
-        {
-            return _cache.WithNoRetries();
-        }
-
-        /** <inheritDoc /> */
-        public IEnumerator<ICacheEntry<TK, TV>> GetEnumerator()
-        {
-            return _cache.GetEnumerator();
-        }
-
-        /** <inheritDoc /> */
-        IEnumerator IEnumerable.GetEnumerator()
-        {
-            return GetEnumerator();
-        }
-
-        /// <summary>
-        /// Waits for the async result.
-        /// </summary>
-        private void WaitResult()
-        {
-            GetResult<object>();
-        }
-
-        /// <summary>
-        /// Gets the async result.
-        /// </summary>
-        private T GetResult<T>()
-        {
-            return _cache.GetFuture<T>().Get();
-        }
-    }
-
-    /// <summary>
-    /// Extension methods for IGridCache.
-    /// </summary>
-    public static class CacheExtensions
-    {
-        /// <summary>
-        /// Wraps specified instance into GridCacheTestAsyncWrapper.
-        /// </summary>
-        public static ICache<TK, TV> WrapAsync<TK, TV>(this ICache<TK, TV> cache)
-        {
-            return new CacheTestAsyncWrapper<TK, TV>(cache);
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ignite/blob/bcefaa24/modules/platform/dotnet/Apache.Ignite.Core.Tests/Cache/Query/CacheQueriesTest.cs
----------------------------------------------------------------------
diff --git a/modules/platform/dotnet/Apache.Ignite.Core.Tests/Cache/Query/CacheQueriesTest.cs b/modules/platform/dotnet/Apache.Ignite.Core.Tests/Cache/Query/CacheQueriesTest.cs
deleted file mode 100644
index 18f04ef..0000000
--- a/modules/platform/dotnet/Apache.Ignite.Core.Tests/Cache/Query/CacheQueriesTest.cs
+++ /dev/null
@@ -1,928 +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
-{
-    using System;
-    using System.Collections;
-    using System.Collections.Generic;
-    using System.Diagnostics.CodeAnalysis;
-    using System.Text;
-    using Apache.Ignite.Core.Cache;
-    using Apache.Ignite.Core.Cache.Query;
-    using Apache.Ignite.Core.Common;
-    using Apache.Ignite.Core.Impl;
-    using Apache.Ignite.Core.Impl.Portable;
-    using Apache.Ignite.Core.Portable;
-    using NUnit.Framework;
-
-    /// <summary>
-    /// Queries tests.
-    /// </summary>
-    public class CacheQueriesTest
-    {
-        /** Grid count. */
-        private const int GridCnt = 2;
-
-        /** Cache name. */
-        private const string CacheName = "cache";
-
-        /** Path to XML configuration. */
-        private const string CfgPath = "config\\cache-query.xml";
-
-        /** Maximum amount of items in cache. */
-        private const int MaxItemCnt = 100;
-
-        /// <summary>
-        /// 
-        /// </summary>
-        [TestFixtureSetUp]
-        public virtual void StartGrids()
-        {
-            TestUtils.JvmDebug = true;
-            TestUtils.KillProcesses();
-
-            IgniteConfigurationEx cfg = new IgniteConfigurationEx
-            {
-                PortableConfiguration = new PortableConfiguration
-                {
-                    TypeConfigurations = new[]
-                    {
-                        new PortableTypeConfiguration(typeof (QueryPerson)),
-                        new PortableTypeConfiguration(typeof (PortableScanQueryFilter<QueryPerson>)),
-                        new PortableTypeConfiguration(typeof (PortableScanQueryFilter<PortableUserObject>))
-                    }
-                },
-                JvmClasspath = TestUtils.CreateTestClasspath(),
-                JvmOptions = TestUtils.TestJavaOptions(),
-                SpringConfigUrl = CfgPath
-            };
-
-            for (int i = 0; i < GridCnt; i++)
-            {
-                cfg.GridName = "grid-" + i;
-
-                Ignition.Start(cfg);
-            }
-        }
-
-        /// <summary>
-        /// 
-        /// </summary>
-        [TestFixtureTearDown]
-        public virtual void StopGrids()
-        {
-            for (int i = 0; i < GridCnt; i++)
-                Ignition.Stop("grid-" + i, true);
-        }
-
-        /// <summary>
-        /// 
-        /// </summary>
-        [SetUp]
-        public virtual void BeforeTest()
-        {
-            Console.WriteLine("Test started: " + TestContext.CurrentContext.Test.Name);
-        }
-
-        /// <summary>
-        /// 
-        /// </summary>
-        [TearDown]
-        public virtual void AfterTest()
-        {
-            var cache = Cache();
-
-            for (int i = 0; i < GridCnt; i++)
-            {
-                for (int j = 0; j < MaxItemCnt; j++)
-                    cache.Remove(j);
-
-                Assert.IsTrue(cache.IsEmpty());
-            }
-
-            Console.WriteLine("Test finished: " + TestContext.CurrentContext.Test.Name);
-        }
-
-        /// <summary>
-        /// 
-        /// </summary>
-        /// <param name="idx"></param>
-        /// <returns></returns>
-        public IIgnite GetIgnite(int idx)
-        {
-            return Ignition.GetIgnite("grid-" + idx);
-        }
-
-        /// <summary>
-        /// 
-        /// </summary>
-        /// <param name="idx"></param>
-        /// <returns></returns>
-        public ICache<int, QueryPerson> Cache(int idx)
-        {
-            return GetIgnite(idx).GetCache<int, QueryPerson>(CacheName);
-        }
-
-        /// <summary>
-        /// 
-        /// </summary>
-        /// <returns></returns>
-        public ICache<int, QueryPerson> Cache()
-        {
-            return Cache(0);
-        }
-
-        /// <summary>
-        /// Test arguments validation for SQL queries.
-        /// </summary>
-        [Test]
-        public void TestValidationSql()
-        {
-            // 1. No sql.
-            Assert.Throws<ArgumentException>(() =>
-                { Cache().Query(new SqlQuery(typeof(QueryPerson), null)); });
-
-            // 2. No type.
-            Assert.Throws<ArgumentException>(() =>
-                { Cache().Query(new SqlQuery((string)null, "age >= 50")); });
-        }
-
-        /// <summary>
-        /// Test arguments validation for SQL fields queries.
-        /// </summary>
-        [Test]
-        public void TestValidationSqlFields()
-        {
-            // 1. No sql.
-            Assert.Throws<ArgumentException>(() => { Cache().QueryFields(new SqlFieldsQuery(null)); });
-        }
-
-        /// <summary>
-        /// Test arguments validation for TEXT queries.
-        /// </summary>
-        [Test]
-        public void TestValidationText()
-        {
-            // 1. No text.
-            Assert.Throws<ArgumentException>(() =>
-                { Cache().Query(new TextQuery(typeof(QueryPerson), null)); });
-
-            // 2. No type.
-            Assert.Throws<ArgumentException>(() =>
-                { Cache().Query(new TextQuery((string)null, "Ivanov")); });
-        }
-
-        /// <summary>
-        /// Cursor tests.
-        /// </summary>
-        [Test]
-        [SuppressMessage("ReSharper", "ReturnValueOfPureMethodIsNotUsed")]
-        public void TestCursor()
-        {
-            var cache0 = Cache().WithAsync();
-
-            cache0.WithAsync().Put(1, new QueryPerson("Ivanov", 30));
-
-            IFuture<object> res = cache0.GetFuture<object>();
-
-            res.Get();
-
-            Cache().Put(1, new QueryPerson("Ivanov", 30));
-            Cache().Put(1, new QueryPerson("Petrov", 40));
-            Cache().Put(1, new QueryPerson("Sidorov", 50));
-
-            SqlQuery qry = new SqlQuery(typeof(QueryPerson), "age >= 20");
-
-            // 1. Test GetAll().
-            using (IQueryCursor<ICacheEntry<int, QueryPerson>> cursor = Cache().Query(qry))
-            {
-                cursor.GetAll();
-
-                Assert.Throws<InvalidOperationException>(() => { cursor.GetAll(); });
-                Assert.Throws<InvalidOperationException>(() => { cursor.GetEnumerator(); });
-            }
-
-            // 2. Test GetEnumerator.
-            using (IQueryCursor<ICacheEntry<int, QueryPerson>> cursor = Cache().Query(qry))
-            {
-                cursor.GetEnumerator();
-
-                Assert.Throws<InvalidOperationException>(() => { cursor.GetAll(); });
-                Assert.Throws<InvalidOperationException>(() => { cursor.GetEnumerator(); });
-            }
-        }
-
-        /// <summary>
-        /// Test enumerator.
-        /// </summary>
-        [Test]
-        [SuppressMessage("ReSharper", "UnusedVariable")]
-        public void TestEnumerator()
-        {
-            Cache().Put(1, new QueryPerson("Ivanov", 30));
-            Cache().Put(2, new QueryPerson("Petrov", 40));
-            Cache().Put(3, new QueryPerson("Sidorov", 50));
-            Cache().Put(4, new QueryPerson("Unknown", 60));
-
-            // 1. Empty result set.
-            using (
-                IQueryCursor<ICacheEntry<int, QueryPerson>> cursor =
-                    Cache().Query(new SqlQuery(typeof(QueryPerson), "age = 100")))
-            {
-                IEnumerator<ICacheEntry<int, QueryPerson>> e = cursor.GetEnumerator();
-
-                Assert.Throws<InvalidOperationException>(() =>
-                    { ICacheEntry<int, QueryPerson> entry = e.Current; });
-
-                Assert.IsFalse(e.MoveNext());
-
-                Assert.Throws<InvalidOperationException>(() =>
-                    { ICacheEntry<int, QueryPerson> entry = e.Current; });
-
-                Assert.Throws<NotSupportedException>(() => e.Reset());
-            }
-
-            SqlQuery qry = new SqlQuery(typeof (QueryPerson), "age < 60");
-
-            // 2. Page size is bigger than result set.
-            qry.PageSize = 4;
-            CheckEnumeratorQuery(qry);
-
-            // 3. Page size equal to result set.
-            qry.PageSize = 3;
-            CheckEnumeratorQuery(qry);
-
-            // 4. Page size if less than result set.
-            qry.PageSize = 2;
-            CheckEnumeratorQuery(qry);
-        }
-
-        /// <summary>
-        /// Test SQL query arguments passing.
-        /// </summary>
-        public void TestSqlQueryArguments()
-        {
-            Cache().Put(1, new QueryPerson("Ivanov", 30));
-            Cache().Put(2, new QueryPerson("Petrov", 40));
-            Cache().Put(3, new QueryPerson("Sidorov", 50));
-
-            // 1. Empty result set.
-            using (
-                IQueryCursor<ICacheEntry<int, QueryPerson>> cursor =
-                    Cache().Query(new SqlQuery(typeof(QueryPerson), "age < ?", 50)))
-            {
-                foreach (ICacheEntry<int, QueryPerson> entry in cursor.GetAll())
-                    Assert.IsTrue(entry.Key == 1 || entry.Key == 2);
-            }
-        }
-
-        /// <summary>
-        /// Test SQL fields query arguments passing.
-        /// </summary>
-        public void TestSqlFieldsQueryArguments()
-        {
-            Cache().Put(1, new QueryPerson("Ivanov", 30));
-            Cache().Put(2, new QueryPerson("Petrov", 40));
-            Cache().Put(3, new QueryPerson("Sidorov", 50));
-
-            // 1. Empty result set.
-            using (
-                IQueryCursor<IList> cursor = Cache().QueryFields(
-                    new SqlFieldsQuery("SELECT age FROM QueryPerson WHERE age < ?", 50)))
-            {
-                foreach (IList entry in cursor.GetAll())
-                    Assert.IsTrue((int) entry[0] < 50);
-            }
-        }
-
-        /// <summary>
-        /// Check query result for enumerator test.
-        /// </summary>
-        /// <param name="qry">QUery.</param>
-        private void CheckEnumeratorQuery(SqlQuery qry)
-        {
-            using (IQueryCursor<ICacheEntry<int, QueryPerson>> cursor = Cache().Query(qry))
-            {
-                bool first = false;
-                bool second = false;
-                bool third = false;
-
-                foreach (var entry in cursor)
-                {
-                    if (entry.Key == 1)
-                    {
-                        first = true;
-
-                        Assert.AreEqual("Ivanov", entry.Value.Name);
-                        Assert.AreEqual(30, entry.Value.Age);
-                    }
-                    else if (entry.Key == 2)
-                    {
-                        second = true;
-
-                        Assert.AreEqual("Petrov", entry.Value.Name);
-                        Assert.AreEqual(40, entry.Value.Age);
-                    }
-                    else if (entry.Key == 3)
-                    {
-                        third = true;
-
-                        Assert.AreEqual("Sidorov", entry.Value.Name);
-                        Assert.AreEqual(50, entry.Value.Age);
-                    }
-                    else
-                        Assert.Fail("Unexpected value: " + entry);
-                }
-
-                Assert.IsTrue(first && second && third);
-            }
-        }
-
-        /// <summary>
-        /// Check SQL query.
-        /// </summary>
-        [Test]
-        public void TestSqlQuery()
-        {
-            CheckSqlQuery(MaxItemCnt, false, false);
-        }
-
-        /// <summary>
-        /// Check SQL query in portable mode.
-        /// </summary>
-        [Test]
-        public void TestSqlQueryPortable()
-        {
-            CheckSqlQuery(MaxItemCnt, false, true);
-        }
-
-        /// <summary>
-        /// Check local SQL query.
-        /// </summary>
-        [Test]
-        public void TestSqlQueryLocal()
-        {
-            CheckSqlQuery(MaxItemCnt, true, false);
-        }
-
-        /// <summary>
-        /// Check local SQL query in portable mode.
-        /// </summary>
-        [Test]
-        public void TestSqlQueryLocalPortable()
-        {
-            CheckSqlQuery(MaxItemCnt, true, true);
-        }
-
-        /// <summary>
-        /// Check SQL query.
-        /// </summary>
-        /// <param name="cnt">Amount of cache entries to create.</param>
-        /// <param name="loc">Local query flag.</param>
-        /// <param name="keepPortable">Keep portable flag.</param>
-        private void CheckSqlQuery(int cnt, bool loc, bool keepPortable)
-        {
-            var cache = Cache();
-
-            // 1. Populate cache with data, calculating expected count in parallel.
-            var exp = PopulateCache(cache, loc, cnt, x => x < 50);
-
-            // 2. Validate results.
-            SqlQuery qry = loc ?  new SqlQuery(typeof(QueryPerson), "age < 50", true) :
-                new SqlQuery(typeof(QueryPerson), "age < 50");
-
-            ValidateQueryResults(cache, qry, exp, keepPortable);
-        }
-
-        /// <summary>
-        /// Check SQL fields query.
-        /// </summary>
-        [Test]
-        public void TestSqlFieldsQuery()
-        {
-            CheckSqlFieldsQuery(MaxItemCnt, false);
-        }
-
-        /// <summary>
-        /// Check local SQL fields query.
-        /// </summary>
-        [Test]
-        public void TestSqlFieldsQueryLocal()
-        {
-            CheckSqlFieldsQuery(MaxItemCnt, true);
-        }
-
-        /// <summary>
-        /// Check SQL fields query.
-        /// </summary>
-        /// <param name="cnt">Amount of cache entries to create.</param>
-        /// <param name="loc">Local query flag.</param>
-        private void CheckSqlFieldsQuery(int cnt, bool loc)
-        {
-            var cache = Cache();
-
-            // 1. Populate cache with data, calculating expected count in parallel.
-            var exp = PopulateCache(cache, loc, cnt, x => x < 50);
-
-            // 2. Vlaidate results.
-            SqlFieldsQuery qry = loc ? new SqlFieldsQuery("SELECT name, age FROM QueryPerson WHERE age < 50", true) :
-                new SqlFieldsQuery("SELECT name, age FROM QueryPerson WHERE age < 50");
-
-            using (IQueryCursor<IList> cursor = cache.QueryFields(qry))
-            {
-                HashSet<int> exp0 = new HashSet<int>(exp);
-
-                foreach (var entry in cursor.GetAll())
-                {
-                    Assert.AreEqual(2, entry.Count);
-                    Assert.AreEqual(entry[0].ToString(), entry[1].ToString());
-
-                    exp0.Remove((int)entry[1]);
-                }
-
-                Assert.AreEqual(0, exp0.Count);
-            }
-
-            using (IQueryCursor<IList> cursor = cache.QueryFields(qry))
-            {
-                HashSet<int> exp0 = new HashSet<int>(exp);
-
-                foreach (var entry in cursor)
-                {
-                    Assert.AreEqual(entry[0].ToString(), entry[1].ToString());
-
-                    exp0.Remove((int)entry[1]);
-                }
-
-                Assert.AreEqual(0, exp0.Count);
-            }
-        }
-
-        /// <summary>
-        /// Check text query.
-        /// </summary>
-        [Test]
-        public void TestTextQuery()
-        {
-            CheckTextQuery(MaxItemCnt, false, false);
-        }
-
-        /// <summary>
-        /// Check SQL query in portable mode.
-        /// </summary>
-        [Test]
-        public void TestTextQueryPortable()
-        {
-            CheckTextQuery(MaxItemCnt, false, true);
-        }
-
-        /// <summary>
-        /// Check local SQL query.
-        /// </summary>
-        [Test]
-        public void TestTextQueryLocal()
-        {
-            CheckTextQuery(MaxItemCnt, true, false);
-        }
-
-        /// <summary>
-        /// Check local SQL query in portable mode.
-        /// </summary>
-        [Test]
-        public void TestTextQueryLocalPortable()
-        {
-            CheckTextQuery(MaxItemCnt, true, true);
-        }
-
-        /// <summary>
-        /// Check text query.
-        /// </summary>
-        /// <param name="cnt">Amount of cache entries to create.</param>
-        /// <param name="loc">Local query flag.</param>
-        /// <param name="keepPortable">Keep portable flag.</param>
-        private void CheckTextQuery(int cnt, bool loc, bool keepPortable)
-        {
-            var cache = Cache();
-
-            // 1. Populate cache with data, calculating expected count in parallel.
-            var exp = PopulateCache(cache, loc, cnt, x => x.ToString().StartsWith("1"));
-
-            // 2. Validate results.
-            TextQuery qry = loc ? new TextQuery(typeof(QueryPerson), "1*", true) :
-                new TextQuery(typeof(QueryPerson), "1*");
-
-            ValidateQueryResults(cache, qry, exp, keepPortable);
-        }
-
-        /// <summary>
-        /// Check scan query.
-        /// </summary>
-        [Test]
-        public void TestScanQuery()
-        {
-            CheckScanQuery<QueryPerson>(MaxItemCnt, false, false);
-        }
-
-        /// <summary>
-        /// Check scan query in portable mode.
-        /// </summary>
-        [Test]
-        public void TestScanQueryPortable()
-        {
-            CheckScanQuery<PortableUserObject>(MaxItemCnt, false, true);
-        }
-
-        /// <summary>
-        /// Check local scan query.
-        /// </summary>
-        [Test]
-        public void TestScanQueryLocal()
-        {
-            CheckScanQuery<QueryPerson>(MaxItemCnt, true, false);
-        }
-
-        /// <summary>
-        /// Check local scan query in portable mode.
-        /// </summary>
-        [Test]
-        public void TestScanQueryLocalPortable()
-        {
-            CheckScanQuery<PortableUserObject>(MaxItemCnt, true, true);
-        }
-
-        /// <summary>
-        /// Check scan query with partitions.
-        /// </summary>
-        [Test]
-        [Ignore("IGNITE-1012")]
-        public void TestScanQueryPartitions([Values(true, false)]  bool loc)
-        {
-            CheckScanQueryPartitions<QueryPerson>(MaxItemCnt, loc, false);
-        }
-
-        /// <summary>
-        /// Check scan query with partitions in portable mode.
-        /// </summary>
-        [Test]
-        [Ignore("IGNITE-1012")]
-        public void TestScanQueryPartitionsPortable([Values(true, false)]  bool loc)
-        {
-            CheckScanQueryPartitions<PortableUserObject>(MaxItemCnt, loc, true);
-        }
-
-        /// <summary>
-        /// Tests that query attempt on non-indexed cache causes an exception.
-        /// </summary>
-        [Test]
-        public void TestIndexingDisabledError()
-        {
-            var cache = GetIgnite(0).GetOrCreateCache<int, QueryPerson>("nonindexed_cache");
-
-            var queries = new QueryBase[]
-            {
-                new TextQuery(typeof (QueryPerson), "1*"),
-                new SqlQuery(typeof (QueryPerson), "age < 50")
-            };
-
-            foreach (var qry in queries)
-            {
-                var err = Assert.Throws<IgniteException>(() => cache.Query(qry));
-
-                Assert.AreEqual("Indexing is disabled for cache: nonindexed_cache. " +
-                    "Use setIndexedTypes or setTypeMetadata methods on CacheConfiguration to enable.", err.Message);
-            }
-        }
-
-        /// <summary>
-        /// Check scan query.
-        /// </summary>
-        /// <param name="cnt">Amount of cache entries to create.</param>
-        /// <param name="loc">Local query flag.</param>
-        /// <param name="keepPortable">Keep portable flag.</param>
-        private void CheckScanQuery<TV>(int cnt, bool loc, bool keepPortable)
-        {
-            var cache = Cache();
-
-            // No predicate
-            var exp = PopulateCache(cache, loc, cnt, x => true);
-            var qry = new ScanQuery<int, TV>();
-            ValidateQueryResults(cache, qry, exp, keepPortable);
-
-            // Serializable
-            exp = PopulateCache(cache, loc, cnt, x => x < 50);
-            qry = new ScanQuery<int, TV>(new ScanQueryFilter<TV>());
-            ValidateQueryResults(cache, qry, exp, keepPortable);
-
-            // Portable
-            exp = PopulateCache(cache, loc, cnt, x => x < 50);
-            qry = new ScanQuery<int, TV>(new PortableScanQueryFilter<TV>());
-            ValidateQueryResults(cache, qry, exp, keepPortable);
-
-            // Exception
-            exp = PopulateCache(cache, loc, cnt, x => x < 50);
-            qry = new ScanQuery<int, TV>(new ScanQueryFilter<TV> {ThrowErr = true});
-            
-            var ex = Assert.Throws<IgniteException>(() => ValidateQueryResults(cache, qry, exp, keepPortable));
-            Assert.AreEqual(ScanQueryFilter<TV>.ErrMessage, ex.Message);
-        }
-
-        /// <summary>
-        /// Checks scan query with partitions.
-        /// </summary>
-        /// <param name="cnt">Amount of cache entries to create.</param>
-        /// <param name="loc">Local query flag.</param>
-        /// <param name="keepPortable">Keep portable flag.</param>
-        private void CheckScanQueryPartitions<TV>(int cnt, bool loc, bool keepPortable)
-        {
-            StopGrids();
-            StartGrids();
-
-            var cache = Cache();
-
-            var aff = cache.Ignite.GetAffinity(CacheName);
-            var exp = PopulateCache(cache, loc, cnt, x => true);  // populate outside the loop (slow)
-
-            for (var part = 0; part < aff.Partitions; part++)
-            {
-                //var exp0 = new HashSet<int>(exp.Where(x => aff.Partition(x) == part)); // filter expected keys
-                var exp0 = new HashSet<int>();
-                foreach (var x in exp)
-                    if (aff.GetPartition(x) == part)
-                        exp0.Add(x);
-
-                var qry = new ScanQuery<int, TV> { Partition = part };
-
-                Console.WriteLine("Checking query on partition " + part);
-                ValidateQueryResults(cache, qry, exp0, keepPortable);
-            }
-
-            // Partitions with predicate
-            exp = PopulateCache(cache, loc, cnt, x => x < 50);  // populate outside the loop (slow)
-
-            for (var part = 0; part < aff.Partitions; part++)
-            {
-                //var exp0 = new HashSet<int>(exp.Where(x => aff.Partition(x) == part)); // filter expected keys
-                var exp0 = new HashSet<int>();
-                foreach (var x in exp)
-                    if (aff.GetPartition(x) == part)
-                        exp0.Add(x);
-
-                var qry = new ScanQuery<int, TV>(new ScanQueryFilter<TV>()) { Partition = part };
-
-                Console.WriteLine("Checking predicate query on partition " + part);
-                ValidateQueryResults(cache, qry, exp0, keepPortable);
-            }
-            
-        }
-
-        /// <summary>
-        /// Validates the query results.
-        /// </summary>
-        /// <param name="cache">Cache.</param>
-        /// <param name="qry">Query.</param>
-        /// <param name="exp">Expected keys.</param>
-        /// <param name="keepPortable">Keep portable flag.</param>
-        private static void ValidateQueryResults(ICache<int, QueryPerson> cache, QueryBase qry, HashSet<int> exp,
-            bool keepPortable)
-        {
-            if (keepPortable)
-            {
-                var cache0 = cache.WithKeepPortable<int, IPortableObject>();
-
-                using (var cursor = cache0.Query(qry))
-                {
-                    HashSet<int> exp0 = new HashSet<int>(exp);
-                    var all = new List<ICacheEntry<int, object>>();
-
-                    foreach (var entry in cursor.GetAll())
-                    {
-                        all.Add(entry);
-
-                        Assert.AreEqual(entry.Key.ToString(), entry.Value.GetField<string>("name"));
-                        Assert.AreEqual(entry.Key, entry.Value.GetField<int>("age"));
-
-                        exp0.Remove(entry.Key);
-                    }
-
-                    AssertMissingExpectedKeys(exp0, cache, all);
-                }
-
-                using (var cursor = cache0.Query(qry))
-                {
-                    HashSet<int> exp0 = new HashSet<int>(exp);
-                    var all = new List<ICacheEntry<int, object>>();
-
-                    foreach (var entry in cursor)
-                    {
-                        all.Add(entry);
-
-                        Assert.AreEqual(entry.Key.ToString(), entry.Value.GetField<string>("name"));
-                        Assert.AreEqual(entry.Key, entry.Value.GetField<int>("age"));
-
-                        exp0.Remove(entry.Key);
-                    }
-
-                    AssertMissingExpectedKeys(exp0, cache, all);
-                }
-            }
-            else
-            {
-                using (var cursor = cache.Query(qry))
-                {
-                    HashSet<int> exp0 = new HashSet<int>(exp);
-                    var all = new List<ICacheEntry<int, object>>();
-
-                    foreach (var entry in cursor.GetAll())
-                    {
-                        all.Add(entry);
-
-                        Assert.AreEqual(entry.Key.ToString(), entry.Value.Name);
-                        Assert.AreEqual(entry.Key, entry.Value.Age);
-
-                        exp0.Remove(entry.Key);
-                    }
-
-                    AssertMissingExpectedKeys(exp0, cache, all);
-                }
-
-                using (var cursor = cache.Query(qry))
-                {
-                    HashSet<int> exp0 = new HashSet<int>(exp);
-                    var all = new List<ICacheEntry<int, object>>();
-
-                    foreach (var entry in cursor)
-                    {
-                        all.Add(entry);
-
-                        Assert.AreEqual(entry.Key.ToString(), entry.Value.Name);
-                        Assert.AreEqual(entry.Key, entry.Value.Age);
-
-                        exp0.Remove(entry.Key);
-                    }
-
-                    AssertMissingExpectedKeys(exp0, cache, all);
-                }
-            }
-        }
-
-        /// <summary>
-        /// Asserts that all expected entries have been received.
-        /// </summary>
-        private static void AssertMissingExpectedKeys(ICollection<int> exp, ICache<int, QueryPerson> cache, 
-            IList<ICacheEntry<int, object>> all)
-        {
-            if (exp.Count == 0)
-                return;
-
-            var sb = new StringBuilder();
-            var aff = cache.Ignite.GetAffinity(cache.Name);
-
-            foreach (var key in exp)
-            {
-                var part = aff.GetPartition(key);
-                sb.AppendFormat(
-                    "Query did not return expected key '{0}' (exists: {1}), partition '{2}', partition nodes: ", 
-                    key, cache.Get(key) != null, part);
-
-                var partNodes = aff.MapPartitionToPrimaryAndBackups(part);
-
-                foreach (var node in partNodes)
-                    sb.Append(node).Append("  ");
-
-                sb.AppendLine(";");
-            }
-
-            sb.Append("Returned keys: ");
-
-            foreach (var e in all)
-                sb.Append(e.Key).Append(" ");
-
-            sb.AppendLine(";");
-
-            Assert.Fail(sb.ToString());
-        }
-
-        /// <summary>
-        /// Populates the cache with random entries and returns expected results set according to filter.
-        /// </summary>
-        /// <param name="cache">The cache.</param>
-        /// <param name="cnt">Amount of cache entries to create.</param>
-        /// <param name="loc">Local query flag.</param>
-        /// <param name="expectedEntryFilter">The expected entry filter.</param>
-        /// <returns>Expected results set.</returns>
-        private static HashSet<int> PopulateCache(ICache<int, QueryPerson> cache,  bool loc, int cnt,
-            Func<int, bool> expectedEntryFilter)
-        {
-            var rand = new Random();
-
-            var exp = new HashSet<int>();
-
-            for (var i = 0; i < cnt; i++)
-            {
-                var val = rand.Next(100);
-
-                cache.Put(val, new QueryPerson(val.ToString(), val));
-
-                if (expectedEntryFilter(val) && (!loc || cache.Ignite.GetAffinity(cache.Name)
-                    .IsPrimary(cache.Ignite.GetCluster().GetLocalNode(), val)))
-                    exp.Add(val);
-            }
-
-            return exp;
-        }
-    }
-
-    /// <summary>
-    /// Person.
-    /// </summary>
-    public class QueryPerson
-    {
-        /// <summary>
-        /// Constructor.
-        /// </summary>
-        public QueryPerson()
-        {
-            // No-op.
-        }
-
-        /// <summary>
-        /// Constructor.
-        /// </summary>
-        /// <param name="name">Name.</param>
-        /// <param name="age">Age.</param>
-        public QueryPerson(string name, int age)
-        {
-            Name = name;
-            Age = age;
-        }
-
-        /// <summary>
-        /// Name.
-        /// </summary>
-        public string Name { get; set; }
-
-        /// <summary>
-        /// Age.
-        /// </summary>
-        public int Age { get; set; }
-    }
-
-    /// <summary>
-    /// Query filter.
-    /// </summary>
-    [Serializable]
-    public class ScanQueryFilter<TV> : ICacheEntryFilter<int, TV>
-    {
-        // Error message
-        public const string ErrMessage = "Error in ScanQueryFilter.Invoke";
-
-        // Error flag
-        public bool ThrowErr { get; set; }
-
-        /** <inheritdoc /> */
-        public bool Invoke(ICacheEntry<int, TV> entry)
-        {
-            if (ThrowErr)
-                throw new Exception(ErrMessage);
-
-            return entry.Key < 50;
-        }
-    }
-
-    /// <summary>
-    /// Portable query filter.
-    /// </summary>
-    public class PortableScanQueryFilter<TV> : ScanQueryFilter<TV>, IPortableMarshalAware
-    {
-        /** <inheritdoc /> */
-        public void WritePortable(IPortableWriter writer)
-        {
-            var w = writer.RawWriter();
-
-            w.WriteBoolean(ThrowErr);
-        }
-
-        /** <inheritdoc /> */
-        public void ReadPortable(IPortableReader reader)
-        {
-            var r = reader.RawReader();
-
-            ThrowErr = r.ReadBoolean();
-        }
-    }
-}