@@ -20,6 +20,28 @@ namespace MongoDB.Analyzer.Tests.Common.TestCases.Linq
2020{
2121 public sealed class LinqCollections : TestCasesBase
2222 {
23+ [ MQL ( "aggregate([{ \" $match\" : { \" Enumerable1\" : { \" $size\" : 121 }, \" Enumerable1.12\" : 1, \" Enumerable2\" : { \" $size\" : 22 }, \" Enumerable2.12.Enumerable2.21.Enumerable1.1\" : 2 } }])" ) ]
24+ public void CustomEnumerables ( )
25+ {
26+ _ = GetMongoQueryable < CustomEnumerableHolder > ( ) . Where ( t =>
27+ t . Enumerable1 . Count ( ) == 121 &&
28+ t . Enumerable1 . ElementAt ( 12 ) == 1 &&
29+ t . Enumerable2 . Count ( ) == 22 &&
30+ t . Enumerable2 . ElementAt ( 12 ) . Enumerable2 . ElementAt ( 21 ) . Enumerable1 . ElementAt ( 1 ) == 2 ) ;
31+ }
32+
33+ [ MQL ( "aggregate([{ \" $match\" : { \" IntList.0\" : 2 } }, { \" $match\" : { \" StringList\" : { \" $size\" : 12 } } }, { \" $match\" : { \" PesonsList.2.Address.City\" : \" Hamburg\" } }, { \" $match\" : { \" NestedListsHolderList.2.StringList.4\" : \" Nested\" } }, { \" $match\" : { \" IntIList.1\" : 12 } }, { \" $match\" : { \" NestedListsHolderIList.12.IntIList.12\" : 2 } }])" ) ]
34+ public void CustomLists ( )
35+ {
36+ _ = GetMongoQueryable < CustomListsHolder > ( )
37+ . Where ( t => t . IntList [ 0 ] == 2 )
38+ . Where ( t => t . StringList . Count == 12 )
39+ . Where ( t => t . PesonsList [ 2 ] . Address . City == "Hamburg" )
40+ . Where ( t => t . NestedListsHolderList [ 2 ] . StringList [ 4 ] == "Nested" )
41+ . Where ( t => t . IntIList [ 1 ] == 12 )
42+ . Where ( t => t . NestedListsHolderIList [ 12 ] . IntIList [ 12 ] == 2 ) ;
43+ }
44+
2345 [ MQL ( "aggregate([{ \" $match\" : { \" Enumerable1\" : { \" $size\" : 121 }, \" Enumerable1.12\" : 1, \" Enumerable2\" : { \" $size\" : 22 }, \" Enumerable2.12.Enumerable2.21.Enumerable1.1\" : 2 } }])" ) ]
2446 public void Enumerables ( )
2547 {
@@ -42,6 +64,9 @@ public void Lists()
4264 . Where ( t => t . NestedListsHolderIList [ 12 ] . IntIList [ 12 ] == 2 ) ;
4365 }
4466
67+
68+ [ MQL ( "aggregate([{ \" $match\" : { \" IntList.0\" : 2 } }, { \" $match\" : { \" StringList\" : { \" $size\" : 12 } } }, { \" $match\" : { \" PesonsList.2.Address.City\" : \" Hamburg\" } }, { \" $match\" : { \" NestedListsHolderList.2.StringList.4\" : \" Nested\" } }, { \" $match\" : { \" IntIList.1\" : 12 } }, { \" $match\" : { \" NestedListsHolderIList.12.IntIList.12\" : 2 } }])" ) ]
69+ [ MQL ( "aggregate([{ \" $match\" : { \" Enumerable1\" : { \" $size\" : 121 }, \" Enumerable1.12\" : 1, \" Enumerable2\" : { \" $size\" : 22 }, \" Enumerable2.12.Enumerable2.21.Enumerable1.1\" : 2 } }])" ) ]
4570 [ MQL ( "aggregate([{ \" $match\" : { \" IntList.0\" : 2 } }, { \" $match\" : { \" StringList\" : { \" $size\" : 12 } } }, { \" $match\" : { \" PesonsList.2.Address.City\" : \" Hamburg\" } }, { \" $match\" : { \" NestedListsHolderList.2.StringList.4\" : \" Nested\" } }, { \" $match\" : { \" IntIList.1\" : 12 } }, { \" $match\" : { \" NestedListsHolderIList.12.IntIList.12\" : 2 } }])" ) ]
4671 [ MQL ( "aggregate([{ \" $match\" : { \" Enumerable1\" : { \" $size\" : 121 }, \" Enumerable1.12\" : 1, \" Enumerable2\" : { \" $size\" : 22 }, \" Enumerable2.12.Enumerable2.21.Enumerable1.1\" : 2 } }])" ) ]
4772 public void Query_syntax ( )
@@ -61,6 +86,22 @@ where enumerableHolder.Enumerable1.Count() == 121 &&
6186 enumerableHolder . Enumerable2 . Count ( ) == 22 &&
6287 enumerableHolder . Enumerable2 . ElementAt ( 12 ) . Enumerable2 . ElementAt ( 21 ) . Enumerable1 . ElementAt ( 1 ) == 2
6388 select enumerableHolder ;
89+
90+ _ = from customListsHolder in GetMongoQueryable < CustomListsHolder > ( )
91+ where customListsHolder . IntList [ 0 ] == 2
92+ where customListsHolder . StringList . Count == 12
93+ where customListsHolder . PesonsList [ 2 ] . Address . City == "Hamburg"
94+ where customListsHolder . NestedListsHolderList [ 2 ] . StringList [ 4 ] == "Nested"
95+ where customListsHolder . IntIList [ 1 ] == 12
96+ where customListsHolder . NestedListsHolderIList [ 12 ] . IntIList [ 12 ] == 2
97+ select customListsHolder ;
98+
99+ _ = from customEnumerableHolder in GetMongoQueryable < CustomEnumerableHolder > ( )
100+ where customEnumerableHolder . Enumerable1 . Count ( ) == 121 &&
101+ customEnumerableHolder . Enumerable1 . ElementAt ( 12 ) == 1 &&
102+ customEnumerableHolder . Enumerable2 . Count ( ) == 22 &&
103+ customEnumerableHolder . Enumerable2 . ElementAt ( 12 ) . Enumerable2 . ElementAt ( 21 ) . Enumerable1 . ElementAt ( 1 ) == 2
104+ select customEnumerableHolder ;
64105 }
65106 }
66107}
0 commit comments