/// <summary> /// Removes ID from ID filter, this ID is no longer gets monitored. /// As soon as ID filter becomes empty, all the entries will be logged. /// </summary> /// <param name="id"></param> public static void FilterRemoveID(int id) { if (id == 0) { return; } lock (sync) { if (!init) { InitBody(); } collector.FilterRemoveID(id); } }
public void FilterRemoveIDTest() { 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); target.FilterAddID(3); qThread.Raise(s => s.OnReceive += null, message); writer .Verify(s => s.Write(It.Is<LogItem>(a => a.Equals(message))), Times.Once()); target.FilterRemoveID(3); qThread.Raise(s => s.OnReceive += null, message); writer .Verify(s => s.Write(It.Is<LogItem>(a => a.Equals(message))), Times.Once()); }