Example #1
0
        public void RaiseException1()
        {
            SqlTableDependency <TriggerTypeTestSqlServerModel> tableDependency = null;
            string naming = null;

            var updateOf = new UpdateOfModel <TriggerTypeTestSqlServerModel>();

            updateOf.Add(i => i.Surname);

            try
            {
                tableDependency = new SqlTableDependency <TriggerTypeTestSqlServerModel>(
                    ConnectionStringForTestUser,
                    tableName: TableName,
                    updateOf: updateOf,
                    notifyOn: DmlTriggerType.Insert);

                naming = tableDependency.DataBaseObjectsNamingConvention;
            }
            finally
            {
                tableDependency?.Dispose();
            }

            Assert.IsTrue(base.AreAllDbObjectDisposed(naming));
            Assert.IsTrue(base.CountConversationEndpoints(naming) == 0);
        }
        public void RaiseException3()
        {
            var updateOf = new UpdateOfModel <TriggerTypeTestSqlServerModel>();

            updateOf.Add(t => t.Surname);

            SqlTableDependency <TriggerTypeTestSqlServerModel> tableDependency = null;
            string naming = null;

            try
            {
                tableDependency = new SqlTableDependency <TriggerTypeTestSqlServerModel>(
                    ConnectionString,
                    tableName: TableName,
                    updateOf: updateOf,
                    notifyOn: DmlTriggerType.Delete | DmlTriggerType.Insert);

                naming = tableDependency.DataBaseObjectsNamingConvention;
            }
            finally
            {
                tableDependency?.Dispose();
            }

            Assert.IsTrue(SqlServerHelper.AreAllDbObjectDisposed(naming));
        }
