Lith 11 mēneši atpakaļ
vecāks
revīzija
c9ade58ac8

+ 1 - 1
test/Vitorm.Sqlite.MsTest/CommonTest/CRUD_Test.cs

@@ -127,7 +127,7 @@ namespace Vitorm.MsTest.CommonTest
             {
                 var user = User.NewUser(4);
                 var key = dbContext.GetEntityDescriptor(typeof(User)).key;
-                var keyValue=key.GetValue(user);
+                var keyValue = key.GetValue(user);
                 var rowCount = dbContext.DeleteByKey<User>(keyValue);
                 Assert.AreEqual(1, rowCount);
             }

+ 0 - 1
test/Vitorm.Sqlite.MsTest/CommonTest/Orm_Extensions_ToExecuteString_Test.cs

@@ -37,7 +37,6 @@ namespace Vitorm.MsTest.CommonTest
 
                 var list = query.ToList();
                 Assert.AreEqual(2, list.Count);
-                Assert.AreEqual(5, list[0].user.id);
             }
             #endregion
 

+ 56 - 0
test/Vitorm.Sqlite.MsTest/CommonTest/Query_InnerJoin_BySelectMany_Test.cs

@@ -129,6 +129,62 @@ namespace Vitorm.MsTest.CommonTest
 
 
 
+        [TestMethod]
+        public void Test_MultipleSelect()
+        {
+            using var dbContext = DataSource.CreateDbContext();
+            var userQuery = dbContext.Query<User>();
+
+            {
+                var query = from user in userQuery
+                            from father in userQuery.Where(father => user.fatherId == father.id)
+                            from mother in userQuery.Where(mother => user.motherId == mother.id)
+                            orderby user.id
+                            select new
+                            {
+                                uniqueId = user.id + "_" + father.id + "_" + mother.id,
+                                uniqueId1 = user.id + "_" + user.fatherId + "_" + user.motherId,
+                                user,
+                                user2 = user,
+                                user3 = user,
+                                father,
+                                hasFather = user.fatherId != null ? true : false,
+                                fatherName = father.name,
+                                mother
+                            };
+
+                var userList = query.ToList();
+                Assert.AreEqual(3, userList.Count);
+                Assert.AreEqual(1, userList.First().user.id);
+                Assert.AreEqual(3, userList.Last().user.id);
+                Assert.AreEqual(5, userList.Last().father?.id);
+            }
+
+
+            {
+                var query = from user in userQuery
+                            from father in userQuery.Where(father => user.fatherId == father.id)
+                            from mother in userQuery.Where(mother => user.motherId == mother.id)
+                            where user.id > 1
+                            orderby user.id
+                            select new
+                            {
+                                user,
+                                father,
+                                userId = user.id + 100,
+                                hasFather = user.fatherId != null ? true : false,
+                                hasFather2 = father != null,
+                                fatherName = father.name,
+                                motherName = mother.name,
+                            };
+
+                var userList = query.ToList();
+
+                Assert.AreEqual(2, userList.Count);
+                Assert.AreEqual(4, userList.First().father?.id);
+                Assert.AreEqual(5, userList.Last().father?.id);
+            }
+        }
 
 
     }

+ 8 - 6
test/Vitorm.Sqlite.MsTest/CommonTest/Query_LeftJoin_ByGroupJoin_Test.cs

@@ -21,6 +21,7 @@ namespace Vitorm.MsTest.CommonTest
                     join father in userQuery on user.fatherId equals father.id into fathers
                     from father in fathers.DefaultIfEmpty()
                     where user.id > 2
+                    orderby user.id
                     select new { user, father };
 
                 var sql = query.ToExecuteString();
@@ -30,7 +31,7 @@ namespace Vitorm.MsTest.CommonTest
                 Assert.AreEqual(3, userList[0].user.id);
                 Assert.AreEqual(5, userList[0].father?.id);
                 Assert.AreEqual(4, userList[1].user.id);
-                Assert.AreEqual(null, userList[1].father?.id);
+                Assert.AreEqual(null, userList[1].father?.name);
             }
 
             // Lambda Expression
@@ -47,6 +48,7 @@ namespace Vitorm.MsTest.CommonTest
                         , (row, father) => new { row, father }
                     )
                     .Where(row2 => row2.row.user.id > 2)
