public void SetUp () { nReconfigured = 0; appName = Guid.NewGuid().ToString(); application = new Application(appName); Directory.CreateDirectory(application.FullPath); manager = new ApplicationWatcherManager(application, 10); manager.Reconfigured += new EventHandler(manager_Reconfigured); reconfigured = new Semaphore(0); }
public void SetUp() { nReconfigured = 0; appName = Guid.NewGuid().ToString(); application = new Application(appName); Directory.CreateDirectory(application.FullPath); manager = new ApplicationWatcherManager(application, 10); manager.Reconfigured += new EventHandler(manager_Reconfigured); reconfigured = new Semaphore(0); }
public void StopsAndDisposeTheOldWatcherAndStartTheNewWatcherWhenItChanges () { TestUtils.ConfigureLog4Net(); IApplication application = new Application(appName); Factory factory = new Factory(); ApplicationWatcherManager m = new ApplicationWatcherManager(factory, application, 100); m.StartWatching(new ForwardingDeployEventDispatcher()); manager.Reconfigured -= new EventHandler(manager_Reconfigured); m.Reconfigured += new EventHandler(manager_Reconfigured); File.Copy("Data/Xml/watcher-0.xml", application.WatcherXmlFullPath, true); reconfigured.Acquire(); log.Debug("first empty definition copied"); Assert.IsTrue(manager.Watcher is NullApplicationWatcher); Watcher watcher1 = factory.lastWatcher; Assert.IsTrue(watcher1.started); bool ok = true; do { try { File.Copy("Data/Xml/watcher-1.xml", application.WatcherXmlFullPath, true); } catch (Exception e) { ok = false; Thread.Sleep(100); log.Error("error copying file", e); } } while (ok == false); reconfigured.Acquire(); log.Debug("good definition copied"); while (!(manager.Watcher is FileSystemApplicationWatcher)) Thread.Sleep(10); Watcher watcher2 = factory.lastWatcher; Assert.IsTrue(watcher2.started); Assert.IsTrue(watcher1.stopped); Assert.IsTrue(watcher1.disposed); Assert.IsTrue(manager.Watcher is FileSystemApplicationWatcher); do { try { File.Delete(application.WatcherXmlFullPath); } catch (Exception e) { log.Error("error cancelling file", e); } } while (File.Exists(application.WatcherXmlFullPath)); reconfigured.Acquire(); log.Debug("good definition deleted"); while (!(manager.Watcher is NullApplicationWatcher)) Thread.Sleep(10); Watcher watcher3 = factory.lastWatcher; Assert.IsTrue(watcher3.started); Assert.IsTrue(watcher2.stopped); Assert.IsTrue(watcher2.disposed); Assert.IsTrue(manager.Watcher is NullApplicationWatcher); Assert.AreEqual(3, nReconfigured); Assert.AreEqual(3 + 1, factory.called); // +1 in ApplicationWatcherManager ctor }
public void StopsAndDisposeTheOldWatcherAndStartTheNewWatcherWhenItChanges() { TestUtils.ConfigureLog4Net(); IApplication application = new Application(appName); Factory factory = new Factory(); ApplicationWatcherManager m = new ApplicationWatcherManager(factory, application, 100); m.StartWatching(new ForwardingDeployEventDispatcher()); manager.Reconfigured -= new EventHandler(manager_Reconfigured); m.Reconfigured += new EventHandler(manager_Reconfigured); File.Copy("Data/Xml/watcher-0.xml", application.WatcherXmlFullPath, true); reconfigured.Acquire(); log.Debug("first empty definition copied"); Assert.IsTrue(manager.Watcher is NullApplicationWatcher); Watcher watcher1 = factory.lastWatcher; Assert.IsTrue(watcher1.started); bool ok = true; do { try { File.Copy("Data/Xml/watcher-1.xml", application.WatcherXmlFullPath, true); } catch (Exception e) { ok = false; Thread.Sleep(100); log.Error("error copying file", e); } } while (ok == false); reconfigured.Acquire(); log.Debug("good definition copied"); while (!(manager.Watcher is FileSystemApplicationWatcher)) { Thread.Sleep(10); } Watcher watcher2 = factory.lastWatcher; Assert.IsTrue(watcher2.started); Assert.IsTrue(watcher1.stopped); Assert.IsTrue(watcher1.disposed); Assert.IsTrue(manager.Watcher is FileSystemApplicationWatcher); do { try { File.Delete(application.WatcherXmlFullPath); } catch (Exception e) { log.Error("error cancelling file", e); } } while (File.Exists(application.WatcherXmlFullPath)); reconfigured.Acquire(); log.Debug("good definition deleted"); while (!(manager.Watcher is NullApplicationWatcher)) { Thread.Sleep(10); } Watcher watcher3 = factory.lastWatcher; Assert.IsTrue(watcher3.started); Assert.IsTrue(watcher2.stopped); Assert.IsTrue(watcher2.disposed); Assert.IsTrue(manager.Watcher is NullApplicationWatcher); Assert.AreEqual(3, nReconfigured); Assert.AreEqual(3 + 1, factory.called); // +1 in ApplicationWatcherManager ctor }