Example #3
0
        public void Test6()
        {
            SqlTableDependency <Issue66Model2> tableDependency = null;
            string naming;

            var mapper = new ModelToTableMapper <Issue66Model2>();

            mapper.AddMapping(c => c.Surname, "Second Name");

            Expression <Func <Issue66Model2, bool> > expression = p => p.Id == 1 && p.Surname == "DEL BIANCO";
            ITableDependencyFilter whereCondition = new SqlTableDependencyFilter <Issue66Model2>(expression, mapper);

            var updateOf = new UpdateOfModel <Issue66Model2>();

            updateOf.Add(i => i.Surname);
            updateOf.Add(i => i.City);

            try
            {
                tableDependency = new SqlTableDependency <Issue66Model2>(
                    ConnectionStringForTestUser,
                    includeOldValues: true,
                    tableName: TableName + "2",
                    mapper: mapper,
                    updateOf: updateOf,
                    notifyOn: DmlTriggerType.Update,
                    filter: whereCondition);

                tableDependency.OnChanged += this.TableDependency_Changed2;
                tableDependency.Start();
                naming = tableDependency.DataBaseObjectsNamingConvention;

                var t = new Task(ModifyTableContent5);
                t.Start();
                Thread.Sleep(1000 * 15 * 1);
            }
            finally
            {
                tableDependency?.Dispose();
            }

            Assert.AreEqual(CheckValues2[ChangeType.Insert.ToString()].Count, 0);

            Assert.AreEqual(CheckValues2[ChangeType.Update.ToString()].Count, 1);

            Assert.AreEqual(CheckValues2[ChangeType.Update.ToString()][0].Id, 1);
            Assert.AreEqual(CheckValues2[ChangeType.Update.ToString()][0].Surname, "DEL BIANCO");
            Assert.AreEqual(CheckValues2[ChangeType.Update.ToString()][0].Name, "CHRISTIAN");
            Assert.AreEqual(CheckValues2[ChangeType.Update.ToString()][0].City, "BAAR");
            Assert.AreEqual(CheckValuesOld2[ChangeType.Update.ToString()][0].Id, 1);
            Assert.AreEqual(CheckValuesOld2[ChangeType.Update.ToString()][0].Surname, "DELBIANCO");
            Assert.AreEqual(CheckValuesOld2[ChangeType.Update.ToString()][0].Name, "CHRISTIAN");
            Assert.AreEqual(CheckValuesOld2[ChangeType.Update.ToString()][0].City, "LAVENA PONTE TRESA");

            Assert.AreEqual(CheckValues2[ChangeType.Delete.ToString()].Count, 0);

            Assert.IsTrue(base.AreAllDbObjectDisposed(naming));
            Assert.IsTrue(base.CountConversationEndpoints(naming) == 0);
        }
        private static void Main()
        {
            var            connectionString = string.Empty;
            ConsoleKeyInfo consoleKeyInfo;

            do
            {
                Console.Clear();

                Console.WriteLine("TableDependency, SqlTableDependency");
                Console.WriteLine("Copyright (c) 2015-2018 Christian Del Bianco.");
                Console.WriteLine("All rights reserved." + Environment.NewLine);
                Console.WriteLine("**********************************************************************************************");
                Console.WriteLine("Choose connection string:");
                Console.WriteLine(" - F4: SQL Server Developer 2008 - (DESKTOP-DFTT9LE\\SQLSERVER2008) user sa");
                Console.WriteLine(" - F5: SQL Server Developer 2008 - (DESKTOP-DFTT9LE\\SQLSERVER2008) user Test_User");
                Console.WriteLine(" - ESC to exit");
                Console.WriteLine("**********************************************************************************************");

                consoleKeyInfo = Console.ReadKey();
                if (consoleKeyInfo.Key == ConsoleKey.Escape)
                {
                    Environment.Exit(0);
                }
            } while (consoleKeyInfo.Key != ConsoleKey.F4 && consoleKeyInfo.Key != ConsoleKey.F5);

            if (consoleKeyInfo.Key == ConsoleKey.F4)
            {
                connectionString = ConfigurationManager.ConnectionStrings["SqlServer2008 sa"].ConnectionString;
            }
            if (consoleKeyInfo.Key == ConsoleKey.F5)
            {
                connectionString = ConfigurationManager.ConnectionStrings["SqlServer2008 Test_User"].ConnectionString;
            }

            var mapper = new ModelToTableMapper <Customer>();

            mapper.AddMapping(c => c.Id, "CustomerID");

            var updateOf = new UpdateOfModel <Customer>();

            updateOf.Add(i => i.CompanyName);
            updateOf.Add(i => i.ContactName);

            using (var dep = new SqlTableDependency <Customer>(connectionString, "Customers", mapper: mapper, updateOf: updateOf, includeOldValues: true))
            {
                dep.OnChanged += Changed;
                dep.OnError   += OnError;
                dep.Start();

                Console.WriteLine();
                Console.WriteLine("Waiting for receiving notifications (db objects naming: " + dep.DataBaseObjectsNamingConvention + ")...");
                Console.WriteLine("Press a key to stop.");
                Console.ReadKey();
            }
        }
