public void SetUp() { this.publisher = Substitute.For <ISolutionSyncPublisher>(); this.factory = Substitute.For <ISolutionSyncPublisherFactory>(); this.factory.CreatePublisher().Returns(_ => this.publisher); this.manager = new SolutionSyncPublishManager(this.factory); }
public void DanglingProcessorsAreDeleted() { WeakReference processorRef = null; var repo = Substitute.For <ISolutionSyncProcessorRepository>(); repo.GetProcessors() .Returns( call => { var processor = new MockProcessor(); processorRef = processorRef ?? new WeakReference(processor); return(new[] { processor }); }); var manager = new SolutionSyncPublishManager(new SolutionProcessorPublisherFactory(repo)); manager.UpdateToNewPublisher(); manager.UpdateToNewPublisher(); GC.Collect(); GC.WaitForPendingFinalizers(); Assert.That(processorRef.IsAlive, Is.False); }