Browse Source

Comb test code

Lith 11 tháng trước cách đây
mục cha
commit
8c374607d0

+ 0 - 1
test/Vitorm.MySql.MsTest/Vitorm.MySql.MsTest.csproj

@@ -3,7 +3,6 @@
     <PropertyGroup>
         <TargetFramework>net6.0</TargetFramework>
         <ImplicitUsings>enable</ImplicitUsings>
-        <Nullable>enable</Nullable>
 
         <IsPackable>false</IsPackable>
         <IsTestProject>true</IsTestProject>

+ 0 - 1
test/Vitorm.SqlServer.MsTest/Vitorm.SqlServer.MsTest.csproj

@@ -3,7 +3,6 @@
     <PropertyGroup>
         <TargetFramework>net6.0</TargetFramework>
         <ImplicitUsings>enable</ImplicitUsings>
-        <Nullable>enable</Nullable>
 
         <IsPackable>false</IsPackable>
         <IsTestProject>true</IsTestProject>

+ 47 - 164
test/Vitorm.Sqlite.MsTest/CommonTest/Query_Test.cs → test/Vitorm.Sqlite.MsTest/CommonTest/Query_LinqMethods_Test.cs

@@ -6,23 +6,8 @@ namespace Vitorm.MsTest.CommonTest
 {
 
     [TestClass]
-    public class Query_Test
+    public class Query_LinqMethods_Test
     {
-        [TestMethod]
-        public void Test_Get()
-        {
-            {
-                using var dbContext = DataSource.CreateDbContext();
-                var user = dbContext.Get<User>(3);
-                Assert.AreEqual(3, user?.id);
-            }
-            {
-                using var dbContext = DataSource.CreateDbContext();
-                var user = dbContext.DbSet<User>().Get(5);
-                Assert.AreEqual(5, user?.id);
-            }
-        }
-
 
 
 
@@ -49,44 +34,62 @@ namespace Vitorm.MsTest.CommonTest
         }
 
 
-
         [TestMethod]
-        public void Test_Where()
+        public void Test_AllFeatures()
         {
             using var dbContext = DataSource.CreateDbContext();
             var userQuery = dbContext.Query<User>();
 
+            #region SelectMany().Where().OrderBy().Skip().Take().ToExecuteString()
+            /*
+            users.SelectMany(
+                user => users.Where(father => user.fatherId == father.id).DefaultIfEmpty()
+                , (user, father) => new {user = user, father = father}
+            ).Where(row => row.user.id > 2)
+            .Select(row => new {row.user })
+            .OrderBy(user=>user.id)
+            .Skip(1).Take(2);
+             */
             {
-                var userList = userQuery.Where(u => u.id > 2).Where(m => m.id < 4).ToList();
-                Assert.AreEqual(1, userList.Count);
-                Assert.AreEqual(3, userList.First().id);
-            }
-            {
-                var userList = userQuery.Where(u => u.id == 3).Where(m => m.fatherId == 5).ToList();
-                Assert.AreEqual(3, userList.First().id);
-            }
-            {
-                var userList = userQuery.Where(u => u.id + 1 == 4).Where(m => m.fatherId == 5).ToList();
-                Assert.AreEqual(3, userList.First().id);
-            }
-            {
-                var userList = userQuery.Where(u => 4 == u.id + 1).Where(m => m.fatherId == 5).ToList();
-                Assert.AreEqual(3, userList.First().id);
+                var query = (from user in userQuery
+                             from father in userQuery.Where(father => user.fatherId == father.id).DefaultIfEmpty()
+                             where user.id > 2
+                             orderby father.id, user.id descending
+                             select new
+                             {
+                                 user
+                             })
+                            .Skip(1).Take(2);
+
+                var sql = query.ToExecuteString();
+                var list = query.ToList();
+
+                Assert.AreEqual(2, list.Count);
+                Assert.AreEqual(5, list[0].user.id);
+                Assert.AreEqual(4, list[1].user.id);
             }
+            #endregion
+        }
 
 
+
+        [TestMethod]
+        public void Test_Get()
+        {
             {
-                var userList = userQuery.Where(u => u.birth == new DateTime(2021, 01, 01, 03, 00, 00)).ToList();
-                Assert.AreEqual(1, userList.Count);
-                Assert.AreEqual(3, userList.First().id);
+                using var dbContext = DataSource.CreateDbContext();
+                var user = dbContext.Get<User>(3);
+                Assert.AreEqual(3, user?.id);
             }
             {
-                var userList = userQuery.Where(u => u.birth == DateTime.Parse("2021-01-01 01:00:00").AddHours(2)).ToList();
-                Assert.AreEqual(1, userList.Count);
-                Assert.AreEqual(3, userList.First().id);
+                using var dbContext = DataSource.CreateDbContext();
+                var user = dbContext.DbSet<User>().Get(5);
+                Assert.AreEqual(5, user?.id);
             }
         }
 
+
+
         [TestMethod]
         public void Test_Select()
         {
@@ -136,42 +139,6 @@ namespace Vitorm.MsTest.CommonTest
         }
 
 
-        [TestMethod]
-        public void Test_AllFeatures()
-        {
-            using var dbContext = DataSource.CreateDbContext();
-            var userQuery = dbContext.Query<User>();
-
-            #region SelectMany().Where().OrderBy().Skip().Take().ToExecuteString()
-            /*
-            users.SelectMany(
-                user => users.Where(father => user.fatherId == father.id).DefaultIfEmpty()
-                , (user, father) => new {user = user, father = father}
-            ).Where(row => row.user.id > 2)
-            .Select(row => new {row.user })
-            .OrderBy(user=>user.id)
-            .Skip(1).Take(2);
-             */
-            {
-                var query = (from user in userQuery
-                             from father in userQuery.Where(father => user.fatherId == father.id).DefaultIfEmpty()
-                             where user.id > 2
-                             orderby father.id, user.id descending
-                             select new
-                             {
-                                 user
-                             })
-                            .Skip(1).Take(2);
-
-                var sql = query.ToExecuteString();
-                var list = query.ToList();
-
-                Assert.AreEqual(2, list.Count);
-                Assert.AreEqual(5, list[0].user.id);
-                Assert.AreEqual(4, list[1].user.id);
-            }
-            #endregion
-        }
 
 
 
@@ -181,6 +148,11 @@ namespace Vitorm.MsTest.CommonTest
             using var dbContext = DataSource.CreateDbContext();
             var userQuery = dbContext.Query<User>();
 
+            {
+                var id = userQuery.Select(u => u.id).FirstOrDefault();
+                Assert.AreEqual(1, id);
+            }
+
             {
                 var user = userQuery.FirstOrDefault();
                 Assert.AreEqual(1, user?.id);
@@ -322,95 +294,6 @@ namespace Vitorm.MsTest.CommonTest
 
 
 
-        // Enumerable.Contains
-        // Queryable.Contains
-        [TestMethod]
-        public void Test_Contains()
-        {
-            using var dbContext = DataSource.CreateDbContext();
-            var userQuery = dbContext.Query<User>();
-
-            // string in
-            {
-                var userList = userQuery.Where(u => new[] { "u3", "u5" }.Contains(u.name)).ToList();
-                Assert.AreEqual(2, userList.Count);
-                Assert.AreEqual(3, userList.First().id);
-                Assert.AreEqual(5, userList.Last().id);
-            }
-            // string not in
-            {
-                var userList = userQuery.Where(u => !new[] { "u3", "u5" }.Contains(u.name)).ToList();
-                Assert.AreEqual(4, userList.Count);
-                Assert.AreEqual(1, userList.First().id);
-                Assert.AreEqual(4, userList[2].id);
-            }
-
-            // numeric in
-            {
-                var userList = userQuery.Where(u => new[] { 3, 5 }.Contains(u.id)).ToList();
-                Assert.AreEqual(2, userList.Count);
-                Assert.AreEqual(3, userList.First().id);
-                Assert.AreEqual(5, userList.Last().id);
-            }
-            {
-                var ids = new[] { 3, 5 }.AsEnumerable();
-                var userList = userQuery.Where(u => ids.Contains(u.id)).ToList();
-                Assert.AreEqual(2, userList.Count);
-                Assert.AreEqual(3, userList.First().id);
-                Assert.AreEqual(5, userList.Last().id);
-            }
-            {
-                var ids = new[] { 3, 5 }.AsQueryable();
-                var userList = userQuery.Where(u => ids.Contains(u.id)).ToList();
-                Assert.AreEqual(2, userList.Count);
-                Assert.AreEqual(3, userList.First().id);
-                Assert.AreEqual(5, userList.Last().id);
-            }
-        }
-
-        [TestMethod]
-        public void Test_StringMethods()
-        {
-            using var dbContext = DataSource.CreateDbContext();
-            var userQuery = dbContext.Query<User>();
-
-            userQuery.ExecuteUpdate(row => new User
-            {
-                name = "u|" + row.id + "|" + (row.fatherId.ToString() ?? "") + "|" + (row.motherId.ToString() ?? "")
-            });
-
-            // StartsWith
-            {
-                var query = userQuery.Where(u => u.name.StartsWith("u|3|5"));
-                var sql = query.ToExecuteString();
-                var userList = query.ToList();
-                Assert.AreEqual(1, userList.Count);
-                Assert.AreEqual(3, userList.First().id);
-                Assert.AreEqual("u|3|5|6", userList.First().name);
-            }
-            // EndsWith
-            {
-                var query = userQuery.Where(u => u.name.EndsWith("3|5|6"));
-                var sql = query.ToExecuteString();
-                var userList = query.ToList();
-                Assert.AreEqual(1, userList.Count);
-                Assert.AreEqual(3, userList.First().id);
-                Assert.AreEqual("u|3|5|6", userList.First().name);
-            }
-            // Contains
-            {
-                var query = userQuery.Where(u => u.name.Contains("|3|5|"));
-                var sql = query.ToExecuteString();
-                var userList = query.ToList();
-                Assert.AreEqual(1, userList.Count);
-                Assert.AreEqual(3, userList.First().id);
-                Assert.AreEqual("u|3|5|6", userList.First().name);
-            }
-        }
-
-
-
-
         [TestMethod]
         public void Test_Distinct()
         {

+ 45 - 0
test/Vitorm.Sqlite.MsTest/CommonTest/Query_Type_DateTime_Test.cs

@@ -0,0 +1,45 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Vit.Extensions.Vitorm_Extensions;
+using System.Data;
+
+namespace Vitorm.MsTest.CommonTest
+{
+
+    [TestClass]
+    public class Query_Type_DateTime_Test
+    {
+
+        [TestMethod]
+        public void Test_Equal()
+        {
+            using var dbContext = DataSource.CreateDbContext();
+            var userQuery = dbContext.Query<User>();
+
+            // ==
+            {
+                var userList = userQuery.Where(u => u.birth == new DateTime(2021, 01, 01, 03, 00, 00)).ToList();
+                Assert.AreEqual(1, userList.Count);
+                Assert.AreEqual(3, userList.First().id);
+            }
+        }
+
+
+
+        [TestMethod]
+        public void Test_Caculate()
+        {
+            using var dbContext = DataSource.CreateDbContext();
+            var userQuery = dbContext.Query<User>();
+
+            {
+                var userList = userQuery.Where(u => u.birth == DateTime.Parse("2021-01-01 01:00:00").AddHours(2)).ToList();
+                Assert.AreEqual(1, userList.Count);
+                Assert.AreEqual(3, userList.First().id);
+            }
+
+        }
+
+
+
+    }
+}

+ 37 - 0
test/Vitorm.Sqlite.MsTest/CommonTest/Query_Type_Numric_Caculate_Test.cs

@@ -0,0 +1,37 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+using System.Data;
+
+namespace Vitorm.MsTest.CommonTest
+{
+
+    [TestClass]
+    public class Query_Type_Numric_Caculate_Test
+    {
+
+        [TestMethod]
+        public void Test_Caculate()
+        {
+            using var dbContext = DataSource.CreateDbContext();
+            var userQuery = dbContext.Query<User>();
+
+            {
+                var userList = userQuery.Where(u => u.id + 1 == 4).ToList();
+                Assert.AreEqual(1, userList.Count);
+                Assert.AreEqual(3, userList.First().id);
+            }
+            {
+                var userList = userQuery.Where(u => 4 == u.id + 1).ToList();
+                Assert.AreEqual(1, userList.Count);
+                Assert.AreEqual(3, userList.First().id);
+            }
+            {
+                var userList = userQuery.Where(u => u.id == 4 - 1).ToList();
+                Assert.AreEqual(1, userList.Count);
+                Assert.AreEqual(3, userList.First().id);
+            }
+        }
+
+
+    }
+}

+ 122 - 0
test/Vitorm.Sqlite.MsTest/CommonTest/Query_Type_Numric_Test.cs

@@ -0,0 +1,122 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+using System.Data;
+using System.Linq;
+
+namespace Vitorm.MsTest.CommonTest
+{
+
+    [TestClass]
+    public class Query_Type_Numeric_Test
+    {
+        // Enumerable.Contains
+        // Queryable.Contains
+        [TestMethod]
+        public void Test_In()
+        {
+            using var dbContext = DataSource.CreateDbContext();
+            var userQuery = dbContext.Query<User>();
+
+            // Enumerable.Contains
+            {
+                var userList = userQuery.Where(u => new[] { 3, 5 }.Contains(u.id)).ToList();
+                Assert.AreEqual(2, userList.Count);
+                Assert.AreEqual(0, userList.Select(m => m.id).Except(new[] { 3,5 }).Count());
+            }
+
+            // Enumerable.Contains
+            {
+                var ids = new[] { 3, 5 }.AsEnumerable();
+                var userList = userQuery.Where(u => ids.Contains(u.id)).ToList();
+                Assert.AreEqual(2, userList.Count);
+                Assert.AreEqual(0, userList.Select(m => m.id).Except(new[] { 3, 5 }).Count());
+            }
+
+            // Queryable.Contains
+            {
+                var ids = new[] { 3, 5 }.AsQueryable();
+                var userList = userQuery.Where(u => ids.Contains(u.id)).ToList();
+                Assert.AreEqual(2, userList.Count);
+                Assert.AreEqual(0, userList.Select(m => m.id).Except(new[] { 3, 5 }).Count());
+            }
+
+
+            // not Contains
+            {
+                var userList = userQuery.Where(u => !new[] { 3, 5 }.Contains(u.id)).ToList();
+                Assert.AreEqual(4, userList.Count);
+                Assert.AreEqual(0, userList.Select(m => m.id).Except(new[] { 1, 2, 4, 6 }).Count());
+            }
+        }
+
+
+        [TestMethod]
+        public void Test_Equal()
+        {
+            using var dbContext = DataSource.CreateDbContext();
+            var userQuery = dbContext.Query<User>();
+
+            // #1 ==
+            {
+                var userList = userQuery.Where(u => u.id == 3 || 5 == u.id).ToList();
+                Assert.AreEqual(2, userList.Count);
+                Assert.AreEqual(0, userList.Select(m => m.id).Except(new[] { 3, 5 }).Count());
+            }
+
+            // #2 !=
+            {
+                var userList = userQuery.Where(u => u.id != 1).ToList();
+                Assert.AreEqual(5, userList.Count);
+                Assert.AreEqual(0, userList.Select(m => m.id).Except(new[] { 2, 3, 4, 5, 6 }).Count());
+            }
+            {
+                var userList = userQuery.Where(u => 1 != u.id).ToList();
+                Assert.AreEqual(5, userList.Count);
+                Assert.AreEqual(0, userList.Select(m => m.id).Except(new[] { 2, 3, 4, 5, 6 }).Count());
+            }
+        }
+
+
+
+        [TestMethod]
+        public void Test_Compare()
+        {
+            using var dbContext = DataSource.CreateDbContext();
+            var userQuery = dbContext.Query<User>();
+
+            // #1 > and <
+            {
+                var userList = userQuery.Where(u => u.id > 2).Where(m => m.id < 4).ToList();
+                Assert.AreEqual(1, userList.Count);
+                Assert.AreEqual(3, userList.First().id);
+            }
+
+            // #2  > or <
+            {
+                var userList = userQuery.Where(u => u.id > 5 || u.id < 2).ToList();
+                Assert.AreEqual(2, userList.Count);
+                Assert.AreEqual(0, userList.Select(m => m.id).Except(new[] { 1, 6 }).Count());
+            }
+
+            // #3  >= or <=
+            {
+                var userList = userQuery.Where(u => u.id >= 6 || u.id <= 1).ToList();
+                Assert.AreEqual(2, userList.Count);
+                Assert.AreEqual(0, userList.Select(m => m.id).Except(new[] { 1, 6 }).Count());
+            }
+
+            // #4  in right side
+            {
+                var userList = userQuery.Where(u => 4 >= u.id && 3 <= u.id).ToList();
+                Assert.AreEqual(2, userList.Count);
+                Assert.AreEqual(0, userList.Select(m => m.id).Except(new[] { 3, 4 }).Count());
+            }
+
+        }
+
+
+
+
+
+    }
+}

+ 39 - 0
test/Vitorm.Sqlite.MsTest/CommonTest/Query_Type_String_Caculate_Test.cs

@@ -0,0 +1,39 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+using System.Data;
+
+namespace Vitorm.MsTest.CommonTest
+{
+
+    [TestClass]
+    public class Query_Type_String_Caculate_Test
+    {
+
+
+        [TestMethod]
+        public void Test_Caculate()
+        {
+            using var dbContext = DataSource.CreateDbContext();
+            var userQuery = dbContext.Query<User>();
+
+            {
+                var userList = userQuery.Where(u => u.name + 1 == "u31").ToList();
+                Assert.AreEqual(1, userList.Count);
+                Assert.AreEqual(3, userList[0].id);
+            }
+            {
+                var userList = userQuery.Where(u => "u31" == u.name + 1).ToList();
+                Assert.AreEqual(1, userList.Count);
+                Assert.AreEqual(3, userList[0].id);
+            }
+            {
+                var userList = userQuery.Where(u => u.name == "u" + 3).ToList();
+                Assert.AreEqual(1, userList.Count);
+                Assert.AreEqual(3, userList[0].id);
+            }
+
+        }
+
+
+    }
+}

+ 55 - 0
test/Vitorm.Sqlite.MsTest/CommonTest/Query_Type_String_Like_Test.cs

@@ -0,0 +1,55 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Vit.Extensions.Vitorm_Extensions;
+using System.Data;
+
+namespace Vitorm.MsTest.CommonTest
+{
+
+    [TestClass]
+    public class Query_Type_String_Like_Test
+    {
+
+
+        [TestMethod]
+        public void Test_Like()
+        {
+            using var dbContext = DataSource.CreateDbContext();
+            var userQuery = dbContext.Query<User>();
+
+            var users = userQuery.ToList();
+            users.ForEach(row => row.name = "u|" + row.id + "|" + (row.fatherId.ToString() ?? "") + "|" + (row.motherId.ToString() ?? ""));
+            dbContext.UpdateRange(users);
+
+            // StartsWith
+            {
+                var query = userQuery.Where(u => u.name.StartsWith("u|3|5"));
+                var sql = query.ToExecuteString();
+                var userList = query.ToList();
+                Assert.AreEqual(1, userList.Count);
+                Assert.AreEqual(3, userList.First().id);
+                Assert.AreEqual("u|3|5|6", userList.First().name);
+            }
+            // EndsWith
+            {
+                var query = userQuery.Where(u => u.name.EndsWith("3|5|6"));
+                var sql = query.ToExecuteString();
+                var userList = query.ToList();
+                Assert.AreEqual(1, userList.Count);
+                Assert.AreEqual(3, userList.First().id);
+                Assert.AreEqual("u|3|5|6", userList.First().name);
+            }
+            // Contains
+            {
+                var query = userQuery.Where(u => u.name.Contains("|3|5|"));
+                var sql = query.ToExecuteString();
+                var userList = query.ToList();
+                Assert.AreEqual(1, userList.Count);
+                Assert.AreEqual(3, userList.First().id);
+                Assert.AreEqual("u|3|5|6", userList.First().name);
+            }
+        }
+
+
+
+    }
+}

+ 90 - 0
test/Vitorm.Sqlite.MsTest/CommonTest/Query_Type_String_Test.cs

@@ -0,0 +1,90 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+using System.Data;
+using System.Linq;
+
+namespace Vitorm.MsTest.CommonTest
+{
+
+    [TestClass]
+    public class Query_Type_String_Test
+    {
+
+        // Enumerable.Contains
+        // Queryable.Contains
+        [TestMethod]
+        public void Test_In()
+        {
+            using var dbContext = DataSource.CreateDbContext();
+            var userQuery = dbContext.Query<User>();
+
+            // Enumerable.Contains
+            {
+                var userList = userQuery.Where(u => new[] { "u3", "u5" }.Contains(u.name)).ToList();
+                Assert.AreEqual(2, userList.Count);
+                Assert.AreEqual(0, userList.Select(m => m.name).Except(new[] { "u3", "u5" }).Count());
+            }
+
+            // Enumerable.Contains
+            {
+                var ids = new[] { "u3", "u5" }.AsEnumerable();
+                var userList = userQuery.Where(u => ids.Contains(u.name)).ToList();
+                Assert.AreEqual(2, userList.Count);
+                Assert.AreEqual(0, userList.Select(m => m.name).Except(new[] { "u3", "u5" }).Count());
+            }
+
+            // Queryable.Contains
+            {
+                var ids = new[] { "u3", "u5" }.AsQueryable();
+                var userList = userQuery.Where(u => ids.Contains(u.name)).ToList();
+                Assert.AreEqual(2, userList.Count);
+                Assert.AreEqual(0, userList.Select(m => m.name).Except(new[] { "u3", "u5" }).Count());
+            }
+
+
+            // not Contains
+            {
+                var userList = userQuery.Where(u => !new[] { "u3", "u5" }.Contains(u.name)).ToList();
+                Assert.AreEqual(4, userList.Count);
+                Assert.AreEqual(0, userList.Select(m => m.name).Except(new[] { "u1", "u2", "u4", "u6" }).Count());
+            }
+        }
+
+
+        [TestMethod]
+        public void Test_Equal()
+        {
+            using var dbContext = DataSource.CreateDbContext();
+            var userQuery = dbContext.Query<User>();
+
+            // #1 ==
+            {
+                var userList = userQuery.Where(u => u.name == "u3" || "u5" == u.name).ToList();
+                Assert.AreEqual(2, userList.Count);
+                Assert.AreEqual(0, userList.Select(m => m.name).Except(new[] { "u3", "u5" }).Count());
+            }
+
+            // #2 !=
+            {
+                var userList = userQuery.Where(u => u.name != "u1").ToList();
+                Assert.AreEqual(5, userList.Count);
+                Assert.AreEqual(0, userList.Select(m => m.name).Except(new[] { "u2", "u3", "u4", "u5", "u6" }).Count());
+            }
+            {
+                var userList = userQuery.Where(u => "u1" != u.name).ToList();
+                Assert.AreEqual(5, userList.Count);
+                Assert.AreEqual(0, userList.Select(m => m.name).Except(new[] { "u2", "u3", "u4", "u5", "u6" }).Count());
+            }
+        }
+
+
+
+
+
+
+
+
+
+
+    }
+}

+ 0 - 1
test/Vitorm.Sqlite.MsTest/Vitorm.Sqlite.MsTest.csproj

@@ -3,7 +3,6 @@
     <PropertyGroup>
         <TargetFramework>net6.0</TargetFramework>
         <ImplicitUsings>enable</ImplicitUsings>
-        <Nullable>enable</Nullable>
 
         <IsPackable>false</IsPackable>
         <IsTestProject>true</IsTestProject>