public void AmbientServicesBasic() { ITest test = _Test.Global; Assert.IsNotNull(test); Assert.AreEqual(_Test.GlobalReference.Service, _Test.Global); IAmbientLogger logger = _Logger.Global; Assert.IsNotNull(logger); AmbientLogger <TestAmbientService> serviceBrokerLogger = new AmbientLogger <TestAmbientService>(logger); IAmbientProgressService progressTracker = _ProgressService.Global; Assert.IsNotNull(progressTracker); IAmbientSettingsSet settings = _SettingsSet.Global; Assert.IsNotNull(settings); IJunk junk = _Junk.Global; Assert.IsNull(junk); ITest compareTest = test; Assert.IsNotNull(test); int changed = 0; ITest updatedTest = test; Assert.IsNotNull(updatedTest); EventHandler <EventArgs> globalChanged = (o, e) => { updatedTest = _Test.Global; ++changed; }; _Test.GlobalChanged += globalChanged; _Test.Global = null; Assert.AreEqual(1, changed); Assert.IsNull(updatedTest); compareTest = null; ITest disabledTest = _Test.Global; Assert.IsNull(disabledTest); _Test.Global = test; Assert.AreEqual(2, changed); compareTest = test; ITest reenabledTest = _Test.Global; Assert.IsNotNull(reenabledTest); _Test.GlobalChanged -= globalChanged; }
public async Task AmbientFileLoggerBasic() { string tempPath = Path.GetTempPath() + Guid.NewGuid().ToString("N"); try { using (AmbientClock.Pause()) using (AmbientFileLogger loggerImp = new AmbientFileLogger(tempPath, ".log", 8 * 60)) { // delete any preexisting files await AmbientFileLogger.TryDeleteAllFiles(loggerImp.FilePrefix); using (IDisposable over = Logger.ScopedLocalOverride(loggerImp)) { IAmbientLogger logger = Logger.Local; // log the first test message (this will cause the file to be created, but only *after* this message gets flushed logger?.Log("test1"); Assert.AreEqual(0, TempFileCount(tempPath)); if (logger != null) { await logger.Flush(); } Assert.AreEqual(1, TempFileCount(tempPath)); // log the second test message (since the clock is stopped, this will *never* create another file) logger?.Log("test2"); if (logger != null) { await logger.Flush(); } Assert.AreEqual(1, TempFileCount(tempPath)); } } } finally { await AmbientFileLogger.TryDeleteAllFiles(tempPath); } }