83 lines
1.5 KiB
Go
83 lines
1.5 KiB
Go
package main
|
|
|
|
import (
|
|
"io"
|
|
"testing"
|
|
)
|
|
|
|
func Test_contentReader_Read(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
size int64
|
|
content string
|
|
}{
|
|
{
|
|
name: "simple",
|
|
size: 40,
|
|
content: "|ABCDEFGHIJKLMNOPQRSTUVWXYZ-ABCDEFGHIJK|",
|
|
},
|
|
}
|
|
|
|
for _, test := range tests {
|
|
test := test
|
|
t.Run(test.name, func(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
d := &contentReader{size: test.size}
|
|
|
|
b, err := io.ReadAll(d)
|
|
if err != nil {
|
|
t.Errorf("contentReader.Read() error = %v", err)
|
|
return
|
|
}
|
|
|
|
if string(b) != test.content {
|
|
t.Errorf("return content does not match expected value: got %s want %s", b, test.content)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func Test_contentReader_ReadSeek(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
offset int64
|
|
seekWhence int
|
|
size int64
|
|
content string
|
|
}{
|
|
{
|
|
name: "simple",
|
|
offset: 10,
|
|
seekWhence: io.SeekCurrent,
|
|
size: 40,
|
|
content: "JKLMNOPQRSTUVWXYZ-ABCDEFGHIJK|",
|
|
},
|
|
}
|
|
|
|
for _, test := range tests {
|
|
test := test
|
|
t.Run(test.name, func(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
d := &contentReader{size: test.size}
|
|
|
|
_, err := d.Seek(test.offset, test.seekWhence)
|
|
if err != nil {
|
|
t.Errorf("contentReader.Seek() error = %v", err)
|
|
return
|
|
}
|
|
|
|
b, err := io.ReadAll(d)
|
|
if err != nil {
|
|
t.Errorf("contentReader.Read() error = %v", err)
|
|
return
|
|
}
|
|
|
|
if string(b) != test.content {
|
|
t.Errorf("return content does not match expected value: got %s want %s", b, test.content)
|
|
}
|
|
})
|
|
}
|
|
}
|