|
16 | 16 | using System;
|
17 | 17 | using System.Collections.Generic;
|
18 | 18 | using System.Linq;
|
19 |
| -using System.Text; |
20 | 19 | using System.Text.RegularExpressions;
|
21 | 20 | using NUnit.Framework;
|
22 | 21 |
|
@@ -6012,6 +6011,29 @@ public void TestWhereXEquals1()
|
6012 | 6011 |
|
6013 | 6012 | [Test]
|
6014 | 6013 | public void TestWhereXEquals1AndYEquals11()
|
| 6014 | + { |
| 6015 | + var query = from c in _collection.AsQueryable<C>() |
| 6016 | + where c.X == 1 & c.Y == 11 |
| 6017 | + select c; |
| 6018 | + |
| 6019 | + var translatedQuery = MongoQueryTranslator.Translate(query); |
| 6020 | + Assert.IsInstanceOf<SelectQuery>(translatedQuery); |
| 6021 | + Assert.AreSame(_collection, translatedQuery.Collection); |
| 6022 | + Assert.AreSame(typeof(C), translatedQuery.DocumentType); |
| 6023 | + |
| 6024 | + var selectQuery = (SelectQuery)translatedQuery; |
| 6025 | + Assert.AreEqual("(C c) => ((c.X == 1) & (c.Y == 11))", ExpressionFormatter.ToString(selectQuery.Where)); |
| 6026 | + Assert.IsNull(selectQuery.OrderBy); |
| 6027 | + Assert.IsNull(selectQuery.Projection); |
| 6028 | + Assert.IsNull(selectQuery.Skip); |
| 6029 | + Assert.IsNull(selectQuery.Take); |
| 6030 | + |
| 6031 | + Assert.AreEqual("{ \"x\" : 1, \"y\" : 11 }", selectQuery.BuildQuery().ToJson()); |
| 6032 | + Assert.AreEqual(1, Consume(query)); |
| 6033 | + } |
| 6034 | + |
| 6035 | + [Test] |
| 6036 | + public void TestWhereXEquals1AndAlsoYEquals11() |
6015 | 6037 | {
|
6016 | 6038 | var query = from c in _collection.AsQueryable<C>()
|
6017 | 6039 | where c.X == 1 && c.Y == 11
|
@@ -6126,6 +6148,29 @@ public void TestWhereXEquals1Not()
|
6126 | 6148 |
|
6127 | 6149 | [Test]
|
6128 | 6150 | public void TestWhereXEquals1OrYEquals33()
|
| 6151 | + { |
| 6152 | + var query = from c in _collection.AsQueryable<C>() |
| 6153 | + where c.X == 1 | c.Y == 33 |
| 6154 | + select c; |
| 6155 | + |
| 6156 | + var translatedQuery = MongoQueryTranslator.Translate(query); |
| 6157 | + Assert.IsInstanceOf<SelectQuery>(translatedQuery); |
| 6158 | + Assert.AreSame(_collection, translatedQuery.Collection); |
| 6159 | + Assert.AreSame(typeof(C), translatedQuery.DocumentType); |
| 6160 | + |
| 6161 | + var selectQuery = (SelectQuery)translatedQuery; |
| 6162 | + Assert.AreEqual("(C c) => ((c.X == 1) | (c.Y == 33))", ExpressionFormatter.ToString(selectQuery.Where)); |
| 6163 | + Assert.IsNull(selectQuery.OrderBy); |
| 6164 | + Assert.IsNull(selectQuery.Projection); |
| 6165 | + Assert.IsNull(selectQuery.Skip); |
| 6166 | + Assert.IsNull(selectQuery.Take); |
| 6167 | + |
| 6168 | + Assert.AreEqual("{ \"$or\" : [{ \"x\" : 1 }, { \"y\" : 33 }] }", selectQuery.BuildQuery().ToJson()); |
| 6169 | + Assert.AreEqual(2, Consume(query)); |
| 6170 | + } |
| 6171 | + |
| 6172 | + [Test] |
| 6173 | + public void TestWhereXEquals1OrElseYEquals33() |
6129 | 6174 | {
|
6130 | 6175 | var query = from c in _collection.AsQueryable<C>()
|
6131 | 6176 | where c.X == 1 || c.Y == 33
|
|
0 commit comments