package minecraft

import (
	"errors"
	"testing"
)

type MockRCONProducer struct {
	Err error
}

func (m *MockRCONProducer) newClient() (RCONClient, error) {
	return nil, m.Err
}

func TestRCONErrorHandling(t *testing.T) {
	m := &MockRCONProducer{
		Err: errors.New("Error: failed connection"),
	}
	c := &RCON{
		Server:   "craftstuff.com",
		Port:     "2222",
		Password: "pass",
		//Force fetching of new client
		client: nil,
	}

	_, err := c.Gather(m)
	if err == nil {
		t.Errorf("Error nil, unexpected result")
	}

	if c.client != nil {
		t.Fatal("c.client should be nil, unexpected result")
	}
}