| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- // +build all unit
- package gocql
- import (
- "testing"
- )
- // fakeNode is used as a simple structure to test the RoundRobin API
- type fakeNode struct {
- conn *Conn
- closed bool
- }
- // Pick is needed to satisfy the Node interface
- func (n *fakeNode) Pick(qry *Query) *Conn {
- if n.conn == nil {
- n.conn = &Conn{}
- }
- return n.conn
- }
- //Close is needed to satisfy the Node interface
- func (n *fakeNode) Close() {
- n.closed = true
- }
- //TestRoundRobinAPI tests the exported methods of the RoundRobin struct
- //to make sure the API behaves accordingly.
- func TestRoundRobinAPI(t *testing.T) {
- node := &fakeNode{}
- rr := NewRoundRobin()
- rr.AddNode(node)
- if rr.Size() != 1 {
- t.Fatalf("expected size to be 1, got %v", rr.Size())
- }
- if c := rr.Pick(nil); c != node.conn {
- t.Fatalf("expected conn %v, got %v", node.conn, c)
- }
- rr.Close()
- if rr.pool != nil {
- t.Fatalf("expected rr.pool to be nil, got %v", rr.pool)
- }
- if !node.closed {
- t.Fatal("expected node.closed to be true, got false")
- }
- }
|