Skip to content

Commit 6f6fddc

Browse files
committed
Ensure Chain stops calling Next when exhausted
1 parent 7a0c5d2 commit 6f6fddc

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

iter/chain_test.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"testing"
66

77
"github.com/BooleanCat/go-functional/internal/assert"
8+
"github.com/BooleanCat/go-functional/internal/fakes"
89
"github.com/BooleanCat/go-functional/iter"
910
)
1011

@@ -32,3 +33,14 @@ func TestChainSingle(t *testing.T) {
3233
func TestChainEmpty(t *testing.T) {
3334
assert.True(t, iter.Chain[int]().Next().IsNone())
3435
}
36+
37+
func TestChainExhausted(t *testing.T) {
38+
firstFake := new(fakes.FakeIterator[int])
39+
secondFake := new(fakes.FakeIterator[int])
40+
iter := iter.Chain[int](firstFake, secondFake)
41+
42+
assert.True(t, iter.Next().IsNone())
43+
assert.True(t, iter.Next().IsNone())
44+
assert.Equal(t, firstFake.NextCallCount(), 1)
45+
assert.Equal(t, secondFake.NextCallCount(), 1)
46+
}

0 commit comments

Comments
 (0)