Example #5
0
        public void Test2()
        {
            SqlTableDependency <Issue66Model2> tableDependency = null;
            string naming;

            var mapper = new ModelToTableMapper <Issue66Model2>();

            mapper.AddMapping(c => c.Surname, "Second Name");

            var updateOf = new UpdateOfModel <Issue66Model2>();

            updateOf.Add(i => i.Surname);
            updateOf.Add(i => i.City);

            try
            {
                tableDependency            = new SqlTableDependency <Issue66Model2>(ConnectionStringForTestUser, includeOldValues: true, tableName: TableName + "2", mapper: mapper, updateOf: updateOf);
                tableDependency.OnChanged += this.TableDependency_Changed2;
                tableDependency.Start();
                naming = tableDependency.DataBaseObjectsNamingConvention;

                var t = new Task(ModifyTableContent2);
                t.Start();
                Thread.Sleep(1000 * 15 * 1);
            }
            finally
            {
                tableDependency?.Dispose();
            }

            Assert.AreEqual(CheckValues2[ChangeType.Insert.ToString()][0].Id, 1);
            Assert.AreEqual(CheckValues2[ChangeType.Insert.ToString()][0].Name, "CHRISTIAN");
            Assert.AreEqual(CheckValues2[ChangeType.Insert.ToString()][0].City, "LAVENA PONTE TRESA");
            Assert.AreEqual(CheckValues2[ChangeType.Insert.ToString()][1].Id, 2);
            Assert.AreEqual(CheckValues2[ChangeType.Insert.ToString()][1].Name, "VALENTINA");
            Assert.AreEqual(CheckValues2[ChangeType.Insert.ToString()][1].City, "LAVENA PONTE TRESA");

            Assert.AreEqual(CheckValues2[ChangeType.Update.ToString()][0].City, "BAAR");
            Assert.AreEqual(CheckValues2[ChangeType.Update.ToString()][1].City, "BAAR");
            Assert.AreEqual(CheckValuesOld2[ChangeType.Update.ToString()][0].City, "LAVENA PONTE TRESA");
            Assert.AreEqual(CheckValuesOld2[ChangeType.Update.ToString()][1].City, "LAVENA PONTE TRESA");

            Assert.AreEqual(CheckValues2[ChangeType.Delete.ToString()][0].Surname, "del bianco");
            Assert.AreEqual(CheckValues2[ChangeType.Delete.ToString()][0].Name, "christian");
            Assert.AreEqual(CheckValues2[ChangeType.Delete.ToString()][0].City, "BAAR");
            Assert.AreEqual(CheckValues2[ChangeType.Delete.ToString()][1].Surname, "del bianco");
            Assert.AreEqual(CheckValues2[ChangeType.Delete.ToString()][1].Name, "valentina");
            Assert.AreEqual(CheckValues2[ChangeType.Delete.ToString()][1].City, "BAAR");

            Assert.IsTrue(base.AreAllDbObjectDisposed(naming));
            Assert.IsTrue(base.CountConversationEndpoints(naming) == 0);
        }
        public void TestWithOldValues()
        {
            SqlTableDependency <EventForSpecificColumnsTestSqlServerModel> tableDependency = null;
            string naming;

            try
            {
                var mapper = new ModelToTableMapper <EventForSpecificColumnsTestSqlServerModel>();
                mapper.AddMapping(c => c.Name, "FIRST name").AddMapping(c => c.Surname, "Second Name");

                var updateOf = new UpdateOfModel <EventForSpecificColumnsTestSqlServerModel>();
                updateOf.Add(i => i.Surname);

                tableDependency = new SqlTableDependency <EventForSpecificColumnsTestSqlServerModel>(
                    ConnectionStringForTestUser,
                    includeOldValues: true,
                    tableName: TableName,
                    mapper: mapper,
                    updateOf: updateOf);

                tableDependency.OnChanged += TableDependency_Changed;
                tableDependency.Start();
                naming = tableDependency.DataBaseObjectsNamingConvention;

                var t = new Task(ModifyTableContent);
                t.Start();
                Thread.Sleep(1000 * 15 * 1);
            }
            finally
            {
                tableDependency?.Dispose();
            }

            Assert.AreEqual(_counter, 2);

            Assert.AreEqual(_checkValues[ChangeType.Insert.ToString()].Item2.Name, _checkValues[ChangeType.Insert.ToString()].Item1.Name);
            Assert.AreEqual(_checkValues[ChangeType.Insert.ToString()].Item2.Surname, _checkValues[ChangeType.Insert.ToString()].Item1.Surname);
            Assert.IsNull(_checkValuesOld[ChangeType.Insert.ToString()]);

            Assert.AreEqual(_checkValues[ChangeType.Delete.ToString()].Item2.Name, _checkValues[ChangeType.Delete.ToString()].Item1.Name);
            Assert.AreEqual(_checkValues[ChangeType.Delete.ToString()].Item2.Surname, _checkValues[ChangeType.Delete.ToString()].Item1.Surname);
            Assert.IsNull(_checkValuesOld[ChangeType.Delete.ToString()]);

            Assert.IsTrue(base.AreAllDbObjectDisposed(naming));
            Assert.IsTrue(base.CountConversationEndpoints(naming) == 0);
        }
        public SQLTableDependencyTriggers()
        {
            string connectionString           = "data source=(LocalDB)\\MSSQLLocalDB;attachdbfilename=|DataDirectory|\\GDSS_DB.mdf;integrated security=True;connect timeout=30;MultipleActiveResultSets=True;App=EntityFramework";
            UpdateOfModel <Poll> updateOFPoll = new UpdateOfModel <Poll>();

            updateOFPoll.Add(x => x.Status);
            pollDependency            = new SqlTableDependency <Poll>(connectionString, updateOf: updateOFPoll);
            pollDependency.OnChanged += Poll_OnChanged;
            pollDependency.Start();

            UpdateOfModel <Forum> updateOfForum = new UpdateOfModel <Forum>();

            updateOfForum.Add(x => x.Status);
            forumDependency            = new SqlTableDependency <Forum>(connectionString, updateOf: updateOfForum);
            forumDependency.OnChanged += Forum_OnChanged;
            forumDependency.Start();
        }
