Lith 10 месяцев назад
Родитель
Сommit
b8df4feb1b

+ 1 - 0
src/Vitorm/DataProvider/IDataProvider.cs

@@ -4,6 +4,7 @@ namespace Vitorm.DataProvider
 {
     public interface IDataProvider : IDbContext
     {
+        DbContext CreateDbContext();
         void Init(Dictionary<string, object> config);
     }
 }

+ 2 - 0
src/Vitorm/DataProvider/SqlDataProvider.cs

@@ -8,6 +8,8 @@ namespace Vitorm.DataProvider
 {
     public abstract class SqlDataProvider : IDataProvider
     {
+        DbContext IDataProvider.CreateDbContext() => this.CreateDbContext();
+
         public abstract SqlDbContext CreateDbContext();
 
         public abstract void Init(Dictionary<string, object> config);

+ 0 - 1
src/Vitorm/Sql/SqlDbContext.cs

@@ -9,7 +9,6 @@ using Vitorm.Sql.Transaction;
 using Vitorm.Sql.SqlTranslate;
 using Vitorm.StreamQuery;
 using Vit.Extensions.Vitorm_Extensions;
-using Vitorm.Entity;
 
 namespace Vitorm.Sql
 {

+ 68 - 0
test/Vitorm.Data.MsTest/CommonTest/ClickHouse_Test.cs

@@ -0,0 +1,68 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using User = Vitorm.MsTest.ClickHouse.User;
+using Vitorm.DataProvider;
+using Vitorm.Sql;
+
+namespace Vitorm.MsTest.ClickHouse
+{
+    public class User : Vitorm.MsTest.UserBase
+    {
+    }
+}
+
+
+namespace Vitorm.MsTest
+{
+
+    [TestClass]
+    public partial class ClickHouse_Test : UserTest<User>
+    {
+
+        [TestMethod]
+        public void Test()
+        {
+            Init();
+
+            Test_Get();
+            Test_Query();
+            Test_QueryJoin();
+            Test_ToExecuteString();
+            //Test_ExecuteUpdate();
+            Test_ExecuteDelete();
+            Test_Create();
+            //Test_Update();
+            Test_Delete();
+            Test_DbContext();
+        }
+
+        public override User NewUser(int id, bool forAdd = false) => new User { id = id, name = "testUser" + id };
+
+        public override void WaitForUpdate() => Thread.Sleep(1000); 
+
+        public void Init()
+        {
+
+            using var dbContext = Data.DataProvider<User>()?.CreateDbContext() as SqlDbContext;
+
+            dbContext.Execute(sql: "DROP TABLE if exists `User`;");
+            dbContext.Create<User>();
+
+            var users = new List<User> {
+                    new User { id=1, name="u146", fatherId=4, motherId=6 },
+                    new User { id=2, name="u246", fatherId=4, motherId=6 },
+                    new User { id=3, name="u356", fatherId=5, motherId=6 },
+                    new User { id=4, name="u400" },
+                    new User { id=5, name="u500" },
+                    new User { id=6, name="u600" },
+                };
+            users.ForEach(user => { user.birth = DateTime.Parse("2021-01-01 00:00:00").AddHours(user.id); });
+
+            dbContext.AddRange(users);
+
+            WaitForUpdate();
+
+        }
+
+
+    }
+}

+ 75 - 0
test/Vitorm.Data.MsTest/CommonTest/ElasticSearch_Test.cs

@@ -0,0 +1,75 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+using Vitorm.Sql;
+
+using User = Vitorm.MsTest.ElasticSearch.User;
+
+namespace Vitorm.MsTest.ElasticSearch
+{
+    public class User : Vitorm.MsTest.UserBase
+    {
+        [System.ComponentModel.DataAnnotations.Key]
+        [System.Text.Json.Serialization.JsonIgnore]
+        [Newtonsoft.Json.JsonIgnore]
+        public string key { get; set; }
+
+        public override int id { get; set; }
+    }
+}
+
+
+namespace Vitorm.MsTest
+{
+
+    [TestClass]
+    public partial class ElasticSearch_Test : UserTest<User>
+    {
+
+        [TestMethod]
+        public void Test()
+        {
+            Init();
+
+            Test_Get();
+            Test_Query();
+            //Test_QueryJoin();
+            Test_ToExecuteString();
+            //Test_ExecuteUpdate();
+            //Test_ExecuteDelete();
+            Test_Create();
+            Test_Update();
+            Test_Delete();
+            Test_DbContext();
+        }
+
+        public override User NewUser(int id, bool forAdd = false) => new User { key = id.ToString(), id = id, name = "testUser" + id };
+
+        public override void WaitForUpdate() => Thread.Sleep(1000);
+
+        public void Init()
+        {
+            using var dbContext = Data.DataProvider<User>()?.CreateDbContext() as Vitorm.ElasticSearch.DbContext;
+
+            dbContext.Drop<User>();
+            dbContext.Create<User>();
+
+            var users = new List<User> {
+                    new User { key="1",id=1, name="u146", fatherId=4, motherId=6 },
+                    new User { key="2",id=2, name="u246", fatherId=4, motherId=6 },
+                    new User { key="3",id=3, name="u356", fatherId=5, motherId=6 },
+                    new User { key="4",id=4, name="u400" },
+                    new User { key="5",id=5, name="u500" },
+                    new User { key="6",id=6, name="u600" },
+                };
+
+            users.ForEach(user => { user.birth = DateTime.Parse("2021-01-01 00:00:00").AddHours(user.id); });
+
+            dbContext.AddRange(users);
+
+            WaitForUpdate();
+
+        }
+
+
+    }
+}

+ 77 - 0
test/Vitorm.Data.MsTest/CommonTest/MySql_Test.cs

@@ -0,0 +1,77 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using User = Vitorm.MsTest.MySql.User;
+using Vitorm.DataProvider;
+using System.ComponentModel.DataAnnotations.Schema;
+using Vitorm.Sql;
+
+namespace Vitorm.MsTest.MySql
+{
+    public class User : Vitorm.MsTest.UserBase
+    {
+
+        [System.ComponentModel.DataAnnotations.Key]
+        [System.ComponentModel.DataAnnotations.Schema.DatabaseGenerated(DatabaseGeneratedOption.Identity)]
+        public override int id { get; set; }
+    }
+}
+
+
+namespace Vitorm.MsTest
+{
+
+    [TestClass]
+    public partial class MySql_Test : UserTest<User>
+    {
+
+        [TestMethod]
+        public void Test()
+        {
+            Init();
+
+            Test_Get();
+            Test_Query();
+            Test_QueryJoin();
+            Test_ToExecuteString();
+            Test_ExecuteUpdate();
+            Test_ExecuteDelete();
+            Test_Create();
+            Test_Update();
+            Test_Delete();
+            Test_DbContext();
+        }
+
+        public override User NewUser(int id, bool forAdd = false) => new User { id = forAdd ? 0 : id, name = "testUser" + id };
+
+
+
+        public void Init()
+        {
+            using var dbContext = Data.DataProvider<User>()?.CreateDbContext() as SqlDbContext;
+
+
+            dbContext.Execute(sql: "DROP TABLE  if exists `User`;");
+
+            dbContext.Create<User>();
+
+            var users = new List<User> {
+                    new User  {   name="u146", fatherId=4, motherId=6 },
+                    new User  {   name="u246", fatherId=4, motherId=6 },
+                    new User  {   name="u356", fatherId=5, motherId=6 },
+                    new User  {   name="u400" },
+                    new User  {   name="u500" },
+                    new User  {   name="u600" },
+                };
+
+            dbContext.AddRange(users);
+
+            users.ForEach(user => { user.birth = DateTime.Parse("2021-01-01 00:00:00").AddHours(user.id); });
+
+            dbContext.UpdateRange(users);
+
+            WaitForUpdate();
+
+        }
+
+
+    }
+}

+ 77 - 0
test/Vitorm.Data.MsTest/CommonTest/SqlServer_Test.cs

@@ -0,0 +1,77 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using User = Vitorm.MsTest.SqlServer.User;
+using Vitorm.DataProvider;
+using System.ComponentModel.DataAnnotations.Schema;
+using Vitorm.Sql;
+
+namespace Vitorm.MsTest.SqlServer
+{
+    public class User : Vitorm.MsTest.UserBase
+    {
+
+        [System.ComponentModel.DataAnnotations.Key]
+        [System.ComponentModel.DataAnnotations.Schema.DatabaseGenerated(DatabaseGeneratedOption.Identity)]
+        public override int id { get; set; }
+    }
+}
+
+
+namespace Vitorm.MsTest
+{
+
+    [TestClass]
+    public partial class SqlServer_Test : UserTest<User>
+    {
+
+        [TestMethod]
+        public void Test()
+        {
+            Init();
+
+            Test_Get();
+            Test_Query();
+            Test_QueryJoin();
+            Test_ToExecuteString();
+            Test_ExecuteUpdate();
+            Test_ExecuteDelete();
+            Test_Create();
+            Test_Update();
+            Test_Delete();
+            Test_DbContext();
+        }
+
+        public override User NewUser(int id, bool forAdd = false) => new User { id = forAdd ? 0 : id, name = "testUser" + id };
+
+
+
+        public void Init()
+        {
+            using var dbContext = Data.DataProvider<User>()?.CreateDbContext() as SqlDbContext;
+
+
+            dbContext.Execute(sql: "IF OBJECT_ID(N'User', N'U') IS  NOT  NULL \r\nDROP TABLE [User];");
+
+            dbContext.Create<User>();
+
+            var users = new List<User> {
+                    new User  {   name="u146", fatherId=4, motherId=6 },
+                    new User  {   name="u246", fatherId=4, motherId=6 },
+                    new User  {   name="u356", fatherId=5, motherId=6 },
+                    new User  {   name="u400" },
+                    new User  {   name="u500" },
+                    new User  {   name="u600" },
+                };
+
+            dbContext.AddRange(users);
+
+            users.ForEach(user => { user.birth = DateTime.Parse("2021-01-01 00:00:00").AddHours(user.id); });
+
+            dbContext.UpdateRange(users);
+
+            WaitForUpdate();
+
+        }
+
+
+    }
+}

+ 22 - 13
test/Vitorm.Data.MsTest/CommonTest/Sqlite_Test.cs

@@ -1,11 +1,13 @@
 using Microsoft.VisualStudio.TestTools.UnitTesting;
+using User = Vitorm.MsTest.Sqlite.User;
+using Vitorm.DataProvider;
 using Vitorm.Sql;
-using Vit.Extensions;
-using UserEntity = Vitorm.MsTest.Sqlite.User;
 
 namespace Vitorm.MsTest.Sqlite
 {
-    public class User : Vitorm.MsTest.User { }
+    public class User : Vitorm.MsTest.UserBase
+    {
+    }
 }
 
 
@@ -13,7 +15,7 @@ namespace Vitorm.MsTest
 {
 
     [TestClass]
-    public partial class Sqlite_Test: UserTest<UserEntity>
+    public partial class Sqlite_Test : UserTest<User>
     {
 
         [TestMethod]
@@ -21,14 +23,23 @@ namespace Vitorm.MsTest
         {
             Init();
 
-            base.Test();
+            Test_Get();
+            Test_Query();
+            Test_QueryJoin();
+            Test_ToExecuteString();
+            Test_ExecuteUpdate();
+            Test_ExecuteDelete();
+            Test_Create();
+            Test_Update();
+            Test_Delete();
+            Test_DbContext();
         }
 
-        public override UserEntity NewUser(int id) => new UserEntity { id = id, name = "testUser" + id };
+        public override User NewUser(int id, bool forAdd = false) => new User { id = id, name = "testUser" + id };
 
 
 
-        public static void Init()
+        public void Init()
         {
 
             var filePath = Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, $"sqlite.db");
@@ -36,13 +47,9 @@ namespace Vitorm.MsTest
             File.WriteAllBytes(filePath, new byte[0]);
 
 
-            var connectionString = $"data source=sqlite.db";
+            using var dbContext = Data.DataProvider<User>()?.CreateDbContext();
 
-            using var dbContext = new SqlDbContext();
-            dbContext.UseSqlite(connectionString);
-
-            var dbSet = dbContext.DbSet<User>();
-            dbSet.Create();
+            dbContext.Create<User>();
 
             var users = new List<User> {
                     new User { id=1, name="u146", fatherId=4, motherId=6 },
@@ -56,6 +63,8 @@ namespace Vitorm.MsTest
 
             dbContext.AddRange(users);
 
+            WaitForUpdate();
+
         }
 
 

+ 75 - 40
test/Vitorm.Data.MsTest/CommonTest/UserTest.cs

@@ -2,23 +2,21 @@
 
 using Vit.Extensions.Vitorm_Extensions;
 
-using Vitorm.DataProvider;
-
 
 namespace Vitorm.MsTest
 {
-    public abstract class UserTest<User> where User : Vitorm.MsTest.User, new()
+    public abstract class UserTest<User> where User : Vitorm.MsTest.UserBase, new()
     {
 
-        public abstract User NewUser(int id);
+        public virtual void WaitForUpdate() {  }
+        public abstract User NewUser(int id, bool forAdd = false);
 
-        public virtual List<User> NewUsers(int startId, int count = 1)
+        public virtual List<User> NewUsers(int startId, int count = 1, bool forAdd = false)
         {
-            return Enumerable.Range(startId, count).Select(NewUser).ToList();
+            return Enumerable.Range(startId, count).Select(id => NewUser(id, forAdd)).ToList();
         }
 
-
-        public void Test()
+        public void Test_Get()
         {
             #region #1 Get
             {
@@ -26,7 +24,21 @@ namespace Vitorm.MsTest
                 Assert.AreEqual(1, user?.id);
             }
             #endregion
+        }
+
+        public void Test_Query()
+        {
+            #region #2 Query
+            {
+                var userList = Data.Query<User>().Where(u => u.id == 1).ToList();
+                Assert.AreEqual(1, userList.Count);
+                Assert.AreEqual(1, userList.First().id);
+            }
+            #endregion
+        }
 
+        public void Test_QueryJoin()
+        {
             #region #2 Query
             {
                 var query =
@@ -35,16 +47,27 @@ namespace Vitorm.MsTest
                     where user.id > 2
                     select new { user, father };
 
-                var sql = query.ToExecuteString();
                 var userList = query.ToList();
-
                 Assert.AreEqual(1, userList.Count);
                 Assert.AreEqual(3, userList.First().user.id);
                 Assert.AreEqual(5, userList.First().father.id);
 
             }
             #endregion
+        }
+        public void Test_ToExecuteString()
+        {
+            #region ToExecuteString
+            {
+                var query = Data.Query<User>().Where(u => u.id == 1);
 
+                var sql = query.ToExecuteString();
+                Assert.IsNotNull(sql);
+            }
+            #endregion
+        }
+        public void Test_ExecuteUpdate()
+        {
             #region #3 ExecuteUpdate
             {
                 var query = Data.Query<User>();
@@ -57,31 +80,36 @@ namespace Vitorm.MsTest
 
                 Assert.AreEqual(6, count);
 
+                WaitForUpdate();
+
                 var userList = query.ToList();
                 Assert.AreEqual("u_1_4_6", userList.First().name);
                 Assert.AreEqual(DateTime.Parse("2021-01-11 00:00:00"), userList.First().birth);
                 Assert.AreEqual("u_6__", userList.Last().name);
             }
             #endregion
-
+        }
+        public void Test_ExecuteDelete()
+        {
             #region #4 ExecuteDelete
             {
                 var query = Data.Query<User>();
 
                 var count = query.Where(u => u.id == 6).ExecuteDelete();
 
-                Assert.AreEqual(1, count);
+                //Assert.AreEqual(1, count);
+                WaitForUpdate();
 
                 var userList = query.ToList();
                 Assert.AreEqual(5, userList.Count());
             }
             #endregion
-
-
-
+        }
+        public void Test_Create()
+        {
             #region #5 Create :  Add AddRange
             {
-                var newUserList = NewUsers(7, 4);
+                var newUserList = NewUsers(7, 4, forAdd: true);
 
                 // #1 Add
                 Data.Add<User>(newUserList[0]);
@@ -89,8 +117,7 @@ namespace Vitorm.MsTest
                 // #2 AddRange
                 Data.AddRange<User>(newUserList.Skip(1));
 
-
-                Thread.Sleep(1000);
+                WaitForUpdate();
 
                 // assert
                 {
@@ -99,24 +126,17 @@ namespace Vitorm.MsTest
                     Assert.AreEqual(0, userList.Select(m => m.id).Except(newUserList.Select(m => m.id)).Count());
                     Assert.AreEqual(0, userList.Select(m => m.name).Except(newUserList.Select(m => m.name)).Count());
                 }
-
-                try
-                {
-                    Data.Add<User>(newUserList[0]);
-                    Assert.Fail("should not be able to add same key twice");
-                }
-                catch (Exception ex) when (ex is not AssertFailedException)
-                {
-                }
             }
             #endregion
+        }
 
-
+        public void Test_Update()
+        {
             #region #6 Update: Update UpdateRange
             {
                 var ids = Data.Query<User>().OrderBy(u => u.id).Select(u => u.id).ToArray()[^2..];
-            
-                var newUserList = ids.Select(NewUser).Append(NewUser(ids.Last()+1)).ToList();
+
+                var newUserList = ids.Select(id => NewUser(id)).Append(NewUser(ids.Last() + 1)).ToList();
 
                 // Update
                 {
@@ -130,7 +150,7 @@ namespace Vitorm.MsTest
                     Assert.AreEqual(1, rowCount);
                 }
 
-                Thread.Sleep(1000);
+                WaitForUpdate();
 
                 // assert
                 {
@@ -143,65 +163,80 @@ namespace Vitorm.MsTest
             }
             #endregion
 
+        }
 
+        public void Test_Delete()
+        {
 
             #region #7 Delete : Delete DeleteRange DeleteByKey DeleteByKeys
             {
                 // #1 Delete
                 {
                     var rowCount = Data.Delete(NewUser(1));
-                    Assert.AreEqual(1, rowCount);
+                    //Assert.AreEqual(1, rowCount);
                 }
 
                 // #2 DeleteRange
                 {
                     var rowCount = Data.DeleteRange(NewUsers(2, 2));
-                    Assert.AreEqual(2, rowCount);
+                    //Assert.AreEqual(2, rowCount);
                 }
 
                 // #3 DeleteByKey
                 {
-                    using var dbContext = (Data.DataProvider<User>() as SqlDataProvider)?.CreateDbContext();
+                    using var dbContext = Data.DataProvider<User>()?.CreateDbContext();
                     var entityDescriptor = dbContext.GetEntityDescriptor(typeof(User));
                     var key = entityDescriptor.key;
 
                     var user = NewUser(4);
                     var keyValue = key.GetValue(user);
                     var rowCount = Data.DeleteByKey<User>(keyValue);
-                    Assert.AreEqual(1, rowCount);
+                    //Assert.AreEqual(1, rowCount);
+                }
+
+
+                // assert
+                {
+                    WaitForUpdate();
+                    var userList = Data.Query<User>().Where(u => u.id <= 4).ToList();
+                    Assert.AreEqual(0, userList.Count());
                 }
 
+
                 // #4 DeleteByKeys
                 {
-                    using var dbContext = (Data.DataProvider<User>() as SqlDataProvider)?.CreateDbContext();
+                    using var dbContext = Data.DataProvider<User>()?.CreateDbContext();
                     var entityDescriptor = dbContext.GetEntityDescriptor(typeof(User));
                     var key = entityDescriptor.key;
 
                     var users = Data.Query<User>().ToList();
                     var keyValues = users.Select(user => key.GetValue(user));
                     var rowCount = Data.DeleteByKeys<User, object>(keyValues);
-                    Assert.AreEqual(users.Count, rowCount);
+                    //Assert.AreEqual(users.Count, rowCount);
                 }
 
-                Thread.Sleep(1000);
 
                 // assert
                 {
+                    WaitForUpdate();
                     var userList = Data.Query<User>().ToList();
                     Assert.AreEqual(0, userList.Count());
                 }
             }
             #endregion
+        }
 
 
-
+        public void Test_DbContext()
+        {
             #region #8 get DbContext and entityDescriptor
             {
-                using var dbContext = (Data.DataProvider<User>() as SqlDataProvider)?.CreateDbContext();
+                using var dbContext = Data.DataProvider<User>()?.CreateDbContext();
                 var entityDescriptor = dbContext.GetEntityDescriptor(typeof(User));
                 Assert.IsNotNull(entityDescriptor);
             }
             #endregion
+
         }
     }
 }

+ 2 - 5
test/Vitorm.Data.MsTest/User.cs → test/Vitorm.Data.MsTest/UserBase.cs

@@ -3,10 +3,10 @@ namespace Vitorm.MsTest
 {
 
     [System.ComponentModel.DataAnnotations.Schema.Table("User")]
-    public class User
+    public class UserBase
     {
         [System.ComponentModel.DataAnnotations.Key]
-        public int id { get; set; }
+        public virtual int id { get; set; }
         public string name { get; set; }
         public DateTime? birth { get; set; }
 
@@ -15,9 +15,6 @@ namespace Vitorm.MsTest
 
         [System.ComponentModel.DataAnnotations.Schema.NotMapped]
         public string test { get; set; }
-
-
-      
     }
 
 }

+ 2 - 0
test/Vitorm.Data.MsTest/Vitorm.Data.MsTest.csproj

@@ -18,6 +18,8 @@
     </ItemGroup>
 
     <ItemGroup>
+      <ProjectReference Include="..\..\..\Vitorm.ClickHouse\src\Vitorm.ClickHouse\Vitorm.ClickHouse.csproj" />
+      <ProjectReference Include="..\..\..\Vitorm.ElasticSearch\src\Vitorm.ElasticSearch\Vitorm.ElasticSearch.csproj" />
       <ProjectReference Include="..\..\..\Vitorm\src\Vitorm.MySql\Vitorm.MySql.csproj" />
       <ProjectReference Include="..\..\..\Vitorm\src\Vitorm.Sqlite\Vitorm.Sqlite.csproj" />
       <ProjectReference Include="..\..\..\Vitorm\src\Vitorm.SqlServer\Vitorm.SqlServer.csproj" />

+ 4 - 4
test/Vitorm.MySql.MsTest/DataSource.cs

@@ -32,7 +32,9 @@ namespace Vitorm.MsTest
 
     public class DataSource
     {
-        static string connectionString = Appsettings.json.GetStringByPath("App.Db.ConnectionString");
+        public static void WaitForUpdate() { }
+
+        static string connectionString = Appsettings.json.GetStringByPath("Vitorm.MySql.connectionString");
         public static SqlDbContext CreateDbContextForWriting() => CreateDbContext();
 
         public static SqlDbContext CreateDbContext()
@@ -42,11 +44,9 @@ namespace Vitorm.MsTest
 
             dbContext.BeginTransaction();
 
-            var dbSet = dbContext.DbSet<User>();
-
             dbContext.Execute(sql: "DROP TABLE  if exists `User`;");
 
-            dbSet.Create();
+            dbContext.Create<User>();
 
             var users = new List<User> {
                     new User {   name="u146", fatherId=4, motherId=6 },

+ 4 - 4
test/Vitorm.SqlServer.MsTest/DataSource.cs

@@ -36,7 +36,9 @@ namespace Vitorm.MsTest
 
     public class DataSource
     {
-        static string connectionString = Appsettings.json.GetStringByPath("App.Db.ConnectionString");
+        public static void WaitForUpdate() { }
+
+        static string connectionString = Appsettings.json.GetStringByPath("Vitorm.SqlServer.connectionString");
 
         public static SqlDbContext CreateDbContextForWriting() => CreateDbContext();
 
@@ -47,11 +49,9 @@ namespace Vitorm.MsTest
 
             dbContext.BeginTransaction();
 
-            var dbSet = dbContext.DbSet<User>();
-
             dbContext.Execute(sql: "IF OBJECT_ID(N'User', N'U') IS  NOT  NULL \r\nDROP TABLE [User];");
 
-            dbSet.Create();
+            dbContext.Create<User>();
 
             var users = new List<User> {
                     new User {   name="u146", fatherId=4, motherId=6 },

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

@@ -29,7 +29,7 @@ namespace Vitorm.MsTest.CommonTest
             dbContext.AddRange(newUserList.Skip(1));
 
 
-            Thread.Sleep(1000);
+            DataSource.WaitForUpdate();
 
             // assert
             {
@@ -72,7 +72,7 @@ namespace Vitorm.MsTest.CommonTest
                 Assert.AreEqual(2, rowCount);
             }
 
-            Thread.Sleep(1000);
+            DataSource.WaitForUpdate();
 
             // assert
             {
@@ -125,7 +125,7 @@ namespace Vitorm.MsTest.CommonTest
                 Assert.AreEqual(2, rowCount);
             }
 
-            Thread.Sleep(1000);
+            DataSource.WaitForUpdate();
 
             // assert
             {

+ 2 - 0
test/Vitorm.Sqlite.MsTest/DataSource.cs

@@ -29,6 +29,8 @@ namespace Vitorm.MsTest
 
     public class DataSource
     {
+        public static void WaitForUpdate() { }
+
         public static SqlDbContext CreateDbContextForWriting() => CreateDbContext();
         public static SqlDbContext CreateDbContext()
         {