2
0

Add TryAcquire and ErrNotAvailable

Fixes https://github.com/jackc/puddle/issues/10
This commit is contained in:
A. Jensen
2021-09-20 20:16:07 -05:00
parent ad77d7b935
commit cac2b5a858
2 changed files with 38 additions and 0 deletions
+17
View File
@@ -175,6 +175,23 @@ func TestPoolAcquireReusesResources(t *testing.T) {
assert.Equal(t, 1, createCounter.Value())
}
func TestPoolTryAcquireDoesNotBlock(t *testing.T) {
constructor, createCounter := createConstructor()
pool := puddle.NewPool(constructor, stubDestructor, 1)
res, err := pool.TryAcquire(context.Background())
require.NoError(t, err)
assert.Equal(t, 1, res.Value())
defer res.Release()
res, err = pool.TryAcquire(context.Background())
require.EqualError(t, err, puddle.ErrNotAvailable.Error())
assert.Nil(t, res)
assert.Equal(t, 1, createCounter.Value())
}
func TestPoolAcquireContextAlreadyCanceled(t *testing.T) {
constructor := func(ctx context.Context) (interface{}, error) {
panic("should never be called")