public void EventForAllColumnsTest()
        {
            OracleTableDependency <AAAItem2> tableDependency = null;
            string naming = null;

            try
            {
                tableDependency            = new OracleTableDependency <AAAItem2>(ConnectionString, TableName);
                tableDependency.OnChanged += TableDependency_Changed;
                tableDependency.Start();
                naming = tableDependency.DataBaseObjectsNamingConvention;

                Thread.Sleep(1000);

                var t = new Task(ModifyTableContent);
                t.Start();
                t.Wait(2000);
            }
            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(OracleHelper.AreAllDbObjectsDisposed(ConnectionString, naming));
        }
Exemplo n.º 2
0
        public void Test2()
        {
            OracleTableDependency <NullMessageContentTestOracleModel> tableDependency = null;
            string naming = null;

            try
            {
                var mapper = new ModelToTableMapper <NullMessageContentTestOracleModel>();
                mapper.AddMapping(c => c.Description, "Long Description");

                tableDependency            = new OracleTableDependency <NullMessageContentTestOracleModel>(ConnectionString, TableName, mapper);
                tableDependency.OnChanged += TableDependency_Changed;
                tableDependency.Start();
                naming = tableDependency.DataBaseObjectsNamingConvention;
                Thread.Sleep(1000);

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

            Assert.IsTrue(_id > 0);
            Assert.IsTrue(string.IsNullOrWhiteSpace(_name));
            Assert.IsTrue(string.IsNullOrWhiteSpace(_description));
            Assert.IsTrue(OracleHelper.AreAllDbObjectsDisposed(ConnectionString, naming));
        }
        public void TaskCancellationTest()
        {
            string naming = null;
            OracleTableDependency <TaskCancellationTestOracleModel> tableDependency = null;

            try
            {
                var mapper = new ModelToTableMapper <TaskCancellationTestOracleModel>();
                mapper.AddMapping(c => c.Name, "Long Description");

                tableDependency            = new OracleTableDependency <TaskCancellationTestOracleModel>(ConnectionString, TableName, mapper);
                tableDependency.OnChanged += (sender, e) => { };
                tableDependency.Start();
                naming = tableDependency.DataBaseObjectsNamingConvention;

                Thread.Sleep(500);
            }
            finally
            {
                tableDependency?.Dispose();
            }

            var areAllDbObjectDisposed = OracleHelper.AreAllDbObjectsDisposed(ConnectionString, naming);

            Assert.IsTrue(areAllDbObjectDisposed == true);
        }
        public void Test()
        {
            OracleTableDependency <DataAnnotationTestOracleModel> tableDependency = null;
            string naming = null;

            try
            {
                tableDependency            = new OracleTableDependency <DataAnnotationTestOracleModel>(ConnectionString);
                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.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));
        }
Exemplo n.º 5
0
        public void Test()
        {
            var namingToUse = "AAAMOSGTRO".ToUpper();

            var mapper = new ModelToTableMapper <TestOracleModel>();

            mapper.AddMapping(c => c.Description, "Long Description").AddMapping(c => c.Name, "NAME");

            RunFirstTime(namingToUse);
            Thread.Sleep(3 * 60 * 1010);

            using (var tableDependency = new OracleTableDependency <TestOracleModel>(ConnectionString, TableName, mapper, true, namingToUse))
            {
                tableDependency.OnChanged += TableDependency_Changed;
                tableDependency.Start(60, 120);
                Assert.AreEqual(tableDependency.DataBaseObjectsNamingConvention, namingToUse);

                Thread.Sleep(1 * 25 * 1000);

                var t = new Task(ModifyTableContent);
                t.Start();
                t.Wait(2 * 60 * 1000);
            }

            Assert.IsTrue(OracleHelper.AreAllDbObjectsDisposed(ConnectionString, namingToUse));
            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);
        }
