93 lines
1.8 KiB
Go
93 lines
1.8 KiB
Go
|
package gpgme
|
||
|
|
||
|
import (
|
||
|
"bytes"
|
||
|
"io"
|
||
|
"io/ioutil"
|
||
|
"os"
|
||
|
"testing"
|
||
|
)
|
||
|
|
||
|
func TestNewData(t *testing.T) {
|
||
|
dh, err := NewData()
|
||
|
checkError(t, err)
|
||
|
for i := 0; i < 5; i++ {
|
||
|
_, err := dh.Write([]byte(testData))
|
||
|
checkError(t, err)
|
||
|
}
|
||
|
_, err = dh.Seek(0, SeekSet)
|
||
|
checkError(t, err)
|
||
|
|
||
|
var buf bytes.Buffer
|
||
|
_, err = io.Copy(&buf, dh)
|
||
|
checkError(t, err)
|
||
|
expected := bytes.Repeat([]byte(testData), 5)
|
||
|
diff(t, buf.Bytes(), expected)
|
||
|
|
||
|
dh.Close()
|
||
|
}
|
||
|
|
||
|
func TestNewDataBytes(t *testing.T) {
|
||
|
// Test ordinary data, and empty slices
|
||
|
for _, content := range [][]byte{[]byte("content"), []byte{}} {
|
||
|
dh, err := NewDataBytes(content)
|
||
|
checkError(t, err)
|
||
|
|
||
|
_, err = dh.Seek(0, SeekSet)
|
||
|
checkError(t, err)
|
||
|
var buf bytes.Buffer
|
||
|
_, err = io.Copy(&buf, dh)
|
||
|
checkError(t, err)
|
||
|
diff(t, buf.Bytes(), content)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func TestDataNewDataFile(t *testing.T) {
|
||
|
f, err := ioutil.TempFile("", "gpgme")
|
||
|
checkError(t, err)
|
||
|
defer func() {
|
||
|
f.Close()
|
||
|
os.Remove(f.Name())
|
||
|
}()
|
||
|
dh, err := NewDataFile(f)
|
||
|
checkError(t, err)
|
||
|
defer dh.Close()
|
||
|
for i := 0; i < 5; i++ {
|
||
|
_, err := dh.Write([]byte(testData))
|
||
|
checkError(t, err)
|
||
|
}
|
||
|
_, err = dh.Seek(0, SeekSet)
|
||
|
checkError(t, err)
|
||
|
var buf bytes.Buffer
|
||
|
_, err = io.Copy(&buf, dh)
|
||
|
checkError(t, err)
|
||
|
expected := bytes.Repeat([]byte(testData), 5)
|
||
|
diff(t, buf.Bytes(), expected)
|
||
|
}
|
||
|
|
||
|
func TestDataNewDataReader(t *testing.T) {
|
||
|
r := bytes.NewReader([]byte(testData))
|
||
|
dh, err := NewDataReader(r)
|
||
|
checkError(t, err)
|
||
|
var buf bytes.Buffer
|
||
|
_, err = io.Copy(&buf, dh)
|
||
|
checkError(t, err)
|
||
|
diff(t, buf.Bytes(), []byte(testData))
|
||
|
|
||
|
dh.Close()
|
||
|
}
|
||
|
|
||
|
func TestDataNewDataWriter(t *testing.T) {
|
||
|
var buf bytes.Buffer
|
||
|
dh, err := NewDataWriter(&buf)
|
||
|
checkError(t, err)
|
||
|
for i := 0; i < 5; i++ {
|
||
|
_, err := dh.Write([]byte(testData))
|
||
|
checkError(t, err)
|
||
|
}
|
||
|
expected := bytes.Repeat([]byte(testData), 5)
|
||
|
diff(t, buf.Bytes(), expected)
|
||
|
|
||
|
dh.Close()
|
||
|
}
|