public void SutIsLease() { // Fixture setup var dummyTimeout = TimeSpan.FromMinutes(2); // Exercise system var sut = new SlidingLease(dummyTimeout); // Verify outcome Assert.IsAssignableFrom<ILease>(sut); // Teardown }
public void IsExpiredIsCorrectWhenTimoutIsNotExceeded() { // Fixture setup var sut = new SlidingLease(TimeSpan.FromDays(1)); // Exercise system var result = sut.IsExpired; // Verify outcome Assert.False(result); // Teardown }
public void IsExpiredIsCorrectWhenTimeoutIsExceeded() { // Fixture setup var sut = new SlidingLease(TimeSpan.FromTicks(100)); Thread.Sleep(TimeSpan.FromMilliseconds(1)); // Exercise system var result = sut.IsExpired; // Verify outcome Assert.True(result); // Teardown }
public void TimeoutIsCorrect() { // Fixture setup var expectedTimeout = TimeSpan.FromMinutes(1); var sut = new SlidingLease(expectedTimeout); // Exercise system TimeSpan result = sut.Timeout; // Verify outcome Assert.Equal(expectedTimeout, result); // Teardown }
public void SutIsLease() { // Fixture setup var dummyTimeout = TimeSpan.FromMinutes(2); // Exercise system var sut = new SlidingLease(dummyTimeout); // Verify outcome Assert.IsAssignableFrom <ILease>(sut); // Teardown }
public void IsExpiredIsCorrectAfterRenewal() { // Fixture setup var sut = new SlidingLease(TimeSpan.FromMilliseconds(10)); Thread.Sleep(TimeSpan.FromMilliseconds(20)); // Exercise system sut.Renew(); // Verify outcome Assert.False(sut.IsExpired); // Teardown }
public void ExampleOfTearDown() { var container = new UnityContainer(); var lease = new SlidingLease(TimeSpan.FromMinutes(1)); var cache = new CacheLifetimeManager(lease); container.RegisterType <IIngredient, Parsley>(cache); var ingredient = container.Resolve <IIngredient>(); container.Teardown(ingredient); }
public void UsingCachingIngredientWithLongTimeout() { var container = new UnityContainer(); var lease = new SlidingLease(TimeSpan.FromMinutes(1)); var cache = new CacheLifetimeManager(lease); container.RegisterType <IIngredient, SauceBéarnaise>(cache); var ingredient1 = container.Resolve <IIngredient>(); var ingredient2 = container.Resolve <IIngredient>(); Assert.Same(ingredient1, ingredient2); }
// Uses default Lease, but attempts to look up alternative through the kernel. // if anyone uses the Lease property before the Init function in AbstractLifestyleManager // the default lease is used. This won't happen with how Castle Windsor uses custom lifestyles // in normal use. private ILease resolveLease() { var defaultLease = new SlidingLease(TimeSpan.FromMinutes(1)); if (this.Kernel == null) { return(defaultLease); } if (this.Kernel.HasComponent(typeof(ILease))) { return(this.Kernel.Resolve <ILease>()); } return(defaultLease); }
public void LeaseIsCorrect() { var container = new Container(); var expectedLease = new SlidingLease(TimeSpan.FromMinutes(1)); var cache = new CacheLifecycle(expectedLease); // How to configure lease for use. // this line isn't used in the test container.Configure(r => r.For <IIngredient>().LifecycleIs(cache).Use <SauceBearnaise>()); var result = cache.Lease; Assert.Equal(expectedLease, result); }
public void LeaseIsCorrect() { // Fixture setup var container = new UnityContainer(); var expectedLease = new SlidingLease(TimeSpan.FromMinutes(1)); var cache = new CacheLifetimeManager(expectedLease); container.RegisterType <IIngredient, SauceBearnaise>(cache); // Exercise system ILease result = cache.Lease; // Verify outcome Assert.Equal(expectedLease, result); }
public void UsingCachingIngredientWithShortTimeout() { var container = new UnityContainer(); var lease = new SlidingLease(TimeSpan.FromTicks(1)); var cache = new CacheLifetimeManager(lease); container.RegisterType <IIngredient, SauceBéarnaise>(cache); var ingredient1 = container.Resolve <IIngredient>(); Thread.Sleep(TimeSpan.FromMilliseconds(1)); var ingredient2 = container.Resolve <IIngredient>(); Assert.NotSame(ingredient1, ingredient2); }
public void DisposeContainerDisposesCachedParsley() { var container = new UnityContainer(); var lease = new SlidingLease(TimeSpan.FromMinutes(1)); var cache = new CacheLifetimeManager(lease); container.RegisterType <IIngredient, Parsley>(cache); var ingredient = container.Resolve <IIngredient>(); container.Dispose(); var parsley = Assert.IsAssignableFrom <Parsley>(ingredient); Assert.True(parsley.IsDisposed); }
public void UsingCachingIngredientWithLongTimeout() { var container = new Container(); var lease = new SlidingLease(TimeSpan.FromMinutes(1)); var cache = new CacheLifecycle(lease); container.Configure(r => r .For <IIngredient>() .LifecycleIs(cache) .Use <SauceBéarnaise>()); var ingredient1 = container.GetInstance <IIngredient>(); var ingredient2 = container.GetInstance <IIngredient>(); Assert.Same(ingredient1, ingredient2); }
public void UsingCachingIngredientWithShortTimeout() { var lease = new SlidingLease(TimeSpan.FromTicks(1)); var lifecycle = new CacheLifecycle(lease); var container = new Container(); container.Configure(r => r .For <IIngredient>() .LifecycleIs(lifecycle) .Use <SauceBéarnaise>()); var ingredient1 = container.GetInstance <IIngredient>(); Thread.Sleep(TimeSpan.FromMilliseconds(1)); var ingredient2 = container.GetInstance <IIngredient>(); Assert.NotSame(ingredient1, ingredient2); }
public void TeardownParsleyAsCachedDisposesParsleyWhenCacheLifetimeStrategyExtensionIsAdded() { var container = new UnityContainer(); container.AddNewExtension <CacheLifetimeStrategyExtension>(); var lease = new SlidingLease(TimeSpan.FromTicks(1)); var cache = new CacheLifetimeManager(lease); container.RegisterType <IIngredient, Parsley>(cache); var ingredient = container.Resolve <IIngredient>(); Thread.Sleep(TimeSpan.FromMilliseconds(1)); container.Teardown(ingredient); var parsley = Assert.IsAssignableFrom <Parsley>(ingredient); Assert.True(parsley.IsDisposed); }
public void ReuseTheSameCacheForSeveralComponents() { var container = new Container(); var lease = new SlidingLease(TimeSpan.FromMinutes(1)); var cache = new CacheLifecycle(lease); container.Configure(r => { r.For <IIngredient>().LifecycleIs(cache).Use <Steak>(); r.For <ICourse>().LifecycleIs(cache).Use <Course>(); }); var course1 = container.GetInstance <ICourse>(); var course2 = container.GetInstance <ICourse>(); var ingredient1 = Assert.IsAssignableFrom <Course>(course1).Ingredients.Single(); var ingredient2 = Assert.IsAssignableFrom <Course>(course2).Ingredients.Single(); Assert.Same(ingredient1, ingredient2); }