Example #8
0
        public void Test()
        {
            SqlTableDependency <ModelWithAnnotationUsedWithCunstructorParameterTestSqlServerModel> tableDependency = null;
            string naming = null;

            var mapper = new ModelToTableMapper <ModelWithAnnotationUsedWithCunstructorParameterTestSqlServerModel>();

            mapper.AddMapping(c => c.Infos, "More Info");

            var updateOf = new UpdateOfModel <ModelWithAnnotationUsedWithCunstructorParameterTestSqlServerModel>();

            updateOf.Add(i => i.Infos);

            try
            {
                tableDependency            = new SqlTableDependency <ModelWithAnnotationUsedWithCunstructorParameterTestSqlServerModel>(ConnectionStringForTestUser, tableName: TableName, mapper: mapper, updateOf: updateOf);
                tableDependency.OnChanged += TableDependency_Changed;
                tableDependency.Start();
                naming = tableDependency.DataBaseObjectsNamingConvention;

                Thread.Sleep(5000);

                var t = new Task(ModifyTableContent);
                t.Start();
                Thread.Sleep(1000 * 10 * 1);
            }
            finally
            {
                tableDependency?.Dispose();
            }

            Assert.AreEqual(_counter, 3);

            Assert.AreEqual(CheckValues[ChangeType.Insert.ToString()].Name, "Pizza MERGHERITA");
            Assert.AreEqual(CheckValues[ChangeType.Insert.ToString()].Infos, "Pizza MERGHERITA");

            Assert.AreEqual(CheckValues[ChangeType.Update.ToString()].Name, "Pizza MERGHERITA");
            Assert.AreEqual(CheckValues[ChangeType.Update.ToString()].Infos, "FUNGHI PORCINI");

            Assert.AreEqual(CheckValues[ChangeType.Delete.ToString()].Name, "Pizza");
            Assert.AreEqual(CheckValues[ChangeType.Delete.ToString()].Infos, "FUNGHI PORCINI");

            Assert.IsTrue(base.AreAllDbObjectDisposed(naming));
            Assert.IsTrue(base.CountConversationEndpoints(naming) == 0);
        }
        public void TestWithOldValues()
        {
            SqlTableDependency <UpdateOfUsingLambaTestSqlServerModel> tableDependency = null;
            string naming = null;

            var updateOfModel = new UpdateOfModel <UpdateOfUsingLambaTestSqlServerModel>();

            updateOfModel.Add(i => i.Name);

            try
            {
                tableDependency            = new SqlTableDependency <UpdateOfUsingLambaTestSqlServerModel>(ConnectionStringForTestUser, includeOldValues: true, updateOf: updateOfModel);
                tableDependency.OnChanged += TableDependency_Changed;
                tableDependency.Start();
                naming = tableDependency.DataBaseObjectsNamingConvention;

                var t = new Task(ModifyTableContent);
                t.Start();
                Thread.Sleep(1000 * 15 * 1);
            }
            finally
            {
                tableDependency?.Dispose();
            }

            Assert.AreEqual(_counter, 3);

            Assert.AreEqual(_checkValues[ChangeType.Insert.ToString()].Item2.Name, _checkValues[ChangeType.Insert.ToString()].Item1.Name);
            Assert.AreEqual(_checkValues[ChangeType.Insert.ToString()].Item2.Surname, _checkValues[ChangeType.Insert.ToString()].Item1.Surname);
            Assert.IsNull(_checkValuesOld[ChangeType.Insert.ToString()]);

            Assert.AreEqual(_checkValues[ChangeType.Update.ToString()].Item2.Name, _checkValues[ChangeType.Update.ToString()].Item1.Name);
            Assert.AreEqual(_checkValues[ChangeType.Update.ToString()].Item2.Surname, _checkValues[ChangeType.Update.ToString()].Item1.Surname);
            Assert.AreEqual(_checkValuesOld[ChangeType.Update.ToString()].Item2.Name, _checkValues[ChangeType.Insert.ToString()].Item2.Name);
            Assert.AreEqual(_checkValuesOld[ChangeType.Update.ToString()].Item2.Surname, _checkValues[ChangeType.Insert.ToString()].Item2.Surname);

            Assert.AreEqual(_checkValues[ChangeType.Delete.ToString()].Item2.Name, _checkValues[ChangeType.Delete.ToString()].Item1.Name);
            Assert.AreEqual(_checkValues[ChangeType.Delete.ToString()].Item2.Surname, _checkValues[ChangeType.Delete.ToString()].Item1.Surname);
            Assert.IsNull(_checkValuesOld[ChangeType.Delete.ToString()]);

            Assert.IsTrue(base.AreAllDbObjectDisposed(naming));
            Assert.IsTrue(base.CountConversationEndpoints(naming) == 0);
        }
