public void dispose_and_clear_all() { var cache = new TrackingTransientCache(); var instance = new SmartInstance<Target>(); var session = new FakeBuildSession(); var t1 = cache.Get(typeof(Target), instance, session).As<Target>(); var t2 = cache.Get(typeof(Target), instance, session).As<Target>(); var t3 = cache.Get(typeof(Target), instance, session).As<Target>(); cache.DisposeAndClear(); cache.Tracked.Any().ShouldBeFalse(); t1.WasDisposed.ShouldBeTrue(); t2.WasDisposed.ShouldBeTrue(); t3.WasDisposed.ShouldBeTrue(); }