accounting: add HasBuffer method to Account

This commit is contained in:
Nick Craig-Wood 2020-06-26 17:24:16 +01:00
parent 15402e46c9
commit 05ddef117a
2 changed files with 11 additions and 0 deletions

View File

@ -109,6 +109,14 @@ func (acc *Account) WithBuffer() *Account {
return acc
}
// HasBuffer - returns true if this Account has an AsyncReader with a buffer
func (acc *Account) HasBuffer() bool {
acc.mu.Lock()
defer acc.mu.Unlock()
_, ok := acc.in.(*asyncreader.AsyncReader)
return ok
}
// GetReader returns the underlying io.ReadCloser under any Buffer
func (acc *Account) GetReader() io.ReadCloser {
acc.mu.Lock()

View File

@ -37,6 +37,7 @@ func TestNewAccountSizeName(t *testing.T) {
assert.Equal(t, acc, stats.inProgress.get("test"))
acc.Done()
assert.Nil(t, stats.inProgress.get("test"))
assert.False(t, acc.HasBuffer())
}
func TestAccountWithBuffer(t *testing.T) {
@ -44,7 +45,9 @@ func TestAccountWithBuffer(t *testing.T) {
stats := NewStats()
acc := newAccountSizeName(stats, in, -1, "test")
assert.False(t, acc.HasBuffer())
acc.WithBuffer()
assert.True(t, acc.HasBuffer())
// should have a buffer for an unknown size
_, ok := acc.in.(*asyncreader.AsyncReader)
require.True(t, ok)