Example #10
0
        public Program()
        {
            System.AppDomain.CurrentDomain.UnhandledException += UnhandledExceptionTrapper;

            //Expression<Func<OutgoingMessage, bool>> filterExpression = p => p.sent == null;
            //_dependency = new SqlTableDependency<Infrastructure.OutgoingMessage>(_connectionString, filter: filterExpression);
            ITableDependencyFilter filterExpression = new CustomSqlTableDependencyFilter(0);

            var updateOfModel = new UpdateOfModel <OutgoingMessage>();

            updateOfModel.Add(i => i.sent);
            _dependency = new SqlTableDependency <OutgoingMessage>(_connectionString, filter: filterExpression);


            _dependency.OnChanged += _dependency_OnChanged;
            _dependency.OnError   += _dependency_OnError;

            _dependency.Start();
        }
        public void EventForSpecificColumnsTest()
        {
            SqlTableDependency <EventForSpecificColumnsTestSqlServerModel> tableDependency = null;
            string naming = null;

            try
            {
                var mapper = new ModelToTableMapper <EventForSpecificColumnsTestSqlServerModel>();
                mapper.AddMapping(c => c.Name, "FIRST name").AddMapping(c => c.Surname, "Second Name");

                var updateOf = new UpdateOfModel <EventForSpecificColumnsTestSqlServerModel>();
                updateOf.Add(i => i.Surname);

                tableDependency = new SqlTableDependency <EventForSpecificColumnsTestSqlServerModel>(
                    _connectionString,
                    tableName: TableName,
                    mapper: mapper,
                    updateOf: updateOf);

                tableDependency.OnChanged += TableDependency_Changed;
                tableDependency.Start();
                naming = tableDependency.DataBaseObjectsNamingConvention;

                Thread.Sleep(5000);

                var t = new Task(ModifyTableContent);
                t.Start();
                t.Wait(20000);
            }
            finally
            {
                tableDependency?.Dispose();
            }

            Assert.AreEqual(_counter, 2);
            Assert.AreEqual(_checkValues[ChangeType.Insert.ToString()].Item2.Name, _checkValues[ChangeType.Insert.ToString()].Item1.Name);
            Assert.AreEqual(_checkValues[ChangeType.Insert.ToString()].Item2.Surname, _checkValues[ChangeType.Insert.ToString()].Item1.Surname);

            Assert.AreEqual(_checkValues[ChangeType.Delete.ToString()].Item2.Name, _checkValues[ChangeType.Delete.ToString()].Item1.Name);
            Assert.AreEqual(_checkValues[ChangeType.Delete.ToString()].Item2.Surname, _checkValues[ChangeType.Delete.ToString()].Item1.Surname);
            Assert.IsTrue(SqlServerHelper.AreAllDbObjectDisposed(naming));
        }
        public void EventForAllColumnsTest()
        {
            SqlTableDependency <UpdateOfUsingLambaTestSqlServerModel> tableDependency = null;
            string naming = null;

            var updateOfModel = new UpdateOfModel <UpdateOfUsingLambaTestSqlServerModel>();

            updateOfModel.Add(i => i.Name);

            try
            {
                tableDependency            = new SqlTableDependency <UpdateOfUsingLambaTestSqlServerModel>(ConnectionString, updateOfModel);
                tableDependency.OnChanged += TableDependency_Changed;
                tableDependency.Start();
                naming = tableDependency.DataBaseObjectsNamingConvention;

                Thread.Sleep(5000);

                var t = new Task(ModifyTableContent);
                t.Start();
                t.Wait(20000);
            }
            finally
            {
                tableDependency?.Dispose();
            }

            Assert.AreEqual(_counter, 3);

            Assert.AreEqual(CheckValues[ChangeType.Insert.ToString()].Item2.Name, CheckValues[ChangeType.Insert.ToString()].Item1.Name);
            Assert.AreEqual(CheckValues[ChangeType.Insert.ToString()].Item2.Surname, CheckValues[ChangeType.Insert.ToString()].Item1.Surname);

            Assert.AreEqual(CheckValues[ChangeType.Update.ToString()].Item2.Name, CheckValues[ChangeType.Update.ToString()].Item1.Name);
            Assert.AreEqual(CheckValues[ChangeType.Update.ToString()].Item2.Surname, CheckValues[ChangeType.Update.ToString()].Item1.Surname);

            Assert.AreEqual(CheckValues[ChangeType.Delete.ToString()].Item2.Name, CheckValues[ChangeType.Delete.ToString()].Item1.Name);
            Assert.AreEqual(CheckValues[ChangeType.Delete.ToString()].Item2.Surname, CheckValues[ChangeType.Delete.ToString()].Item1.Surname);

            Assert.IsTrue(SqlServerHelper.AreAllDbObjectDisposed(ConnectionString, naming));
        }
