blob: ca538579127673491c3e7bd7d4173f6eedc36cb7 [file] [log] [blame]
package psrefresh
import (
"fmt"
"testing"
"time"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/mock"
"go.skia.org/infra/go/paramtools"
"go.skia.org/infra/go/testutils/unittest"
"go.skia.org/infra/perf/go/psrefresh/mocks"
"go.skia.org/infra/perf/go/types"
)
func TestRefresher(t *testing.T) {
unittest.SmallTest(t)
op := &mocks.OPSProvider{}
tileNumber := types.TileNumber(100)
tileNumber2 := tileNumber.Prev()
op.On("GetLatestTile").Return(tileNumber, nil)
ps1 := paramtools.NewOrderedParamSet()
ps1.Update(paramtools.ParamSet{
"config": []string{"8888", "565"},
})
ps2 := paramtools.NewOrderedParamSet()
ps2.Update(paramtools.ParamSet{
"config": []string{"8888", "565", "gles"},
})
op.On("GetOrderedParamSet", mock.Anything, tileNumber, mock.Anything).Return(ps1, nil)
op.On("GetOrderedParamSet", mock.Anything, tileNumber2, mock.Anything).Return(ps2, nil)
pf := NewParamSetRefresher(op)
err := pf.Start(time.Minute)
assert.NoError(t, err)
assert.Len(t, pf.Get()["config"], 3)
}
func TestRefresherFailure(t *testing.T) {
unittest.SmallTest(t)
op := &mocks.OPSProvider{}
tileNumber := types.TileNumber(100)
op.On("GetLatestTile").Return(tileNumber, fmt.Errorf("Something happened"))
pf := NewParamSetRefresher(op)
err := pf.Start(time.Minute)
assert.Error(t, err)
}