1package pgx
2
3import (
4	"testing"
5)
6
7func compareConnSlices(slice1, slice2 []*Conn) bool {
8	if len(slice1) != len(slice2) {
9		return false
10	}
11	for i, c := range slice1 {
12		if c != slice2[i] {
13			return false
14		}
15	}
16	return true
17}
18
19func TestConnPoolRemoveFromAllConnections(t *testing.T) {
20	t.Parallel()
21	pool := ConnPool{}
22	conn1 := &Conn{}
23	conn2 := &Conn{}
24	conn3 := &Conn{}
25
26	// First element
27	pool.allConnections = []*Conn{conn1, conn2, conn3}
28	pool.removeFromAllConnections(conn1)
29	if !compareConnSlices(pool.allConnections, []*Conn{conn2, conn3}) {
30		t.Fatal("First element test failed")
31	}
32	// Element somewhere in the middle
33	pool.allConnections = []*Conn{conn1, conn2, conn3}
34	pool.removeFromAllConnections(conn2)
35	if !compareConnSlices(pool.allConnections, []*Conn{conn1, conn3}) {
36		t.Fatal("Middle element test failed")
37	}
38	// Last element
39	pool.allConnections = []*Conn{conn1, conn2, conn3}
40	pool.removeFromAllConnections(conn3)
41	if !compareConnSlices(pool.allConnections, []*Conn{conn1, conn2}) {
42		t.Fatal("Last element test failed")
43	}
44}
45