package slackapp import ( "container/ring" "testing" "github.com/stretchr/testify/assert" ) func TestDedupeNoDupes(t *testing.T) { buf := ring.New(3) for i := 0; i < 3; i++ { buf.Value = "" buf = buf.Next() } s := SlackApp{msgIDBuffer: buf} expected := []bool{ false, false, false, false, false, } actuals := []bool{} actuals = append(actuals, s.checkRingOrAdd("a")) actuals = append(actuals, s.checkRingOrAdd("b")) actuals = append(actuals, s.checkRingOrAdd("c")) actuals = append(actuals, s.checkRingOrAdd("d")) actuals = append(actuals, s.checkRingOrAdd("e")) assert.ElementsMatch(t, expected, actuals) } func TestDedupeWithDupes(t *testing.T) { buf := ring.New(3) for i := 0; i < 3; i++ { buf.Value = "" buf = buf.Next() } s := SlackApp{msgIDBuffer: buf} expected := []bool{ false, false, true, false, true, } actuals := []bool{} actuals = append(actuals, s.checkRingOrAdd("a")) actuals = append(actuals, s.checkRingOrAdd("b")) actuals = append(actuals, s.checkRingOrAdd("a")) actuals = append(actuals, s.checkRingOrAdd("d")) actuals = append(actuals, s.checkRingOrAdd("d")) assert.ElementsMatch(t, expected, actuals) }