public void Dispose_UnsubscribesFromEvents() { var storeMock = new Mock <IIssueLocationStore>(); storeMock.SetupAdd(x => x.IssuesChanged += (sender, args) => { }); var bufferMock = CreateBufferMock(filePath: ValidBufferDocName); bufferMock.SetupAdd(x => x.ChangedLowPriority += (sender, args) => { }); var testSubject = new LocationTagger(bufferMock.Object, storeMock.Object, ValidSpanCalculator, ValidLogger); testSubject.Dispose(); storeMock.VerifyRemove(x => x.IssuesChanged -= It.IsAny <EventHandler <IssuesChangedEventArgs> >(), Times.Once); bufferMock.VerifyRemove(x => x.ChangedLowPriority -= It.IsAny <EventHandler <TextContentChangedEventArgs> >(), Times.Once); }