public void FilterAddIDTest() { LogItem message = new LogItem(category, level, msg, ids, GetException()); var qThread = new Mock<IQueued<LogItem>>(MockBehavior.Strict); var writer = new Mock<ILogWriter>(MockBehavior.Strict); writer .Setup(s => s.Write(It.IsAny<LogItem>())); writer .Setup(s => s.GetTimeout()) .Returns(timeout); qThread .Setup(s => s.SetTimeout(It.IsAny<int>())); LogCollector target = new LogCollector(qThread.Object, writer.Object); target.FilterAddID(1); qThread.Raise(s => s.OnReceive += null, message); writer .Verify(s => s.Write(It.IsAny<LogItem>()), Times.Never()); target.FilterAddID(3); target.FilterAddID(1); qThread.Raise(s => s.OnReceive += null, message); writer .Verify(s => s.Write(It.Is<LogItem>(a => a.Equals(message))), Times.Once()); }
/// <summary> /// Adds an ID to ID filter. Used to only log messages for specified ID, /// user ID for example. /// </summary> /// <param name="id"></param> public static void FilterAddID(int id) { if (id == 0) { return; } lock (sync) { if (!init) { InitBody(); } collector.FilterAddID(id); } }