Beispiel #1
0
        public void ConstructQueryFiltersTest()
        {
            const String KEY1 = "key1";
            const String VALUE1_A = "value1a";
            const String VALUE1_B = "value1b";
            const String VALUE1_C = "value1c";
            const String KEY2 = "key2";
            const Byte LOWER_BOUND_VALUE2 = 1;
            const Byte UPPER_BOUND_VALUE2 = 3;
            const String KEY3 = "key3";
            const String VALUE3 = "value3";
            const String KEY4 = "key4";
            const String VALUE4 = "value4";

            const String EXPECTED_KEY_EXISTS_VALUE = ":key1=*";
            const String EXPECTED_VALUE1 = ":key1=value1a,value1b,value1c";
            const String EXPECTED_VALUE2 = ":key2=1..3";
            const String EXPECTED_VALUE3 = ":key3=value3";
            const String EXPECTED_VALUE4 = ":key4=!value4";

            IList<String> expected = new List<String>();
            expected.Add(EXPECTED_KEY_EXISTS_VALUE);
            expected.Add(EXPECTED_VALUE1);
            expected.Add(EXPECTED_VALUE2);
            expected.Add(EXPECTED_VALUE3);
            expected.Add(EXPECTED_VALUE4);

            IStretchrRequest target = new StretchrRequest<String>(new StretchrClient(), response => { }, (request, statusCode, exception) => { });

            target.Where(KEY1.KeyExists()
                             .And(KEY1.IsEqualTo(VALUE1_A)
                                             .Or(VALUE1_B)
                                             .Or(VALUE1_C))
                             .And(KEY2.IsBetween(LOWER_BOUND_VALUE2, UPPER_BOUND_VALUE2))
                             .And(KEY3.IsEqualTo(VALUE3))
                             .And(KEY4.IsNotEqualTo(VALUE4)));

            PrivateObject privateTarget = new PrivateObject(target);

            privateTarget.Invoke("ConstructQueryFilters");

            IList<String> actual = (IList<String>)privateTarget.GetField("_queryStringFieldValuesList");

            Assert.IsNotNull(actual);
            Assert.AreEqual(expected.Count, actual.Count);
            Assert.AreEqual(expected[0], actual[0]);
            Assert.AreEqual(expected[1], actual[1]);
            Assert.AreEqual(expected[2], actual[2]);
            Assert.AreEqual(expected[3], actual[3]);
            Assert.AreEqual(expected[4], actual[4]);
        }
Beispiel #2
0
        public void WhereTest()
        {
            const String KEY1 = "key1";
            const String VALUE1_A = "value1a";
            const String VALUE1_B = "value1b";
            const String VALUE1_C = "value1c";
            const String KEY2 = "key2";
            const Byte LOWER_BOUND_VALUE2 = 1;
            const Byte UPPER_BOUND_VALUE2 = 3;
            const String KEY3 = "key3";
            const String VALUE3 = "value3";
            const String KEY4 = "key4";
            const String VALUE4 = "value4";

            const String EXPECTED_KEY_EXISTS_VALUE = "*";
            const String EXPECTED_VALUE1 = "value1a,value1b,value1c";
            const String EXPECTED_VALUE2 = "1..3";
            const String EXPECTED_VALUE3 = VALUE3;
            const String EXPECTED_VALUE4 = "!value4";

            IList<KeyValuePair<String, String>> expected = new List<KeyValuePair<String, String>>();
            expected.Add(new KeyValuePair<String, String>(KEY1, EXPECTED_KEY_EXISTS_VALUE));
            expected.Add(new KeyValuePair<String, String>(KEY1, EXPECTED_VALUE1));
            expected.Add(new KeyValuePair<String, String>(KEY2, EXPECTED_VALUE2));
            expected.Add(new KeyValuePair<String, String>(KEY3, EXPECTED_VALUE3));
            expected.Add(new KeyValuePair<String, String>(KEY4, EXPECTED_VALUE4));

            StretchrRequest<String> stretchrQuery = new StretchrRequest<String>(new StretchrClient(), response => { }, (request, statusCode, exception) => { });

            IList<KeyValuePair<String, String>> actual =
                stretchrQuery.Where(KEY1.KeyExists()
                                        .And(KEY1.IsEqualTo(VALUE1_A)
                                                        .Or(VALUE1_B)
                                                        .Or(VALUE1_C))
                                        .And(KEY2.IsBetween(LOWER_BOUND_VALUE2, UPPER_BOUND_VALUE2))
                                        .And(KEY3.IsEqualTo(VALUE3))
                                        .And(KEY4.IsNotEqualTo(VALUE4))).FilterParameterList;

            Assert.IsNotNull(actual);
            Assert.AreEqual(expected.Count, actual.Count);
            Assert.AreEqual(expected[0], actual[0]);
            Assert.AreEqual(expected[1], actual[1]);
            Assert.AreEqual(expected[2], actual[2]);
            Assert.AreEqual(expected[3], actual[3]);
            Assert.AreEqual(expected[4], actual[4]);
        }