public void PreBuildUpWithCacheLifetimeFromParentAddsCorrectLifetime() { // Fixture setup var dummyLease = new Mock <ILease>().Object; var originalLifetimeManager = new CacheLifetimeManager(dummyLease); var parentList = new Mock <IPolicyList>().Object; var buildKey = new NamedTypeBuildKey <Version>(); var contextMock = new Mock <IBuilderContext> { DefaultValue = DefaultValue.Mock }; contextMock.SetupGet(ctx => ctx.BuildKey).Returns(buildKey); contextMock.Setup(ctx => ctx.PersistentPolicies.Get(typeof(ILifetimePolicy), buildKey, false, out parentList)).Returns(originalLifetimeManager); var sut = new CacheLifetimeStrategy(); // Exercise system sut.PreBuildUp(contextMock.Object); // Verify outcome contextMock.Verify(ctx => ctx.Lifetime.Add(It.Is <object>(obj => new CacheLifetimeManagerCloneLikeness(originalLifetimeManager).Equals(obj)))); // Teardown }
public CacheLifetimeManagerCloneLikeness(CacheLifetimeManager target) { if (target == null) { throw new ArgumentNullException("target"); } this.target = target; }
public void SutIsLifetimeManager() { // Fixture setup var dummyLease = new Mock<ILease>().Object; // Exercise system var sut = new CacheLifetimeManager(dummyLease); // Verify outcome Assert.IsAssignableFrom<LifetimeManager>(sut); // Teardown }
public void GetValueReturnsNullWhenFirstUsed() { // Fixture setup var dummyLease = new Mock<ILease>().Object; var sut = new CacheLifetimeManager(dummyLease); // Exercise system var result = sut.GetValue(); // Verify outcome Assert.Null(result); // Teardown }
public void SutIsDisposable() { // Fixture setup var dummyLease = new Mock <ILease>().Object; // Exercise system var sut = new CacheLifetimeManager(dummyLease); // Verify outcome Assert.IsAssignableFrom <IDisposable>(sut); // Teardown }
public void LeaseIsCorrect() { // Fixture setup var expectedLease = new Mock<ILease>().Object; var sut = new CacheLifetimeManager(expectedLease); // Exercise system ILease result = sut.Lease; // Verify outcome Assert.Equal(expectedLease, result); // Teardown }
public void CloneReturnsNewInstance() { // Fixture setup var dummyLease = new Mock <ILease>().Object; var sut = new CacheLifetimeManager(dummyLease); // Exercise system CacheLifetimeManager result = sut.Clone(); // Verify outcome Assert.NotSame(sut, result); // Teardown }
public void LeaseIsCorrect() { // Fixture setup var expectedLease = new Mock <ILease>().Object; var sut = new CacheLifetimeManager(expectedLease); // Exercise system ILease result = sut.Lease; // Verify outcome Assert.Equal(expectedLease, result); // Teardown }
public void GetValueReturnsNullWhenFirstUsed() { // Fixture setup var dummyLease = new Mock <ILease>().Object; var sut = new CacheLifetimeManager(dummyLease); // Exercise system var result = sut.GetValue(); // Verify outcome Assert.Null(result); // Teardown }
public void SetValueRenewsLease() { // Fixture setup var leaseMock = new Mock <ILease>(); var sut = new CacheLifetimeManager(leaseMock.Object); // Exercise system var dummyValue = new object(); sut.SetValue(dummyValue); // Verify outcome leaseMock.Verify(l => l.Renew()); // Teardown }
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); }
public void DisposeDisposesValue() { // Fixture setup var dummyLease = new Mock <ILease>().Object; var sut = new CacheLifetimeManager(dummyLease); var valueMock = new Mock <IDisposable>(); sut.SetValue(valueMock.Object); // Exercise system sut.Dispose(); // Verify outcome valueMock.Verify(d => d.Dispose()); // Teardown }
public void DisposeRemovesValue() { // Fixture setup var dummyLease = new Mock <ILease>().Object; var sut = new CacheLifetimeManager(dummyLease); sut.SetValue(new object()); // Exercise system sut.Dispose(); // Verify outcome var result = sut.GetValue(); Assert.Null(result); // Teardown }
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 GetValueReturnsCorrectResultWhenHoldingValue(bool isExpired) { // Fixture setup var value = new object(); var expectedResult = isExpired ? null : value; var leaseStub = new Mock<ILease>(); leaseStub.SetupGet(l => l.IsExpired).Returns(isExpired); var sut = new CacheLifetimeManager(leaseStub.Object); // Exercise system sut.SetValue(value); var result = sut.GetValue(); // Verify outcome Assert.Equal(expectedResult, result); // Teardown }
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 RemoveValueDisposesValue() { // Fixture setup var leaseStub = new Mock <ILease>(); leaseStub.SetupGet(l => l.IsExpired).Returns(true); var sut = new CacheLifetimeManager(leaseStub.Object); var valueMock = new Mock <IDisposable>(); sut.SetValue(valueMock.Object); // Exercise system sut.RemoveValue(); // Verify outcome valueMock.Verify(d => d.Dispose()); // Teardown }
public void RemoveValueRemovesValueWhenLeaseIsExpired() { // Fixture setup var leaseStub = new Mock <ILease>(); leaseStub.SetupGet(l => l.IsExpired).Returns(true); var sut = new CacheLifetimeManager(leaseStub.Object); sut.SetValue(new object()); // Exercise system sut.RemoveValue(); // Verify outcome var result = sut.GetValue(); Assert.Null(result); // Teardown }
public void GetValueReturnsCorrectResultWhenHoldingValue(bool isExpired) { // Fixture setup var value = new object(); var expectedResult = isExpired ? null : value; var leaseStub = new Mock <ILease>(); leaseStub.SetupGet(l => l.IsExpired).Returns(isExpired); var sut = new CacheLifetimeManager(leaseStub.Object); // Exercise system sut.SetValue(value); var result = sut.GetValue(); // Verify outcome Assert.Equal(expectedResult, result); // Teardown }
public void RemoveValueDoesNotRemoveValueWhenLeaseIsNotExpired() { // Fixture setup var leaseStub = new Mock <ILease>(); leaseStub.SetupGet(l => l.IsExpired).Returns(false); var expected = new object(); var sut = new CacheLifetimeManager(leaseStub.Object); sut.SetValue(expected); // Exercise system sut.RemoveValue(); // Verify outcome var result = sut.GetValue(); Assert.Equal(expected, result); // Teardown }
public void PreBuildUpWithCacheLifetimeFromParentAddsCorrectLifetime() { // Fixture setup var dummyLease = new Mock<ILease>().Object; var originalLifetimeManager = new CacheLifetimeManager(dummyLease); var parentList = new Mock<IPolicyList>().Object; var buildKey = new NamedTypeBuildKey<Version>(); var contextMock = new Mock<IBuilderContext> { DefaultValue = DefaultValue.Mock }; contextMock.SetupGet(ctx => ctx.BuildKey).Returns(buildKey); contextMock.Setup(ctx => ctx.PersistentPolicies.Get(typeof(ILifetimePolicy), buildKey, false, out parentList)).Returns(originalLifetimeManager); var sut = new CacheLifetimeStrategy(); // Exercise system sut.PreBuildUp(contextMock.Object); // Verify outcome contextMock.Verify(ctx => ctx.Lifetime.Add(It.Is<object>(obj => new CacheLifetimeManagerCloneLikeness(originalLifetimeManager).Equals(obj)))); // Teardown }
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 DisposeDisposesValue() { // Fixture setup var dummyLease = new Mock<ILease>().Object; var sut = new CacheLifetimeManager(dummyLease); var valueMock = new Mock<IDisposable>(); sut.SetValue(valueMock.Object); // Exercise system sut.Dispose(); // Verify outcome valueMock.Verify(d => d.Dispose()); // Teardown }
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 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); }
public void CloneReturnsNewInstance() { // Fixture setup var dummyLease = new Mock<ILease>().Object; var sut = new CacheLifetimeManager(dummyLease); // Exercise system CacheLifetimeManager result = sut.Clone(); // Verify outcome Assert.NotSame(sut, result); // Teardown }
public void RemoveValueDisposesValue() { // Fixture setup var leaseStub = new Mock<ILease>(); leaseStub.SetupGet(l => l.IsExpired).Returns(true); var sut = new CacheLifetimeManager(leaseStub.Object); var valueMock = new Mock<IDisposable>(); sut.SetValue(valueMock.Object); // Exercise system sut.RemoveValue(); // Verify outcome valueMock.Verify(d => d.Dispose()); // Teardown }
public void RemoveValueDoesNotRemoveValueWhenLeaseIsNotExpired() { // Fixture setup var leaseStub = new Mock<ILease>(); leaseStub.SetupGet(l => l.IsExpired).Returns(false); var expected = new object(); var sut = new CacheLifetimeManager(leaseStub.Object); sut.SetValue(expected); // Exercise system sut.RemoveValue(); // Verify outcome var result = sut.GetValue(); Assert.Equal(expected, result); // Teardown }
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 DisposeRemovesValue() { // Fixture setup var dummyLease = new Mock<ILease>().Object; var sut = new CacheLifetimeManager(dummyLease); sut.SetValue(new object()); // Exercise system sut.Dispose(); // Verify outcome var result = sut.GetValue(); Assert.Null(result); // Teardown }
public void RemoveValueRemovesValueWhenLeaseIsExpired() { // Fixture setup var leaseStub = new Mock<ILease>(); leaseStub.SetupGet(l => l.IsExpired).Returns(true); var sut = new CacheLifetimeManager(leaseStub.Object); sut.SetValue(new object()); // Exercise system sut.RemoveValue(); // Verify outcome var result = sut.GetValue(); Assert.Null(result); // Teardown }
public void SetValueRenewsLease() { // Fixture setup var leaseMock = new Mock<ILease>(); var sut = new CacheLifetimeManager(leaseMock.Object); // Exercise system var dummyValue = new object(); sut.SetValue(dummyValue); // Verify outcome leaseMock.Verify(l => l.Renew()); // Teardown }
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); }