private QueryOptions GetQueryOptions() { QueryOptions queryOptions = new QueryOptions(); queryOptions.SetStartKey(GetStartKey()); queryOptions.SetEndKey(GetEndKey()); queryOptions.SetStartKey(GetStartKey()); queryOptions.SetKeys(GetKeys()); queryOptions.SetSkip(GetSkip()); queryOptions.SetLimit(GetLimit()); queryOptions.SetReduce(!IsMapOnly()); queryOptions.SetReduceSpecified(true); queryOptions.SetGroupLevel(GetGroupLevel()); queryOptions.SetDescending(IsDescending()); queryOptions.SetIncludeDocs(ShouldPrefetch()); queryOptions.SetUpdateSeq(true); queryOptions.SetInclusiveEnd(true); queryOptions.SetStale(GetIndexUpdateMode()); queryOptions.SetAllDocsMode(GetAllDocsMode()); return(queryOptions); }
/// <exception cref="Couchbase.Lite.CouchbaseLiteException"></exception> public virtual void TestViewQuery() { PutDocs(database); View view = CreateView(database); view.UpdateIndex(); // Query all rows: QueryOptions options = new QueryOptions(); IList<QueryRow> rows = view.QueryWithOptions(options); IList<object> expectedRows = new AList<object>(); IDictionary<string, object> dict5 = new Dictionary<string, object>(); dict5.Put("id", "55555"); dict5.Put("key", "five"); expectedRows.AddItem(dict5); IDictionary<string, object> dict4 = new Dictionary<string, object>(); dict4.Put("id", "44444"); dict4.Put("key", "four"); expectedRows.AddItem(dict4); IDictionary<string, object> dict1 = new Dictionary<string, object>(); dict1.Put("id", "11111"); dict1.Put("key", "one"); expectedRows.AddItem(dict1); IDictionary<string, object> dict3 = new Dictionary<string, object>(); dict3.Put("id", "33333"); dict3.Put("key", "three"); expectedRows.AddItem(dict3); IDictionary<string, object> dict2 = new Dictionary<string, object>(); dict2.Put("id", "22222"); dict2.Put("key", "two"); expectedRows.AddItem(dict2); NUnit.Framework.Assert.AreEqual(5, rows.Count); NUnit.Framework.Assert.AreEqual(dict5.Get("key"), rows[0].GetKey()); NUnit.Framework.Assert.AreEqual(dict5.Get("value"), rows[0].GetValue()); NUnit.Framework.Assert.AreEqual(dict4.Get("key"), rows[1].GetKey()); NUnit.Framework.Assert.AreEqual(dict4.Get("value"), rows[1].GetValue()); NUnit.Framework.Assert.AreEqual(dict1.Get("key"), rows[2].GetKey()); NUnit.Framework.Assert.AreEqual(dict1.Get("value"), rows[2].GetValue()); NUnit.Framework.Assert.AreEqual(dict3.Get("key"), rows[3].GetKey()); NUnit.Framework.Assert.AreEqual(dict3.Get("value"), rows[3].GetValue()); NUnit.Framework.Assert.AreEqual(dict2.Get("key"), rows[4].GetKey()); NUnit.Framework.Assert.AreEqual(dict2.Get("value"), rows[4].GetValue()); // Start/end key query: options = new QueryOptions(); options.SetStartKey("a"); options.SetEndKey("one"); rows = view.QueryWithOptions(options); expectedRows = new AList<object>(); expectedRows.AddItem(dict5); expectedRows.AddItem(dict4); expectedRows.AddItem(dict1); NUnit.Framework.Assert.AreEqual(3, rows.Count); NUnit.Framework.Assert.AreEqual(dict5.Get("key"), rows[0].GetKey()); NUnit.Framework.Assert.AreEqual(dict5.Get("value"), rows[0].GetValue()); NUnit.Framework.Assert.AreEqual(dict4.Get("key"), rows[1].GetKey()); NUnit.Framework.Assert.AreEqual(dict4.Get("value"), rows[1].GetValue()); NUnit.Framework.Assert.AreEqual(dict1.Get("key"), rows[2].GetKey()); NUnit.Framework.Assert.AreEqual(dict1.Get("value"), rows[2].GetValue()); // Start/end query without inclusive end: options.SetInclusiveEnd(false); rows = view.QueryWithOptions(options); expectedRows = new AList<object>(); expectedRows.AddItem(dict5); expectedRows.AddItem(dict4); NUnit.Framework.Assert.AreEqual(2, rows.Count); NUnit.Framework.Assert.AreEqual(dict5.Get("key"), rows[0].GetKey()); NUnit.Framework.Assert.AreEqual(dict5.Get("value"), rows[0].GetValue()); NUnit.Framework.Assert.AreEqual(dict4.Get("key"), rows[1].GetKey()); NUnit.Framework.Assert.AreEqual(dict4.Get("value"), rows[1].GetValue()); // Reversed: options.SetDescending(true); options.SetStartKey("o"); options.SetEndKey("five"); options.SetInclusiveEnd(true); rows = view.QueryWithOptions(options); expectedRows = new AList<object>(); expectedRows.AddItem(dict4); expectedRows.AddItem(dict5); NUnit.Framework.Assert.AreEqual(2, rows.Count); NUnit.Framework.Assert.AreEqual(dict4.Get("key"), rows[0].GetKey()); NUnit.Framework.Assert.AreEqual(dict4.Get("value"), rows[0].GetValue()); NUnit.Framework.Assert.AreEqual(dict5.Get("key"), rows[1].GetKey()); NUnit.Framework.Assert.AreEqual(dict5.Get("value"), rows[1].GetValue()); // Reversed, no inclusive end: options.SetInclusiveEnd(false); rows = view.QueryWithOptions(options); expectedRows = new AList<object>(); expectedRows.AddItem(dict4); NUnit.Framework.Assert.AreEqual(1, rows.Count); NUnit.Framework.Assert.AreEqual(dict4.Get("key"), rows[0].GetKey()); NUnit.Framework.Assert.AreEqual(dict4.Get("value"), rows[0].GetValue()); // Specific keys: options = new QueryOptions(); IList<object> keys = new AList<object>(); keys.AddItem("two"); keys.AddItem("four"); options.SetKeys(keys); rows = view.QueryWithOptions(options); expectedRows = new AList<object>(); expectedRows.AddItem(dict4); expectedRows.AddItem(dict2); NUnit.Framework.Assert.AreEqual(2, rows.Count); NUnit.Framework.Assert.AreEqual(dict4.Get("key"), rows[0].GetKey()); NUnit.Framework.Assert.AreEqual(dict4.Get("value"), rows[0].GetValue()); NUnit.Framework.Assert.AreEqual(dict2.Get("key"), rows[1].GetKey()); NUnit.Framework.Assert.AreEqual(dict2.Get("value"), rows[1].GetValue()); }
public void TestViewQuery() { PutDocs(database); var view = CreateView(database); view.UpdateIndex(); // Query all rows: QueryOptions options = new QueryOptions(); IList <QueryRow> rows = view.QueryWithOptions(options).ToList(); var expectedRows = new List <object>(); var dict5 = new Dictionary <string, object>(); dict5["id"] = "55555"; dict5["key"] = "five"; expectedRows.AddItem(dict5); var dict4 = new Dictionary <string, object>(); dict4["id"] = "44444"; dict4["key"] = "four"; expectedRows.AddItem(dict4); var dict1 = new Dictionary <string, object>(); dict1["id"] = "11111"; dict1["key"] = "one"; expectedRows.AddItem(dict1); var dict3 = new Dictionary <string, object>(); dict3["id"] = "33333"; dict3["key"] = "three"; expectedRows.AddItem(dict3); var dict2 = new Dictionary <string, object>(); dict2["id"] = "22222"; dict2["key"] = "two"; expectedRows.AddItem(dict2); Assert.AreEqual(5, rows.Count); Assert.AreEqual(dict5["key"], rows[0].Key); Assert.AreEqual(dict4["key"], rows[1].Key); Assert.AreEqual(dict1["key"], rows[2].Key); Assert.AreEqual(dict3["key"], rows[3].Key); Assert.AreEqual(dict2["key"], rows[4].Key); // Start/end key query: options = new QueryOptions(); options.SetStartKey("a"); options.SetEndKey("one"); rows = view.QueryWithOptions(options).ToList(); expectedRows = new List <object>(); expectedRows.AddItem(dict5); expectedRows.AddItem(dict4); expectedRows.AddItem(dict1); Assert.AreEqual(3, rows.Count); Assert.AreEqual(dict5["key"], rows[0].Key); Assert.AreEqual(dict4["key"], rows[1].Key); Assert.AreEqual(dict1["key"], rows[2].Key); // Start/end query without inclusive end: options.SetInclusiveEnd(false); rows = view.QueryWithOptions(options).ToList(); expectedRows = new List <object>(); expectedRows.AddItem(dict5); expectedRows.AddItem(dict4); Assert.AreEqual(2, rows.Count); Assert.AreEqual(dict5["key"], rows[0].Key); Assert.AreEqual(dict4["key"], rows[1].Key); // Reversed: options.SetDescending(true); options.SetStartKey("o"); options.SetEndKey("five"); options.SetInclusiveEnd(true); rows = view.QueryWithOptions(options).ToList(); expectedRows = new List <object>(); expectedRows.AddItem(dict4); expectedRows.AddItem(dict5); Assert.AreEqual(2, rows.Count); Assert.AreEqual(dict4["key"], rows[0].Key); Assert.AreEqual(dict5["key"], rows[1].Key); // Reversed, no inclusive end: options.SetInclusiveEnd(false); rows = view.QueryWithOptions(options).ToList(); expectedRows = new List <object>(); expectedRows.AddItem(dict4); Assert.AreEqual(1, rows.Count); Assert.AreEqual(dict4["key"], rows[0].Key); // Specific keys: options = new QueryOptions(); var keys = new List <object>(); keys.AddItem("two"); keys.AddItem("four"); options.SetKeys(keys); rows = view.QueryWithOptions(options).ToList(); expectedRows = new List <object>(); expectedRows.AddItem(dict4); expectedRows.AddItem(dict2); Assert.AreEqual(2, rows.Count); Assert.AreEqual(dict4["key"], rows[0].Key); Assert.AreEqual(dict2["key"], rows[1].Key); }
public void TestViewQuery() { PutDocs(database); var view = CreateView(database); view.UpdateIndex(); // Query all rows: QueryOptions options = new QueryOptions(); IList<QueryRow> rows = view.QueryWithOptions(options).ToList(); var expectedRows = new AList<object>(); var dict5 = new Dictionary<string, object>(); dict5["id"] = "55555"; dict5["key"] = "five"; expectedRows.AddItem(dict5); var dict4 = new Dictionary<string, object>(); dict4["id"] = "44444"; dict4["key"] = "four"; expectedRows.AddItem(dict4); var dict1 = new Dictionary<string, object>(); dict1["id"] = "11111"; dict1["key"] = "one"; expectedRows.AddItem(dict1); var dict3 = new Dictionary<string, object>(); dict3["id"] = "33333"; dict3["key"] = "three"; expectedRows.AddItem(dict3); var dict2 = new Dictionary<string, object>(); dict2["id"] = "22222"; dict2["key"] = "two"; expectedRows.AddItem(dict2); Assert.AreEqual(5, rows.Count); Assert.AreEqual(dict5["key"], rows[0].Key); Assert.AreEqual(dict4["key"], rows[1].Key); Assert.AreEqual(dict1["key"], rows[2].Key); Assert.AreEqual(dict3["key"], rows[3].Key); Assert.AreEqual(dict2["key"], rows[4].Key); // Start/end key query: options = new QueryOptions(); options.SetStartKey("a"); options.SetEndKey("one"); rows = view.QueryWithOptions(options).ToList(); expectedRows = new AList<object>(); expectedRows.AddItem(dict5); expectedRows.AddItem(dict4); expectedRows.AddItem(dict1); Assert.AreEqual(3, rows.Count); Assert.AreEqual(dict5["key"], rows[0].Key); Assert.AreEqual(dict4["key"], rows[1].Key); Assert.AreEqual(dict1["key"], rows[2].Key); // Start/end query without inclusive end: options.SetInclusiveEnd(false); rows = view.QueryWithOptions(options).ToList(); expectedRows = new AList<object>(); expectedRows.AddItem(dict5); expectedRows.AddItem(dict4); Assert.AreEqual(2, rows.Count); Assert.AreEqual(dict5["key"], rows[0].Key); Assert.AreEqual(dict4["key"], rows[1].Key); // Reversed: options.SetDescending(true); options.SetStartKey("o"); options.SetEndKey("five"); options.SetInclusiveEnd(true); rows = view.QueryWithOptions(options).ToList(); expectedRows = new AList<object>(); expectedRows.AddItem(dict4); expectedRows.AddItem(dict5); Assert.AreEqual(2, rows.Count); Assert.AreEqual(dict4["key"], rows[0].Key); Assert.AreEqual(dict5["key"], rows[1].Key); // Reversed, no inclusive end: options.SetInclusiveEnd(false); rows = view.QueryWithOptions(options).ToList(); expectedRows = new AList<object>(); expectedRows.AddItem(dict4); Assert.AreEqual(1, rows.Count); Assert.AreEqual(dict4["key"], rows[0].Key); // Specific keys: options = new QueryOptions(); var keys = new AList<object>(); keys.AddItem("two"); keys.AddItem("four"); options.SetKeys(keys); rows = view.QueryWithOptions(options).ToList(); expectedRows = new AList<object>(); expectedRows.AddItem(dict4); expectedRows.AddItem(dict2); Assert.AreEqual(2, rows.Count); Assert.AreEqual(dict4["key"], rows[0].Key); Assert.AreEqual(dict2["key"], rows[1].Key); }
private QueryOptions GetQueryOptions() { QueryOptions queryOptions = new QueryOptions(); queryOptions.SetStartKey(GetStartKey()); queryOptions.SetEndKey(GetEndKey()); queryOptions.SetStartKey(GetStartKey()); queryOptions.SetKeys(GetKeys()); queryOptions.SetSkip(GetSkip()); queryOptions.SetLimit(GetLimit()); queryOptions.SetReduce(!IsMapOnly()); queryOptions.SetReduceSpecified(true); queryOptions.SetGroupLevel(GetGroupLevel()); queryOptions.SetDescending(IsDescending()); queryOptions.SetIncludeDocs(ShouldPrefetch()); queryOptions.SetUpdateSeq(true); queryOptions.SetInclusiveEnd(true); queryOptions.SetStale(GetIndexUpdateMode()); queryOptions.SetAllDocsMode(GetAllDocsMode()); return queryOptions; }