+                    .OrderBy(row2 => row2.row.user.id)
                     .Select(row2 => new { row2.row.user, row2.father });
 
                 var sql = query.ToExecuteString();
@@ -56,7 +58,7 @@ namespace Vitorm.MsTest.CommonTest
                 Assert.AreEqual(3, userList[0].user.id);
                 Assert.AreEqual(5, userList[0].father?.id);
                 Assert.AreEqual(4, userList[1].user.id);
-                Assert.AreEqual(null, userList[1].father?.id);
+                Assert.AreEqual(null, userList[1].father?.name);
             }
         }
 
@@ -76,14 +78,14 @@ namespace Vitorm.MsTest.CommonTest
                     join mother in userQuery on user.motherId equals mother.id into mothers
                     from mother in mothers.DefaultIfEmpty()
                     where user.id > 2
-                    orderby father.id descending
+                    orderby user.id
                     select new
                     {
                         user,
                         father,
                         mother,
                         testId = user.id + 100,
-                        hasFather = father != null ? true : false
+                        hasFather = father.name != null ? true : false
                     };
 
                 query = query.Skip(1).Take(2);
@@ -95,8 +97,8 @@ namespace Vitorm.MsTest.CommonTest
 
                 var first = userList.First();
                 Assert.AreEqual(4, first.user.id);
-                Assert.AreEqual(null, first.father?.id);
-                Assert.AreEqual(null, first.mother?.id);
+                Assert.AreEqual(null, first.father?.name);
+                Assert.AreEqual(null, first.mother?.name);
                 Assert.AreEqual(104, first.testId);
                 Assert.AreEqual(false, first.hasFather);
             }

+ 45 - 63
test/Vitorm.Sqlite.MsTest/CommonTest/Query_LeftJoin_BySelectMany_Test.cs

@@ -23,6 +23,7 @@ namespace Vitorm.MsTest.CommonTest
                         from user in userQuery
                         from father in userQuery.Where(father => user.fatherId == father.id).DefaultIfEmpty()
                         where user.id > 2
+                        orderby user.id
                         select new { user, father };
 
                 var sql = query.ToExecuteString();
@@ -32,7 +33,7 @@ namespace Vitorm.MsTest.CommonTest
                 Assert.AreEqual(3, userList[0].user.id);
                 Assert.AreEqual(5, userList[0].father?.id);
                 Assert.AreEqual(4, userList[1].user.id);
-                Assert.AreEqual(null, userList[1].father?.id);
+                Assert.AreEqual(null, userList[1].father?.name);
             }
 
             // Lambda Expression
@@ -43,6 +44,7 @@ namespace Vitorm.MsTest.CommonTest
                             , (user, father) => new { user, father }
                         )
                         .Where(row => row.user.id > 2)
+                        .OrderBy(row => row.user.id)
                         .Select(row => new { row.user, row.father });
 
                 var sql = query.ToExecuteString();
@@ -52,7 +54,7 @@ namespace Vitorm.MsTest.CommonTest
                 Assert.AreEqual(3, userList[0].user.id);
                 Assert.AreEqual(5, userList[0].father?.id);
                 Assert.AreEqual(4, userList[1].user.id);
-                Assert.AreEqual(null, userList[1].father?.id);
+                Assert.AreEqual(null, userList[1].father?.name);
             }
         }
 
@@ -71,14 +73,14 @@ namespace Vitorm.MsTest.CommonTest
                     from father in userQuery.Where(father => user.fatherId == father.id).DefaultIfEmpty()
                     from mother in userQuery.Where(mother => user.motherId == mother.id).DefaultIfEmpty()
                     where user.id > 2
-                    orderby father.id descending
+                    orderby user.id
                     select new
                     {
                         user,
                         father,
                         mother,
                         testId = user.id + 100,
-                        hasFather = father != null ? true : false
+                        hasFather = father.name != null ? true : false
                     };
 
                 query = query.Skip(1).Take(2);
@@ -90,8 +92,8 @@ namespace Vitorm.MsTest.CommonTest
 
                 var first = userList.First();
                 Assert.AreEqual(4, first.user.id);
