public void ReleasingOfUnknownObject_BasePoolIsCalled() { _pool = new PWObjectStateMonitoringWrapper<TestKey, TestResource>(_settings, _baseSuccessfulPoolMock.Object, _successfulObjectActionsMock.Object, _objectUtilizerMock.Object); var unknownResource = new TestResource("asd"); _pool.Release(_key, unknownResource); _baseSuccessfulPoolMock.Verify(x => x.Release(_key,unknownResource), Times.Once); }
public void ReleasingOfUnknownObject_NotThrowsAndAddsTimestampData() { _pool = new PWObjectStateMonitoringWrapper<TestKey, TestResource>(_settings, _baseSuccessfulPoolMock.Object, _successfulObjectActionsMock.Object, _objectUtilizerMock.Object); var unknownResource = new TestResource("asd"); Assert.DoesNotThrow(() => _pool.Release(_key, unknownResource)); Assert.That(_pool.ObjectToLifetimeData.Count, Is.EqualTo(1)); var lifetimeData = _pool.ObjectToLifetimeData[unknownResource]; Assert.That(lifetimeData.CreationTimeStamp, Is.EqualTo(DateTime.Now).Within(_timeToleranceInMills).Milliseconds); Assert.That(lifetimeData.LastUsageTimeStamp, Is.EqualTo(DateTime.Now).Within(_timeToleranceInMills).Milliseconds); }
public void ReleaseWasCalled_RememberedKeyIsPreserved() { _pool = new PWObjectStateMonitoringWrapper<TestKey, TestResource>(_settings, _baseSuccessfulPoolMock.Object, _successfulObjectActionsMock.Object, _objectUtilizerMock.Object); var resource = AddObject("asd"); var previous = _pool.ObjectToLifetimeData[resource].Key; _pool.Release(_key, resource); var current = _pool.ObjectToLifetimeData[resource].Key; Assert.That(current, Is.EqualTo(previous)); }
public void ReleaseWasCalled_LastUsageTimestampIsUpdated() { _pool = new PWObjectStateMonitoringWrapper<TestKey, TestResource>(_settings, _baseSuccessfulPoolMock.Object, _successfulObjectActionsMock.Object, _objectUtilizerMock.Object); var resource = AddObject("asd"); var previous = _pool.ObjectToLifetimeData[resource].LastUsageTimeStamp; Thread.Sleep(5); _pool.Release(_key, resource); var current = _pool.ObjectToLifetimeData[resource].LastUsageTimeStamp; Assert.That(current - previous >= TimeSpan.FromMilliseconds(5)); Assert.That(previous, Is.EqualTo(current).Within(_timeToleranceInMills).Milliseconds); }
public void ReleaseWasCalled_CreationTimestampIsNotModified() { _pool = new PWObjectStateMonitoringWrapper<TestKey, TestResource>(_settings, _baseSuccessfulPoolMock.Object, _successfulObjectActionsMock.Object, _objectUtilizerMock.Object); var resource = AddObject("asd"); var previous = _pool.ObjectToLifetimeData[resource].CreationTimeStamp; Thread.Sleep(5); _pool.Release(_key, resource); var current = _pool.ObjectToLifetimeData[resource].CreationTimeStamp; Assert.That(current, Is.EqualTo(previous)); }
public void OnlyRevivalTimespanIsSpecified_TimestampsAreNotRememberedOnRelease() { _settings.MaxObjectIdleTimeSpanInSeconds = null; _settings.MaxObjectLifetimeInSeconds = null; _pool = new PWObjectStateMonitoringWrapper<TestKey, TestResource>(_settings, _baseSuccessfulPoolMock.Object, _successfulObjectActionsMock.Object, _objectUtilizerMock.Object); var unknownResource = new TestResource("asd"); _pool.Release(_key, unknownResource); Assert.That(_pool.ObjectToLifetimeData.Count, Is.EqualTo(0)); }
public void BasePoolThrewOnRelease_ItIsRethrownAsIs() { _pool = new PWObjectStateMonitoringWrapper<TestKey, TestResource>(_settings, _baseThrowingPoolMock.Object, _successfulObjectActionsMock.Object, _objectUtilizerMock.Object); _outPoolObject = new TestResource(string.Empty); Assert.Throws<InvalidPoolOperationException<TestKey, TestResource>>( () => _pool.Release(_key, _outPoolObject)); }