コード例 #1
0
ファイル: EncryptedTests.cs プロジェクト: Badgerati/Icarus
        public void FindMany_Filter_Success(object value, IcarusEqualityFilter filter, int expectedAmount, bool isNull)
        {
            var icarus = IcarusClient.Instance;
            var obj1   = new SomeObject()
            {
                SomeInt = 1, SomeString = "Hello1", Temp = "Anything1"
            };
            var obj2 = new SomeObject()
            {
                SomeInt = 2, SomeString = "Hello2", Temp = "Anything2"
            };

            var items = icarus.GetDataStore(_dataStore).GetCollection <SomeObject>(_collection).InsertMany(new[] { obj1, obj2 });

            Assert.AreEqual(2, items.Count);
            Assert.AreEqual(1, items[0]._id);
            Assert.AreEqual(2, items[1]._id);

            var items2 = icarus.GetDataStore(_dataStore).GetCollection <SomeObject>(_collection).FindMany("SomeInt", value, filter);

            if (isNull)
            {
                Assert.IsNull(items2);
            }
            else
            {
                Assert.IsNotNull(items2);
                Assert.AreEqual(expectedAmount, items2.Count);
            }
        }
コード例 #2
0
ファイル: IcarusCollection.cs プロジェクト: Badgerati/Icarus
        /// <summary>
        /// Finds the items using the specified field name, value and equality filter.
        /// </summary>
        /// <param name="fieldName">Name of the field.</param>
        /// <param name="value">The value of the field.</param>
        /// <param name="filter">The filter to use when searching.</param>
        /// <returns>
        /// A list of items found with their identifiers
        /// </returns>
        public IList <T> FindMany(string fieldName, object value, IcarusEqualityFilter filter = IcarusEqualityFilter.Equal)
        {
            if (string.IsNullOrWhiteSpace(fieldName))
            {
                return(default(IList <T>));
            }

            return(FindMany(ConstructJsonPathFromFieldValuePair(fieldName, value, filter)));
        }
コード例 #3
0
ファイル: EncryptedTests.cs プロジェクト: Badgerati/Icarus
        public void Find_Filter_SuccessOnDates(IcarusEqualityFilter filter, bool isNull)
        {
            var icarus = IcarusClient.Instance;
            var now    = DateTime.Now;

            var obj1 = new SomeObject()
            {
                SomeDate = now, Temp = "Anything1"
            };
            var obj2 = new SomeObject()
            {
                SomeDate = now.AddDays(1), Temp = "Anything2"
            };

            var items = icarus.GetDataStore(_dataStore).GetCollection <SomeObject>(_collection).InsertMany(new[] { obj1, obj2 });

            Assert.AreEqual(2, items.Count);
            Assert.AreEqual(1, items[0]._id);
            Assert.AreEqual(2, items[1]._id);

            var item = default(SomeObject);

            switch (filter)
            {
            case IcarusEqualityFilter.Equal:
                item = icarus.GetDataStore(_dataStore).GetCollection <SomeObject>(_collection).Find("SomeDate", now, filter);
                break;

            case IcarusEqualityFilter.NotEqual:
                item = icarus.GetDataStore(_dataStore).GetCollection <SomeObject>(_collection).Find("SomeDate", now.AddDays(-1), filter);
                break;

            case IcarusEqualityFilter.GreaterThan:
                item = icarus.GetDataStore(_dataStore).GetCollection <SomeObject>(_collection).Find("SomeDate", now.AddMinutes(5), filter);
                break;
            }

            if (isNull)
            {
                Assert.IsNull(item);
            }
            else
            {
                Assert.IsNotNull(item);
            }
        }
コード例 #4
0
ファイル: EncryptedTests.cs プロジェクト: Badgerati/Icarus
        public void Find_Filter_FailForMultiple(object value, IcarusEqualityFilter filter)
        {
            var icarus = IcarusClient.Instance;
            var obj1   = new SomeObject()
            {
                SomeInt = 1, SomeString = "Hello1", Temp = "Anything1"
            };
            var obj2 = new SomeObject()
            {
                SomeInt = 2, SomeString = "Hello2", Temp = "Anything2"
            };

            var items = icarus.GetDataStore(_dataStore).GetCollection <SomeObject>(_collection).InsertMany(new[] { obj1, obj2 });

            Assert.AreEqual(2, items.Count);
            Assert.AreEqual(1, items[0]._id);
            Assert.AreEqual(2, items[1]._id);

            var item = icarus.GetDataStore(_dataStore).GetCollection <SomeObject>(_collection).Find("SomeInt", value, filter);
        }
コード例 #5
0
ファイル: IcarusCollection.cs プロジェクト: Badgerati/Icarus
        private string MapEqualityFilter(IcarusEqualityFilter filter)
        {
            switch (filter)
            {
            default:
            case IcarusEqualityFilter.Equal:
                return("==");

            case IcarusEqualityFilter.GreaterThan:
                return(">");

            case IcarusEqualityFilter.GreaterThanOrEqual:
                return(">=");

            case IcarusEqualityFilter.LessThan:
                return("<");

            case IcarusEqualityFilter.LessThanOrEqual:
                return("<=");

            case IcarusEqualityFilter.NotEqual:
                return("!=");
            }
        }
コード例 #6
0
ファイル: EncryptedTests.cs プロジェクト: Badgerati/Icarus
        public void Find_Filter_Boolean_Success(IcarusEqualityFilter filter, bool value)
        {
            var icarus = IcarusClient.Instance;
            var obj1   = new SomeObject()
            {
                SomeInt = 1, SomeBool = true, Temp = "Anything1"
            };
            var obj2 = new SomeObject()
            {
                SomeInt = 1, SomeBool = false, Temp = "Anything2"
            };

            var collection = icarus.GetDataStore(_dataStore).GetCollection <SomeObject>(_collection);

            var items = collection.InsertMany(new[] { obj1, obj2 });

            Assert.AreEqual(2, items.Count);
            Assert.AreEqual(1, items[0]._id);
            Assert.AreEqual(2, items[1]._id);

            var item = collection.Find("SomeBool", value, filter);

            Assert.IsNotNull(item);
            Assert.AreEqual(1, item.SomeInt);

            if (filter == IcarusEqualityFilter.Equal)
            {
                Assert.AreEqual(value, item.SomeBool);
                Assert.AreEqual(value ? 1 : 2, item._id);
            }
            else
            {
                Assert.AreEqual(!value, item.SomeBool);
                Assert.AreEqual(value ? 2 : 1, item._id);
            }
        }
コード例 #7
0
ファイル: IcarusCollection.cs プロジェクト: Badgerati/Icarus
 private string ConstructJsonPathFromFieldValuePair(string fieldName, object value, IcarusEqualityFilter filter)
 {
     return("$[?(@." + fieldName + " " + MapEqualityFilter(filter) + " " + MapValueObjectType(value) + ")]");
 }