Files
poseidon/pkg/nullio/nullio_test.go
2021-07-29 10:28:47 +02:00

40 lines
749 B
Go

package nullio
import (
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"testing"
"time"
)
const shortTimeout = 100 * time.Millisecond
func TestReaderDoesNotReturnImmediately(t *testing.T) {
reader := &Reader{}
readerReturned := make(chan bool)
go func() {
p := make([]byte, 0, 5)
_, err := reader.Read(p)
require.NoError(t, err)
close(readerReturned)
}()
var received bool
select {
case <-readerReturned:
received = true
case <-time.After(shortTimeout):
received = false
}
assert.False(t, received)
}
func TestReadWriterWritesEverything(t *testing.T) {
readWriter := &ReadWriter{}
p := []byte{1, 2, 3}
n, err := readWriter.Write(p)
assert.NoError(t, err)
assert.Equal(t, len(p), n)
}