Example #13
0
        public void Test()
        {
            OracleTableDependency <AAA_UpdateOracleModel> tableDependency = null;
            string naming = null;

            try
            {
                var updateOfModel = new UpdateOfModel <AAA_UpdateOracleModel>();
                updateOfModel.Add(i => i.Description);


                tableDependency            = new OracleTableDependency <AAA_UpdateOracleModel>(ConnectionString, updateOf: updateOfModel);
                tableDependency.OnChanged += TableDependency_Changed;
                tableDependency.Start();
                naming = tableDependency.DataBaseObjectsNamingConvention;

                Thread.Sleep(5000);

                var t = new Task(ModifyTableContent);
                t.Start();
                t.Wait(30000);
            }
            finally
            {
                tableDependency?.Dispose();
            }

            Assert.AreEqual(_counter, 3);

            Assert.AreEqual(CheckValues[ChangeType.Insert.ToString()].Item2.Name, CheckValues[ChangeType.Insert.ToString()].Item1.Name);
            Assert.AreEqual(CheckValues[ChangeType.Insert.ToString()].Item2.Description, CheckValues[ChangeType.Insert.ToString()].Item1.Description);

            Assert.AreEqual(CheckValues[ChangeType.Update.ToString()].Item2.Name, CheckValues[ChangeType.Update.ToString()].Item1.Name);
            Assert.AreEqual(CheckValues[ChangeType.Update.ToString()].Item2.Description, CheckValues[ChangeType.Update.ToString()].Item1.Description);

            Assert.AreEqual(CheckValues[ChangeType.Delete.ToString()].Item2.Name, CheckValues[ChangeType.Delete.ToString()].Item1.Name);
            Assert.AreEqual(CheckValues[ChangeType.Delete.ToString()].Item2.Description, CheckValues[ChangeType.Delete.ToString()].Item1.Description);
            Assert.IsTrue(OracleHelper.AreAllDbObjectsDisposed(ConnectionString, naming));
        }
        public void Test()
        {
            SqlTableDependency <AAA_Item3> tableDependency = null;
            string naming = null;

            try
            {
                UpdateOfModel <AAA_Item3> updateOF = new UpdateOfModel <AAA_Item3>();
                updateOF.Add(model => model.FamilyName);

                tableDependency            = new SqlTableDependency <AAA_Item3>(ConnectionString, updateOf: updateOF);
                tableDependency.OnChanged += TableDependency_Changed;
                tableDependency.Start();
                naming = tableDependency.DataBaseObjectsNamingConvention;

                Thread.Sleep(5000);

                var t = new Task(ModifyTableContent);
                t.Start();
                t.Wait(30000);
            }
            finally
            {
                tableDependency?.Dispose();
            }

            Assert.AreEqual(_counter, 2);

            Assert.AreEqual(CheckValues[ChangeType.Insert.ToString()].Item2.Name, CheckValues[ChangeType.Insert.ToString()].Item1.Name);
            Assert.AreEqual(CheckValues[ChangeType.Insert.ToString()].Item2.FamilyName, CheckValues[ChangeType.Insert.ToString()].Item1.FamilyName);

            Assert.AreEqual(CheckValues[ChangeType.Delete.ToString()].Item2.Name, CheckValues[ChangeType.Delete.ToString()].Item1.Name);
            Assert.AreEqual(CheckValues[ChangeType.Delete.ToString()].Item2.FamilyName, CheckValues[ChangeType.Delete.ToString()].Item1.FamilyName);

            Assert.IsTrue(SqlServerHelper.AreAllDbObjectDisposed(naming));
            Assert.IsTrue(SqlServerHelper.AreAllEndpointDisposed(naming));
        }
