49 lines
1.3 KiB
Go
49 lines
1.3 KiB
Go
package proxy
|
|
|
|
import "testing"
|
|
|
|
func TestWorker_NewWorkers_Good(t *testing.T) {
|
|
bus := NewEventBus()
|
|
workers := NewWorkers(WorkersByRigID, bus)
|
|
miner := &Miner{id: 7, user: "wallet", rigID: "rig-1", ip: "10.0.0.1"}
|
|
|
|
bus.Dispatch(Event{Type: EventLogin, Miner: miner})
|
|
|
|
records := workers.List()
|
|
if len(records) != 1 {
|
|
t.Fatalf("expected one worker record, got %d", len(records))
|
|
}
|
|
if records[0].Name != "rig-1" {
|
|
t.Fatalf("expected rig id worker name, got %q", records[0].Name)
|
|
}
|
|
if records[0].Connections != 1 {
|
|
t.Fatalf("expected one connection, got %d", records[0].Connections)
|
|
}
|
|
}
|
|
|
|
func TestWorker_NewWorkers_Bad(t *testing.T) {
|
|
workers := NewWorkers(WorkersDisabled, nil)
|
|
if workers == nil {
|
|
t.Fatalf("expected workers instance")
|
|
}
|
|
if got := workers.List(); len(got) != 0 {
|
|
t.Fatalf("expected no worker records, got %d", len(got))
|
|
}
|
|
}
|
|
|
|
func TestWorker_NewWorkers_Ugly(t *testing.T) {
|
|
bus := NewEventBus()
|
|
workers := NewWorkers(WorkersByUser, bus)
|
|
workers.bindEvents(bus)
|
|
|
|
miner := &Miner{id: 11, user: "wallet", ip: "10.0.0.2"}
|
|
bus.Dispatch(Event{Type: EventLogin, Miner: miner})
|
|
|
|
records := workers.List()
|
|
if len(records) != 1 {
|
|
t.Fatalf("expected one worker record, got %d", len(records))
|
|
}
|
|
if records[0].Connections != 1 {
|
|
t.Fatalf("expected a single subscription path, got %d connections", records[0].Connections)
|
|
}
|
|
}
|