func TestRoute(t *testing.T) { renders := []string{"localhost:9001", "localhost:9002", "localhost:9003"} for _, r := range renders { go runFakeRender(r) } time.Sleep(100 * time.Millisecond) rs, err := NewRenderSelector(renders, time.Second, 30*time.Second) require.Nil(t, err) defer rs.Stop() coord := gopnik.TileCoord{ X: 0, Y: 0, Zoom: 1, Size: 1, } back1, err1 := rs.SelectRender(coord) require.Nil(t, err1) coord.X = 3 back2, err2 := rs.SelectRender(coord) require.Nil(t, err2) coord.Y = 4 back3, err3 := rs.SelectRender(coord) require.Nil(t, err3) coord.Zoom = 5 back4, err4 := rs.SelectRender(coord) require.Nil(t, err4) require.True(t, back1.Addr != back2.Addr || back1.Addr != back3.Addr || back1.Addr != back4.Addr, ) }