-                Assert.AreEqual(null, first.father?.id);
-                Assert.AreEqual(null, first.mother?.id);
+                Assert.AreEqual(null, first.father?.name);
+                Assert.AreEqual(null, first.mother?.name);
                 Assert.AreEqual(104, first.testId);
                 Assert.AreEqual(false, first.hasFather);
             }
@@ -107,13 +109,14 @@ namespace Vitorm.MsTest.CommonTest
 
             {
                 var query = from user in userQuery
-                             from father in userQuery.Where(father => user.fatherId == father.id).DefaultIfEmpty()
-                             where user.id > 2 && father != null
-                             select new
-                             {
-                                 user,
-                                 father
-                             };
+                            from father in userQuery.Where(father => user.fatherId == father.id).DefaultIfEmpty()
+                            where user.id > 2 && father.name != null
+                            orderby user.id
+                            select new
+                            {
+                                user,
+                                father
+                            };
 
                 var userList = query.ToList();
 
@@ -123,20 +126,21 @@ namespace Vitorm.MsTest.CommonTest
 
             {
                 var query = from user in userQuery
-                             from father in userQuery.Where(father => user.fatherId == father.id)
-                             from mother in userQuery.Where(mother => user.motherId == mother.id)
-                             select new
-                             {
-                                 uniqueId = user.id + "_" + father.id + "_" + mother.id,
-                                 uniqueId1 = user.id + "_" + user.fatherId + "_" + user.motherId,
-                                 user,
-                                 user2 = user,
-                                 user3 = user,
-                                 father,
-                                 hasFather = user.fatherId != null ? true : false,
-                                 fatherName = father.name,
-                                 mother
-                             };
+                            from father in userQuery.Where(father => user.fatherId == father.id)
+                            from mother in userQuery.Where(mother => user.motherId == mother.id)
+                            orderby user.id
+                            select new
+                            {
+                                uniqueId = user.id + "_" + father.id + "_" + mother.id,
+                                uniqueId1 = user.id + "_" + user.fatherId + "_" + user.motherId,
+                                user,
+                                user2 = user,
+                                user3 = user,
+                                father,
+                                hasFather = user.fatherId != null ? true : false,
+                                fatherName = father.name,
+                                mother
+                            };
 
                 var userList = query.ToList();
                 Assert.AreEqual(3, userList.Count);
@@ -147,18 +151,19 @@ namespace Vitorm.MsTest.CommonTest
 
             {
                 var query = from user in userQuery
-                             from father in userQuery.Where(father => user.fatherId == father.id).DefaultIfEmpty()
-                             from mother in userQuery.Where(mother => user.motherId == mother.id).DefaultIfEmpty()
-                             select new
-                             {
-                                 user,
-                                 father,
-                                 userId = user.id + 100,
-                                 hasFather = user.fatherId != null ? true : false,
-                                 hasFather2 = father != null,
-                                 fatherName = father.name,
-                                 motherName = mother.name,
-                             };
+                            from father in userQuery.Where(father => user.fatherId == father.id).DefaultIfEmpty()
+                            from mother in userQuery.Where(mother => user.motherId == mother.id).DefaultIfEmpty()
+                            orderby user.id
+                            select new
+                            {
+                                user,
+                                father,
+                                userId = user.id + 100,
+                                hasFather = user.fatherId != null ? true : false,
+                                hasFather2 = father != null,
+                                fatherName = father.name,
+                                motherName = mother.name,
+                            };
 
                 var userList = query.ToList();
 
@@ -169,29 +174,6 @@ namespace Vitorm.MsTest.CommonTest
                 Assert.AreEqual(5, userList[2].father.id);
             }
 
-            {
-                var query = from user in userQuery
-                             from father in userQuery.Where(father => user.fatherId == father.id)
-                             from mother in userQuery.Where(mother => user.motherId == mother.id)
-                             where user.id > 1
-                             orderby father.id descending
-                             select new
-                             {
-                                 user,
-                                 father,
-                                 userId = user.id + 100,
-                                 hasFather = user.fatherId != null ? true : false,
-                                 hasFather2 = father != null,
-                                 fatherName = father.name,
-                                 motherName = mother.name,
-                             };
-
-                var userList = query.ToList();
-
-                Assert.AreEqual(2, userList.Count);
-                Assert.AreEqual(5, userList.First().father?.id);
-                Assert.AreEqual(4, userList.Last().father?.id);
-            }
 
         }
 
@@ -206,7 +188,7 @@ namespace Vitorm.MsTest.CommonTest
             {
                 var count = (from user in userQuery
                              from father in userQuery.Where(father => user.fatherId == father.id).DefaultIfEmpty()
-                             where user.id > 2 && father == null
+                             where user.id > 2 && father.name == null
                              select new
                              {
                                  father

+ 11 - 10
test/Vitorm.Sqlite.MsTest/CommonTest/Query_LinqMethods_Test.cs

@@ -18,7 +18,7 @@ namespace Vitorm.MsTest.CommonTest
             var userQuery = dbContext.Query<User>();
 
             {
-                var userList = userQuery.ToList();
+                var userList = userQuery.OrderBy(m => m.id).ToList();
                 Assert.AreEqual(6, userList.Count);
                 Assert.AreEqual(1, userList.First().id);
                 Assert.AreEqual(6, userList.Last().id);
@@ -26,7 +26,7 @@ namespace Vitorm.MsTest.CommonTest
 
 
             {
-                var userList = userQuery.Select(u => u.id).ToList();
+                var userList = userQuery.OrderBy(m => m.id).Select(u => u.id).ToList();
                 Assert.AreEqual(6, userList.Count);
                 Assert.AreEqual(1, userList.First());
                 Assert.AreEqual(6, userList.Last());
@@ -108,6 +108,7 @@ namespace Vitorm.MsTest.CommonTest
             {
                 var query =
                     from user in userQuery
+                    orderby user.id
                     select new
                     {
                         uniqueId1 = user.id + "_" + user.fatherId + "_" + user.motherId,
@@ -150,12 +151,12 @@ namespace Vitorm.MsTest.CommonTest
             var userQuery = dbContext.Query<User>();
 
             {
-                var id = userQuery.Select(u => u.id).FirstOrDefault();
+                var id = userQuery.OrderBy(m => m.id).Select(u => u.id).FirstOrDefault();
                 Assert.AreEqual(1, id);
             }
 
             {
-                var user = userQuery.FirstOrDefault();
+                var user = userQuery.OrderBy(m => m.id).FirstOrDefault();
                 Assert.AreEqual(1, user?.id);
             }
 
@@ -183,7 +184,7 @@ namespace Vitorm.MsTest.CommonTest
             var userQuery = dbContext.Query<User>();
 
             {
-                var user = userQuery.First();
+                var user = userQuery.OrderBy(m => m.id).First();
                 Assert.AreEqual(1, user?.id);
             }
 
@@ -215,11 +216,11 @@ namespace Vitorm.MsTest.CommonTest
             var userQuery = dbContext.Query<User>();
 
             {
-                var id = userQuery.Select(u => u.id).FirstOrDefault();
+                var id = userQuery.OrderBy(m => m.id).Select(u => u.id).FirstOrDefault();
                 Assert.AreEqual(1, id);
             }
             {
-                var user = userQuery.LastOrDefault();
+                var user = userQuery.OrderBy(m => m.id).LastOrDefault();
                 Assert.AreEqual(6, user?.id);
             }
 
@@ -247,7 +248,7 @@ namespace Vitorm.MsTest.CommonTest
             var userQuery = dbContext.Query<User>();
 
             {
-                var user = userQuery.Last();
+                var user = userQuery.OrderBy(m => m.id).Last();
                 Assert.AreEqual(6, user?.id);
             }
 
@@ -278,7 +279,7 @@ namespace Vitorm.MsTest.CommonTest
             var userQuery = dbContext.Query<User>();
 
             {
-                var userList = userQuery.ToArray();
+                var userList = userQuery.OrderBy(m => m.id).ToArray();
                 Assert.AreEqual(6, userList.Length);
                 Assert.AreEqual(1, userList.First().id);
                 Assert.AreEqual(6, userList.Last().id);
@@ -286,7 +287,7 @@ namespace Vitorm.MsTest.CommonTest
 
 
             {
-                var userList = userQuery.Select(u => u.id).ToArray();
+                var userList = userQuery.OrderBy(m => m.id).Select(u => u.id).ToArray();
                 Assert.AreEqual(6, userList.Length);
                 Assert.AreEqual(1, userList.First());
                 Assert.AreEqual(6, userList.Last());