public void ConnectionTraceIsProperlyFiltered() { var traceNumber = 0; var traceOutput = new StringBuilder(); var traceWriter = new StringWriter(traceOutput); var connection = new Client.Connection("http://test"); var timestampPattern = new Regex(@"^.* - ", RegexOptions.Multiline); Func <string> traceWithoutTimestamps = () => timestampPattern.Replace(traceOutput.ToString(), String.Empty); Action traceAllLevels = () => { connection.Trace(TraceLevels.Messages, "{0}: Message", ++traceNumber); connection.Trace(TraceLevels.Events, "{0}: Event", ++traceNumber); connection.Trace(TraceLevels.StateChanges, "{0}: State Change", ++traceNumber); }; connection.TraceWriter = traceWriter; traceAllLevels(); Assert.Equal("1: Message\r\n2: Event\r\n3: State Change\r\n", traceWithoutTimestamps()); traceOutput.Clear(); connection.TraceLevel = TraceLevels.All; traceAllLevels(); Assert.Equal("4: Message\r\n5: Event\r\n6: State Change\r\n", traceWithoutTimestamps()); traceOutput.Clear(); connection.TraceLevel = TraceLevels.Messages; traceAllLevels(); Assert.Equal("7: Message\r\n", traceWithoutTimestamps()); traceOutput.Clear(); connection.TraceLevel = TraceLevels.Events; traceAllLevels(); Assert.Equal("11: Event\r\n", traceWithoutTimestamps()); traceOutput.Clear(); connection.TraceLevel = TraceLevels.StateChanges; traceAllLevels(); Assert.Equal("15: State Change\r\n", traceWithoutTimestamps()); traceOutput.Clear(); connection.TraceLevel = TraceLevels.None; traceAllLevels(); Assert.Equal(String.Empty, traceWithoutTimestamps()); }
public void ConnectionTraceIsProperlyFiltered() { var traceNumber = 0; var traceOutput = new StringBuilder(); var traceWriter = new StringWriter(traceOutput); var connection = new Client.Connection("http://test"); var timestampPattern = new Regex(@"^.* - ", RegexOptions.Multiline); Func<string> traceWithoutTimestamps = () => timestampPattern.Replace(traceOutput.ToString(), String.Empty); Action traceAllLevels = () => { connection.Trace(TraceLevels.Messages, "{0}: Message", ++traceNumber); connection.Trace(TraceLevels.Events, "{0}: Event", ++traceNumber); connection.Trace(TraceLevels.StateChanges, "{0}: State Change", ++traceNumber); }; connection.TraceWriter = traceWriter; traceAllLevels(); Assert.Equal("1: Message\r\n2: Event\r\n3: State Change\r\n", traceWithoutTimestamps()); traceOutput.Clear(); connection.TraceLevel = TraceLevels.All; traceAllLevels(); Assert.Equal("4: Message\r\n5: Event\r\n6: State Change\r\n", traceWithoutTimestamps()); traceOutput.Clear(); connection.TraceLevel = TraceLevels.Messages; traceAllLevels(); Assert.Equal("7: Message\r\n", traceWithoutTimestamps()); traceOutput.Clear(); connection.TraceLevel = TraceLevels.Events; traceAllLevels(); Assert.Equal("11: Event\r\n", traceWithoutTimestamps()); traceOutput.Clear(); connection.TraceLevel = TraceLevels.StateChanges; traceAllLevels(); Assert.Equal("15: State Change\r\n", traceWithoutTimestamps()); traceOutput.Clear(); connection.TraceLevel = TraceLevels.None; traceAllLevels(); Assert.Equal(String.Empty, traceWithoutTimestamps()); }