public virtual void Return() { // Arrange var succeed = RandomHelper.NextBoolean(g_random); MockInnerPool.Setup(inner => inner.Return("data")).Returns(succeed); // Act var result = DecoratedPool.Return("data"); // Assert Assert.Equal(succeed, result); }
public void Count() { // Arrange var expected = g_random.Next(); MockInnerPool.Setup(inner => inner.Count).Returns(expected); // Act var result = DecoratedPool.Count; // Assert Assert.Equal(expected, result); }
public void Return_Inner_Return_False() { // Arrange var item = RandomHelper.NextWord(g_random); MockInnerPool.Setup(inner => inner.Return(item)).Returns(false); // Act var result = DecoratedPool.Return(item); // Assert Assert.False(result); }
public virtual void Return_Already_Disposed() { // Arrange MockInnerPool.Setup(inner => inner.Dispose()); MockManagedPool.Setup(managed => managed.Clear()).Returns(true); DecoratedPool.Dispose(); // Act var result = DecoratedPool.Return(null); // Assert Assert.False(result); }
public override void Return_Already_Disposed() { // Arrange MockInnerPool.Setup(inner => inner.Take(null)).Returns((string)null); MockInnerPool.Setup(inner => inner.Count).Returns(0); MockInnerPool.Setup(inner => inner.Dispose()); DecoratedPool.Dispose(); // Act var result = DecoratedPool.Return(null); // Assert Assert.False(result); }
public void TakeCurrent_Not_IdledOut() { // Arrange var current = DateTime.UtcNow; Assert.False(IdleTimeoutPool.TryIdleOut("x", current.AddSeconds(-1))); MockInnerPool.Setup(inner => inner.Take(null)).Returns("x"); // Act var result = IdleTimeoutPool.TakeCurrent(null, current); // Assert Assert.Equal("x", result); Assert.Equal(0, m_releaseFactoryCalls); }
public override void Return_Already_Disposed() { // Arrange var items = new Queue <string>(new string[] { "x", "x", null }); MockInnerPool.Setup(inner => inner.Take(null)).Returns(items.Dequeue); MockInnerPool.Setup(inner => inner.Count).Returns(0); MockInnerPool.Setup(inner => inner.Dispose()); DecoratedPool.Dispose(); // Act var result = DecoratedPool.Return(null); // Assert Assert.False(result); }
public void TakeCurrent_IdledOut() { // Arrange var current = DateTime.UtcNow; Assert.False(IdleTimeoutPool.TryIdleOut("x", current.AddSeconds(-10))); Assert.False(IdleTimeoutPool.TryIdleOut("y", current.AddSeconds(-10))); var items = new Queue <string>(new string[] { "x", "y", null }); MockInnerPool.Setup(inner => inner.Take(null)).Returns(() => items.Dequeue()); // Act var result = IdleTimeoutPool.TakeCurrent(null, current); // Assert Assert.Null(result); Assert.Equal(2, m_releaseFactoryCalls); }
public void Clear_Inner_Take_Until_Returns_Null() { // Arrange var items = new Queue <string>(new string[] { "x", "y", null }); MockInnerPool.Setup(inner => inner.Take(null)).Returns(() => items.Dequeue()); MockInnerPool.Setup(inner => inner.Count).Returns(0); var decoratedPool = new Mock <ManagedPool <string> >(MockInnerPool.Object, new Action <string>(ReleaseFactory)); decoratedPool.CallBase = true; // Act var result = decoratedPool.Object.Clear(); // Assert Assert.True(result); Assert.Equal(0, items.Count); }
public void Take_Inner_Take_Returns_Null() { // Arrange int attempt = 0; MockInnerPool.Setup(inner => inner.Return("x")).Returns(true); MockInnerPool.Setup(inner => inner.Take(null)).Returns(() => attempt++ == 0 ? (string)null : "x"); while (m_waitPool.Return("x")) { } // Act var result = m_waitPool.Take(null); // Assert Assert.Null(result); for (int i = 0; i < m_waitPool.Size; i++) { Assert.Equal("x", m_waitPool.Take(null)); } Assert.Null(m_waitPool.Take(null)); }