Exemplo n.º 6
0
        public void RaiseException1()
        {
            OracleTableDependency <TriggerTypeTestOracleModel> tableDependency = null;
            string naming = null;

            try
            {
                tableDependency = new OracleTableDependency <TriggerTypeTestOracleModel>(
                    ConnectionString,
                    TableName,
                    null,
                    new List <string>()
                {
                    "NAME"
                },
                    DmlTriggerType.Insert,
                    true);

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

            Assert.IsTrue(OracleHelper.AreAllDbObjectsDisposed(ConnectionString, naming));
        }
        public void Test()
        {
            OracleTableDependency <Item5> tableDependency = null;
            string naming = null;

            var mapper = new ModelToTableMapper <Item5>();

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

            var updateOf = new List <string>();

            updateOf.Add("More Info");

            try
            {
                tableDependency            = new OracleTableDependency <Item5>(ConnectionString, TableName, mapper, 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, 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(OracleHelper.AreAllDbObjectsDisposed(ConnectionString, naming));
        }
        public void DatabaseObjectCleanUpTest()
        {
            var domaininfo = new AppDomainSetup {
                ApplicationBase = Environment.CurrentDirectory
            };
            var adevidence        = AppDomain.CurrentDomain.Evidence;
            var domain            = AppDomain.CreateDomain("AppDomainOracleCleannUpOracle", adevidence, domaininfo);
            var otherDomainObject = (AppDomainOracleCleannUpOracle)domain.CreateInstanceAndUnwrap(typeof(AppDomainOracleCleannUpOracle).Assembly.FullName, typeof(AppDomainOracleCleannUpOracle).FullName);
            var dbObjectsNaming   = otherDomainObject.RunTableDependency(ConnectionString, TableName);

            Thread.Sleep(4 * 60 * 1000);
            var status = otherDomainObject.GetTableDependencyStatus();

            Thread.Sleep(3 * 60 * 1000);
            AppDomain.Unload(domain);

            Assert.IsTrue(status != TableDependencyStatus.StoppedDueToError && status != TableDependencyStatus.StoppedDueToCancellation);
            Assert.IsTrue(OracleHelper.AreAllDbObjectsDisposed(ConnectionString, dbObjectsNaming));
        }
Exemplo n.º 9
0
        public void Test()
        {
            OracleTableDependency <EventForAllColumnsTestOracleModel> tableDependency = null;
            string naming = null;

            try
            {
                var mapper = new ModelToTableMapper <EventForAllColumnsTestOracleModel>();
                mapper.AddMapping(c => c.Description, "Long Description");

                tableDependency            = new OracleTableDependency <EventForAllColumnsTestOracleModel>(ConnectionString, TableName, mapper);
                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.Id, CheckValues[ChangeType.Insert.ToString()].Item1.Id);
            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.Id, CheckValues[ChangeType.Update.ToString()].Item1.Id);
            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.Id, CheckValues[ChangeType.Delete.ToString()].Item1.Id);
            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));
        }
