Extract createCloseResourceFuncWithNotifierChan
This commit is contained in:
+18
-33
@@ -56,6 +56,20 @@ func createCreateResourceFuncWithNotifierChan() (puddle.CreateFunc, *Counter, ch
|
|||||||
return f, &c, ch
|
return f, &c, ch
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func createCloseResourceFuncWithNotifierChan() (puddle.CloseFunc, *Counter, chan int) {
|
||||||
|
ch := make(chan int)
|
||||||
|
var c Counter
|
||||||
|
f := func(interface{}) error {
|
||||||
|
n := c.Next()
|
||||||
|
|
||||||
|
// Because the tests will not read from ch until after the close function f returns.
|
||||||
|
go func() { ch <- n }()
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return f, &c, ch
|
||||||
|
}
|
||||||
|
|
||||||
func stubCloseRes(interface{}) error { return nil }
|
func stubCloseRes(interface{}) error { return nil }
|
||||||
|
|
||||||
func waitForRead(ch chan int) bool {
|
func waitForRead(ch chan int) bool {
|
||||||
@@ -200,15 +214,8 @@ func TestPoolReturnClosesAndRemovesResourceIfOlderThanMaxDuration(t *testing.T)
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestPoolReturnClosesAndRemovesResourceIfMoreUsesThanMaxResourceUses(t *testing.T) {
|
func TestPoolReturnClosesAndRemovesResourceIfMoreUsesThanMaxResourceUses(t *testing.T) {
|
||||||
closeCallsChan := make(chan int, 4)
|
|
||||||
|
|
||||||
createFunc, _ := createCreateResourceFunc()
|
createFunc, _ := createCreateResourceFunc()
|
||||||
var closeCalls Counter
|
closeFunc, closeCalls, closeCallsChan := createCloseResourceFuncWithNotifierChan()
|
||||||
closeFunc := func(interface{}) error {
|
|
||||||
n := closeCalls.Next()
|
|
||||||
closeCallsChan <- n
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
pool := puddle.NewPool(createFunc, closeFunc)
|
pool := puddle.NewPool(createFunc, closeFunc)
|
||||||
pool.SetMaxResourceUses(1)
|
pool.SetMaxResourceUses(1)
|
||||||
@@ -252,16 +259,8 @@ func TestPoolCloseClosesAllAvailableResources(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestPoolReturnClosesResourcePoolIsAlreadyClosed(t *testing.T) {
|
func TestPoolReturnClosesResourcePoolIsAlreadyClosed(t *testing.T) {
|
||||||
closeCallsChan := make(chan int, 4)
|
|
||||||
|
|
||||||
createFunc, _ := createCreateResourceFunc()
|
createFunc, _ := createCreateResourceFunc()
|
||||||
|
closeFunc, closeCalls, closeCallsChan := createCloseResourceFuncWithNotifierChan()
|
||||||
var closeCalls Counter
|
|
||||||
closeFunc := func(interface{}) error {
|
|
||||||
n := closeCalls.Next()
|
|
||||||
closeCallsChan <- n
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
p := puddle.NewPool(createFunc, closeFunc)
|
p := puddle.NewPool(createFunc, closeFunc)
|
||||||
|
|
||||||
@@ -309,14 +308,7 @@ func TestPoolRemoveRemovesResourceFromPool(t *testing.T) {
|
|||||||
|
|
||||||
func TestPoolRemoveRemovesResourceFromPoolAndStartsNewCreationToMaintainMinSize(t *testing.T) {
|
func TestPoolRemoveRemovesResourceFromPoolAndStartsNewCreationToMaintainMinSize(t *testing.T) {
|
||||||
createFunc, createCounter, createCallsChan := createCreateResourceFuncWithNotifierChan()
|
createFunc, createCounter, createCallsChan := createCreateResourceFuncWithNotifierChan()
|
||||||
|
closeFunc, closeCalls, closeCallsChan := createCloseResourceFuncWithNotifierChan()
|
||||||
closeCallsChan := make(chan int, 4)
|
|
||||||
var closeCalls Counter
|
|
||||||
closeFunc := func(interface{}) error {
|
|
||||||
n := closeCalls.Next()
|
|
||||||
closeCallsChan <- n
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
pool := puddle.NewPool(createFunc, closeFunc)
|
pool := puddle.NewPool(createFunc, closeFunc)
|
||||||
|
|
||||||
@@ -357,14 +349,7 @@ func TestPoolRemoveRemovesResourceFromPoolAndStartsNewCreationToMaintainMinSize(
|
|||||||
|
|
||||||
func TestPoolRemoveRemovesResourceFromPoolAndDoesNotStartNewCreationToMaintainMinSizeWhenPoolIsClosed(t *testing.T) {
|
func TestPoolRemoveRemovesResourceFromPoolAndDoesNotStartNewCreationToMaintainMinSizeWhenPoolIsClosed(t *testing.T) {
|
||||||
createFunc, createCounter, createCallsChan := createCreateResourceFuncWithNotifierChan()
|
createFunc, createCounter, createCallsChan := createCreateResourceFuncWithNotifierChan()
|
||||||
closeCallsChan := make(chan int, 4)
|
closeFunc, closeCalls, closeCallsChan := createCloseResourceFuncWithNotifierChan()
|
||||||
|
|
||||||
var closeCalls Counter
|
|
||||||
closeFunc := func(interface{}) error {
|
|
||||||
n := closeCalls.Next()
|
|
||||||
closeCallsChan <- n
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
pool := puddle.NewPool(createFunc, closeFunc)
|
pool := puddle.NewPool(createFunc, closeFunc)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user