public void NotifyDebug_UpdatesDebugMarkerFileAndTimestamp() { ScriptHost host = _fixture.Host; string debugSentinelFileName = Path.Combine(host.ScriptConfig.RootLogPath, "Host", ScriptConstants.DebugSentinelFileName); File.Delete(debugSentinelFileName); host.LastDebugNotify = DateTime.MinValue; Assert.False(host.InDebugMode); DateTime lastDebugNotify = host.LastDebugNotify; host.NotifyDebug(); Assert.True(host.InDebugMode); Assert.True(File.Exists(debugSentinelFileName)); string text = File.ReadAllText(debugSentinelFileName); Assert.Equal("This is a system managed marker file used to control runtime debug mode behavior.", text); Assert.True(host.LastDebugNotify > lastDebugNotify); Thread.Sleep(500); DateTime lastModified = File.GetLastWriteTime(debugSentinelFileName); lastDebugNotify = host.LastDebugNotify; host.NotifyDebug(); Assert.True(host.InDebugMode); Assert.True(File.Exists(debugSentinelFileName)); Assert.True(File.GetLastWriteTime(debugSentinelFileName) > lastModified); Assert.True(host.LastDebugNotify > lastDebugNotify); }
public void NotifyDebug_HandlesExceptions() { ScriptHost host = _fixture.Host; string debugSentinelFileName = Path.Combine(host.ScriptConfig.RootLogPath, "Host", ScriptConstants.DebugSentinelFileName); try { host.NotifyDebug(); Assert.True(host.InDebugMode); var attributes = File.GetAttributes(debugSentinelFileName); attributes |= FileAttributes.ReadOnly; File.SetAttributes(debugSentinelFileName, attributes); Assert.True(host.InDebugMode); host.NotifyDebug(); } finally { File.SetAttributes(debugSentinelFileName, FileAttributes.Normal); File.Delete(debugSentinelFileName); } }
public void FileLoggingEnabled_ReturnsExpectedValue() { ScriptHost host = _fixture.Host; host.ScriptConfig.FileLoggingMode = FileLoggingMode.DebugOnly; host.LastDebugNotify = DateTime.MinValue; Assert.False(host.FileLoggingEnabled); host.NotifyDebug(); Assert.True(host.FileLoggingEnabled); host.ScriptConfig.FileLoggingMode = FileLoggingMode.Never; Assert.False(host.FileLoggingEnabled); host.ScriptConfig.FileLoggingMode = FileLoggingMode.Always; Assert.True(host.FileLoggingEnabled); host.LastDebugNotify = DateTime.MinValue; Assert.True(host.FileLoggingEnabled); }