server/storage/message_store_test.go

58 lines
1.3 KiB
Go
Raw Normal View History

2021-05-07 18:36:34 +00:00
package storage
import (
"cwtch.im/cwtch/protocol/groups"
2021-05-07 20:43:15 +00:00
"encoding/binary"
"git.openprivacy.ca/openprivacy/log"
2021-05-07 18:36:34 +00:00
"os"
"testing"
)
func TestMessageStore(t *testing.T) {
os.Remove("../testcwtchmessages.db")
log.SetLevel(log.LevelDebug)
db, err := InitializeSqliteMessageStore("../testcwtchmessages.db")
if err != nil {
t.Fatalf("Error: %v", err)
2021-05-07 18:36:34 +00:00
}
2021-05-07 20:43:15 +00:00
numMessages := 100
2021-05-07 18:36:34 +00:00
2021-05-07 20:43:15 +00:00
t.Logf("Populating Database")
for i := 0; i < numMessages; i++ {
buf := make([]byte, 4)
binary.PutUvarint(buf, uint64(i))
db.AddMessage(groups.EncryptedGroupMessage{
Signature: append([]byte("Hello world"), buf...),
Ciphertext: []byte("Hello world"),
})
t.Logf("Inserted %v", i)
}
// Wait for inserts to complete..
2021-05-07 18:36:34 +00:00
messages := db.FetchMessages()
for _, message := range messages {
t.Logf("Message: %v", message)
2021-05-07 18:36:34 +00:00
}
2021-05-07 20:43:15 +00:00
if len(messages) != numMessages {
t.Fatalf("Incorrect number of messages returned")
2021-05-07 18:36:34 +00:00
}
2021-05-07 20:43:15 +00:00
t.Logf("Testing FetchMessagesFrom...")
numToFetch := numMessages / 2
buf := make([]byte, 4)
binary.PutUvarint(buf, uint64(numToFetch))
sig := append([]byte("Hello world"), buf...)
messages = db.FetchMessagesFrom(sig)
for _, message := range messages {
t.Logf("Message: %v", message)
}
if len(messages) != numToFetch {
t.Fatalf("Incorrect number of messages returned : %v", len(messages))
}
db.Close()
2021-05-07 18:36:34 +00:00
}