Skip to content
Snippets Groups Projects
Commit 45c3fc87 authored by Josh Brooks's avatar Josh Brooks
Browse files

Add some tests to e2e/

parent 06c2c4f0
No related branches found
No related tags found
3 merge requests!510Release,!207WIP: Client Restructure,!203Symmetric broadcast
......@@ -263,11 +263,6 @@ func (m *Manager) TriggerNegotiations() []*session.Session {
return m.send.TriggerNegotiation()
}
// IsTemporary returns if this manager stores to disk or only in ram
func (m *Manager) IsTemporary() bool {
return m.kv.IsMemStore()
}
func (m *Manager) GetMyOriginPrivateKey() *cyclic.Int {
return m.originMyPrivKey.DeepCopy()
}
......
package partner
import (
"gitlab.com/xx_network/primitives/id"
"math/rand"
"testing"
)
// ManagerIdentity.GetMe unit test
func TestManagerIdentity_GetMe(t *testing.T) {
partnerID := id.NewIdFromUInt(rand.Uint64(), id.User, t)
myId := id.NewIdFromUInt(rand.Uint64(), id.User, t)
mid := MakeManagerIdentity(partnerID, myId)
if !myId.Cmp(mid.GetMe()) {
t.Fatalf("GetMe did not retrieve expected data."+
"\nExpected: %v"+
"\nReceived: %v", myId, mid.GetMe())
}
}
// ManagerIdentity.GetPartner unit test
func TestManagerIdentity_GetPartner(t *testing.T) {
partnerID := id.NewIdFromUInt(rand.Uint64(), id.User, t)
myId := id.NewIdFromUInt(rand.Uint64(), id.User, t)
mid := MakeManagerIdentity(partnerID, myId)
if !partnerID.Cmp(mid.GetPartner()) {
t.Fatalf("GetPartner did not retrieve expected data."+
"\nExpected: %v"+
"\nReceived: %v", partnerID, mid.GetPartner())
}
}
......@@ -12,6 +12,7 @@ import (
"encoding/base64"
"github.com/cloudflare/circl/dh/sidh"
"gitlab.com/elixxir/client/e2e/ratchet/partner/session"
"gitlab.com/elixxir/client/network/message"
util "gitlab.com/elixxir/client/storage/utility"
dh "gitlab.com/elixxir/crypto/diffieHellman"
e2eCrypto "gitlab.com/elixxir/crypto/e2e"
......@@ -246,6 +247,20 @@ func TestManager_GetPartnerID(t *testing.T) {
}
}
// Tests happy path of Manager.GetMyID.
func TestManager_GetMyID(t *testing.T) {
myId := id.NewIdFromUInt(rand.Uint64(), id.User, t)
m := &Manager{myID: myId}
receivedMyId := m.GetMyID()
if !myId.Cmp(receivedMyId) {
t.Errorf("GetMyID() returned incorrect partner ID."+
"\n\texpected: %s\n\treceived: %s", myId, receivedMyId)
}
}
// Tests happy path of Manager.GetSendSession.
func TestManager_GetSendSession(t *testing.T) {
m, _ := newTestManager(t)
......@@ -378,3 +393,22 @@ func TestManager_GetRelationshipFingerprint_Consistency(t *testing.T) {
// fmt.Printf("\"%s\",\n", fp) // Uncomment to reprint expected values
}
}
func TestManager_MakeService(t *testing.T) {
m, _ := newTestManager(t)
tag := "hunter2"
expected := message.Service{
Identifier: m.GetRelationshipFingerprintBytes(),
Tag: tag,
Metadata: m.partner[:],
}
received := m.MakeService(tag)
if !reflect.DeepEqual(expected, received) {
t.Fatalf("MakeService returned unexpected data."+
"\nExpected: %v"+
"\nReceived: %v", expected, received)
}
}
......@@ -21,6 +21,7 @@ import (
"gitlab.com/xx_network/primitives/id"
"math/rand"
"reflect"
"sort"
"testing"
)
......@@ -188,6 +189,53 @@ func TestStore_GetPartner(t *testing.T) {
}
}
// Ratchet.GetAllPartnerIDs unit test.
func TestRatchet_GetAllPartnerIDs(t *testing.T) {
// Setup
numTests := 100
expectedPartners := make([]*id.ID, 0, numTests)
rng := csprng.NewSystemRNG()
r, _, err := makeTestRatchet()
if err != nil {
t.Fatalf("Setup error: %v", err)
}
// Generate partners and add them ot the manager
for i := 0; i < numTests; i++ {
partnerID := id.NewIdFromUInt(rand.Uint64(), id.User, t)
partnerPubKey := diffieHellman.GeneratePublicKey(r.defaultDHPrivateKey, r.grp)
p := session.GetDefaultParams()
_, pubSIDHKey := genSidhKeys(rng, sidh.KeyVariantSidhA)
myPrivSIDHKey, _ := genSidhKeys(rng, sidh.KeyVariantSidhB)
_, err := r.AddPartner(r.defaultID, partnerID, r.defaultDHPrivateKey,
partnerPubKey, pubSIDHKey, myPrivSIDHKey, p, p)
if err != nil {
t.Fatalf("AddPartner returned an error: %v", err)
}
expectedPartners = append(expectedPartners, partnerID)
}
receivedPartners := r.GetAllPartnerIDs(r.defaultID)
// Sort these slices as GetAllPartnerIDs iterates over a map, which indices
// at random in Go
sort.SliceStable(receivedPartners, func(i, j int) bool {
return bytes.Compare(receivedPartners[i].Bytes(), receivedPartners[j].Bytes()) == -1
})
sort.SliceStable(expectedPartners, func(i, j int) bool {
return bytes.Compare(expectedPartners[i].Bytes(), expectedPartners[j].Bytes()) == -1
})
if !reflect.DeepEqual(receivedPartners, expectedPartners) {
t.Fatalf("Unexpected data retrieved from GetAllPartnerIDs."+
"\nExpected: %v"+
"\nReceived: %v", expectedPartners, receivedPartners)
}
}
// Tests that Ratchet.GetPartner returns an error for non existent partnerID.
func TestStore_GetPartner_Error(t *testing.T) {
r, _, err := makeTestRatchet()
......
......@@ -104,6 +104,7 @@ func (r *Ratchet) marshal() ([]byte, error) {
}
// In the event an old structure was loaded, unmarshal it and upgrade it
// todo: test this with some old kv data
func (r *Ratchet) unmarshalOld(b []byte) error {
var contacts []id.ID
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment