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)); }
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)); }
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); }
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)); }
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)); }
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)); }
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); }
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)); }
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)); }