| package recent |
| |
| import ( |
| "testing" |
| |
| "github.com/stretchr/testify/assert" |
| "go.skia.org/infra/go/testutils/unittest" |
| ) |
| |
| func TestRecent(t *testing.T) { |
| unittest.SmallTest(t) |
| r := New() |
| good, bad := r.List() |
| assert.Len(t, good, 0) |
| assert.Len(t, bad, 0) |
| |
| r.AddGood([]byte("{}")) |
| good, bad = r.List() |
| assert.Len(t, good, 1) |
| assert.Len(t, bad, 0) |
| |
| r.AddBad([]byte("{"), "malformed") |
| good, bad = r.List() |
| assert.Len(t, good, 1) |
| assert.Len(t, bad, 1) |
| assert.Equal(t, "{", bad[0].JSON) |
| |
| r.AddBad([]byte("{\"foo\": 2}"), "missing data") |
| good, bad = r.List() |
| assert.Len(t, good, 1) |
| assert.Len(t, bad, 2) |
| assert.Equal(t, "{\n \"foo\": 2\n}", bad[0].JSON) |
| assert.Equal(t, "missing data", bad[0].Reason) |
| |
| json := "{\"foo\": 2}" |
| r.AddGood([]byte(json)) |
| good, bad = r.List() |
| assert.Len(t, good, 2) |
| assert.Len(t, bad, 2) |
| // Confirm that new additions show up at the beginning |
| // of the list. |
| assert.Equal(t, json, good[0].JSON) |
| |
| // Confirm that we never store more than MAX_RECENT entries. |
| for i := 0; i < maxRecent+5; i++ { |
| r.AddGood([]byte("{}")) |
| } |
| assert.Len(t, r.recentGood, maxRecent) |
| } |