using System.Runtime.CompilerServices; using NUnit.Framework; using ShrinkCommand; using ShrinkCommand.Integration; using ShrinkNetwork; public class BridgeRetentionTests { [Test] public void CommandBridgeDoesNotKeepRetiredNetworkServiceAlive() { var weak = Register(); GC.Collect(); GC.WaitForPendingFinalizers(); GC.Collect(); Assert.That(weak.IsAlive, Is.False); } [MethodImpl(MethodImplOptions.NoInlining)] private static WeakReference Register() { var service = new ShrinkNetworkService(); ShrinkNetworkCommandBridge.RegisterService(service, new ShrinkCommandService()); return new WeakReference(service); } }