コード例 #1
0
 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);
 }
コード例 #2
0
        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);
        }