Exemplo n.º 10
0
        public void All()
        {
            OracleTableDependency <TriggerTypeTestOracleModel> tableDependency = null;
            string naming = null;

            try
            {
                tableDependency = new OracleTableDependency <TriggerTypeTestOracleModel>(
                    ConnectionString,
                    TableName,
                    null,
                    (IList <string>)null,
                    DmlTriggerType.All,
                    true);
                tableDependency.OnChanged += TableDependency_Changed;
                tableDependency.Start();
                naming = tableDependency.DataBaseObjectsNamingConvention;

                Thread.Sleep(1000);

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

            Assert.AreEqual(_counter, 3);

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

            Assert.AreEqual(CheckValues[ChangeType.Update.ToString()].Item2.Name, "Pizza Funghi");
            Assert.AreEqual(CheckValues[ChangeType.Update.ToString()].Item2.Surname, "Pizza Mergherita");

            Assert.AreEqual(CheckValues[ChangeType.Delete.ToString()].Item2.Name, "Pizza Funghi");
            Assert.AreEqual(CheckValues[ChangeType.Delete.ToString()].Item2.Surname, "Pizza Mergherita");

            Assert.IsTrue(OracleHelper.AreAllDbObjectsDisposed(ConnectionString, naming));
        }
Exemplo n.º 11
0
        public void LoadAndCountTest()
        {
            var cts   = new CancellationTokenSource(TimeSpan.FromMinutes(10));
            var token = cts.Token;

            var counterUpTo = 1000;
            var mapper      = new ModelToTableMapper <LoadAndCountTestOracleModel>();

            mapper.AddMapping(c => c.Name, "Long Description");

            var listenerTask = Task.Factory.StartNew(() => new ListenerOrc(ConnectionString, TableName, mapper).Run(counterUpTo, token), token);

            Thread.Sleep(3000);

            using (var sqlConnection = new OracleConnection(ConnectionString))
            {
                sqlConnection.Open();
                using (var sqlCommand = sqlConnection.CreateCommand())
                {
                    while (!listenerTask.IsCompleted)
                    {
                        if (_counter <= counterUpTo)
                        {
                            _counter++;
                            sqlCommand.CommandText = $"INSERT INTO {TableName} (ID, NAME, \"Long Description\") VALUES ({_counter}, '{DateTime.Now.Ticks}', 'Ticks {DateTime.Now.Ticks}')";
                            sqlCommand.ExecuteNonQuery();
                        }

                        Thread.Sleep(250);
                    }
                }
            }

            Assert.IsTrue(listenerTask.Result != null);
            Assert.IsTrue(listenerTask.Result.Counter == counterUpTo);
            Assert.IsTrue(!listenerTask.Result.SequentialNotificationFailed);
            Assert.IsTrue(OracleHelper.AreAllDbObjectsDisposed(ConnectionString, listenerTask.Result.ObjectNaming));
        }
        public void Test()
        {
            var namingToUse = "AAA_SAME_OBJ".ToUpper();

            var mapper = new ModelToTableMapper <DisposeAndRestartWithSameObjectsTestOracleModel>();

            mapper.AddMapping(c => c.Description, "Long Description");

            using (var tableDependency = new OracleTableDependency <DisposeAndRestartWithSameObjectsTestOracleModel>(ConnectionString, TableName, mapper, false))
            {
                tableDependency.OnChanged += TableDependency_Changed;
                tableDependency.Start();
                namingToUse = tableDependency.DataBaseObjectsNamingConvention;
                Thread.Sleep(1 * 25 * 1000);
            }

            using (var tableDependency = new OracleTableDependency <DisposeAndRestartWithSameObjectsTestOracleModel>(ConnectionString, TableName, mapper, true, namingToUse))
            {
                tableDependency.OnChanged += TableDependency_Changed;
                tableDependency.Start();
                Assert.AreEqual(tableDependency.DataBaseObjectsNamingConvention, namingToUse);

                Thread.Sleep(1 * 25 * 1000);

                var t = new Task(ModifyTableContent);
                t.Start();
                t.Wait(2 * 60 * 1000);
            }

            Assert.IsTrue(OracleHelper.AreAllDbObjectsDisposed(ConnectionString, namingToUse));
            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);
        }
Exemplo n.º 13
0
        public void Test()
        {
            Assert.IsFalse(OracleHelper.AreAllDbObjectsDisposed(ConnectionString, NamingToUse));

            var domaininfo = new AppDomainSetup {
                ApplicationBase = Environment.CurrentDirectory
            };
            var adevidence        = AppDomain.CurrentDomain.Evidence;
            var domain            = AppDomain.CreateDomain("AppDomainGMessageAfterRestart", adevidence, domaininfo);
            var otherDomainObject = (AppDomainGMessageAfterRestart)domain.CreateInstanceAndUnwrap(typeof(AppDomainGMessageAfterRestart).Assembly.FullName, typeof(AppDomainGMessageAfterRestart).FullName);
            var nameUsed          = otherDomainObject.RunTableDependency(ConnectionString, TableName, NamingToUse);

            Thread.Sleep(1 * 60 * 1000);
            var checkValues = otherDomainObject.GetResult();

            otherDomainObject.DisposeTableDependency();
            Thread.Sleep(1 * 60 * 1000);
            AppDomain.Unload(domain);

            var results = checkValues.Split(',');

            Assert.AreEqual("Valentina", results[0]);
            Assert.IsTrue(OracleHelper.AreAllDbObjectsDisposed(ConnectionString, nameUsed));
        }
Exemplo n.º 14
0
        public void Test()
        {
            OracleTableDependency <AAA_Item3> tableDependency = null;
            string naming = null;

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

                tableDependency            = new OracleTableDependency <AAA_Item3>(ConnectionString, 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.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(OracleHelper.AreAllDbObjectsDisposed(ConnectionString, naming));
        }