Example #15
0
        public void Test()
        {
            SqlTableDependency <TableNameFromModelClassNameAndUpdateOfTestSqlServerModel> tableDependency = null;
            string naming;

            try
            {
                UpdateOfModel <TableNameFromModelClassNameAndUpdateOfTestSqlServerModel> updateOf = new UpdateOfModel <TableNameFromModelClassNameAndUpdateOfTestSqlServerModel>();
                updateOf.Add(model => model.FamilyName);

                tableDependency            = new SqlTableDependency <TableNameFromModelClassNameAndUpdateOfTestSqlServerModel>(ConnectionStringForTestUser, updateOf: updateOf);
                tableDependency.OnChanged += TableDependency_Changed;
                tableDependency.Start();
                naming = tableDependency.DataBaseObjectsNamingConvention;

                var t = new Task(ModifyTableContent);
                t.Start();
                Thread.Sleep(1000 * 15 * 1);
            }
            finally
            {
                tableDependency?.Dispose();
            }

            Assert.AreEqual(_counter, 2);

            Assert.AreEqual(_checkValues[ChangeType.Insert.ToString()].Item2.Name, _checkValues[ChangeType.Insert.ToString()].Item1.Name);
            Assert.AreEqual(_checkValues[ChangeType.Insert.ToString()].Item2.FamilyName, _checkValues[ChangeType.Insert.ToString()].Item1.FamilyName);
            Assert.IsNull(_checkValuesOld[ChangeType.Insert.ToString()]);

            Assert.AreEqual(_checkValues[ChangeType.Delete.ToString()].Item2.Name, _checkValues[ChangeType.Delete.ToString()].Item1.Name);
            Assert.AreEqual(_checkValues[ChangeType.Delete.ToString()].Item2.FamilyName, _checkValues[ChangeType.Delete.ToString()].Item1.FamilyName);
            Assert.IsNull(_checkValuesOld[ChangeType.Delete.ToString()]);

            Assert.IsTrue(base.AreAllDbObjectDisposed(naming));
            Assert.IsTrue(base.CountConversationEndpoints(naming) == 0);
        }