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()); }