1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
func TestBufferChanBySize(t *testing.T) { in := make(chan int) go func() { for i := 0; i < 5; i++ { in <- i } close(in) }()
want := [][]int{{0, 1, 2}, {3, 4}} got := From(in).BufferChan([]int{}, 3, time.Second).Collect(ToSlice([][]int{})) assert.Equal(t, want, got) }
func TestBufferChanByTimeout(t *testing.T) { in := make(chan int) go func() { in <- 0 time.Sleep(time.Millisecond * 500) in <- 1 in <- 2 time.Sleep(time.Millisecond * 500) in <- 3 in <- 4 close(in) }() want := [][]int{{0}, {1, 2}, {3, 4}} got := From(in).BufferChan([]int{}, 100, time.Millisecond*300).Collect(ToSlice([][]int{})) assert.Equal(t, want, got) }
|