mirror of https://github.com/certusone/dc4bc.git
54 lines
986 B
Go
54 lines
986 B
Go
package storage
|
|
|
|
import (
|
|
"math/rand"
|
|
"os"
|
|
"reflect"
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
func randomBytes(n int) []byte {
|
|
rand.Seed(time.Now().UnixNano())
|
|
b := make([]byte, n)
|
|
if _, err := rand.Read(b); err != nil {
|
|
return nil
|
|
}
|
|
return b
|
|
}
|
|
|
|
func TestFileStorage_GetMessages(t *testing.T) {
|
|
N := 10
|
|
var offset uint64 = 5
|
|
var testFile = "/tmp/dc4bc_test_file_storage"
|
|
fs, err := NewFileStorage(testFile)
|
|
if err != nil {
|
|
t.Error(err)
|
|
}
|
|
defer fs.Close()
|
|
defer os.Remove(testFile)
|
|
|
|
msgs := make([]Message, 0, N)
|
|
for i := 0; i < N; i++ {
|
|
msg := Message{
|
|
Data: randomBytes(10),
|
|
Signature: randomBytes(10),
|
|
}
|
|
msg, err = fs.Send(msg)
|
|
if err != nil {
|
|
t.Error(err)
|
|
}
|
|
msgs = append(msgs, msg)
|
|
}
|
|
|
|
offsetMsgs, err := fs.GetMessages(offset)
|
|
if err != nil {
|
|
t.Error(err)
|
|
}
|
|
|
|
expectedOffsetMsgs := msgs[offset:]
|
|
if !reflect.DeepEqual(offsetMsgs, expectedOffsetMsgs) {
|
|
t.Errorf("expected messages: %v, actual messages: %v", expectedOffsetMsgs, offsetMsgs)
|
|
}
|
|
}
|