Skip to content
Snippets Groups Projects
Commit d3a372cd authored by Jake Taylor's avatar Jake Taylor
Browse files

add unit test

parent f5371459
No related branches found
No related tags found
No related merge requests found
......@@ -32,3 +32,5 @@ localdev_*
.*test*
*.1
*.2
# Ignore temp files
*.bak
////////////////////////////////////////////////////////////////////////////////
// Copyright © 2020 Privategrity Corporation /
// /
// All rights reserved. /
////////////////////////////////////////////////////////////////////////////////
// Code generated by go generate; DO NOT EDIT.
// This file was generated by robots at
// 2020-08-06 10:52:35.96635741 -0700 PDT m=+0.008615574
// 2020-08-06 13:38:20.0089 -0700 PDT m=+0.031406132
package globals
const GITVERSION = `d97700f Merge branch 'XX-2418/ClientStorage-Registration' of gitlab.com:elixxir/client into XX-2418/ClientStorage-Registration`
const GITVERSION = `f537145 Merge branch 'Optimus/ClientStorage' into XX-2415/NodeKeys`
const SEMVER = "1.4.0"
const DEPENDENCIES = `module gitlab.com/elixxir/client
......
......@@ -10,11 +10,11 @@ package storage
import (
"encoding/json"
"gitlab.com/elixxir/client/user"
"gitlab.com/elixxir/client/globals"
"gitlab.com/elixxir/client/user"
"gitlab.com/elixxir/ekv"
"gitlab.com/elixxir/primitives/id"
"gitlab.com/xx_network/comms/connect"
"gitlab.com/xx_network/primitives/id"
"testing"
"time"
)
......@@ -70,13 +70,33 @@ func (s *Session) SetLastMessageId(id string) error {
}
// Helper for obtaining NodeKeys map
func (s *Session) getNodeKeys() (map[id.ID]user.NodeKeys, error) {
v, err := s.kv.Get("NodeKeys")
func (s *Session) getNodeKeys() (map[string]user.NodeKeys, error) {
key := "NodeKeys"
var nodeKeys map[string]user.NodeKeys
v, err := s.kv.Get(key)
if err != nil {
return nil, err
ts, err := time.Now().MarshalText()
if err != nil {
return nil, err
}
nodeKeys = make(map[string]user.NodeKeys)
data, err := json.Marshal(nodeKeys)
if err != nil {
return nil, err
}
vo := &VersionedObject{
Timestamp: ts,
Data: data,
}
err = s.kv.Set(key, vo)
if err != nil {
return nil, err
}
return nodeKeys, nil
}
var nodeKeys map[id.ID]user.NodeKeys
err = json.Unmarshal(v.Data, &nodeKeys)
return nodeKeys, err
}
......@@ -90,7 +110,7 @@ func (s *Session) GetNodeKeys(topology *connect.Circuit) ([]user.NodeKeys, error
keys := make([]user.NodeKeys, topology.Len())
for i := 0; i < topology.Len(); i++ {
keys[i] = nodeKeys[*topology.GetNodeAtIndex(i)]
keys[i] = nodeKeys[topology.GetNodeAtIndex(i).String()]
}
return keys, nil
......@@ -105,7 +125,7 @@ func (s *Session) PushNodeKey(id *id.ID, key user.NodeKeys) error {
}
// Set new value inside of map
nodeKeys[*id] = key
nodeKeys[id.String()] = key
// Marshal the map
pushValue, err := json.Marshal(nodeKeys)
......
......@@ -8,13 +8,17 @@ package storage
import (
"bytes"
"gitlab.com/elixxir/client/user"
"gitlab.com/elixxir/crypto/cyclic"
"gitlab.com/elixxir/crypto/large"
"gitlab.com/xx_network/comms/connect"
"gitlab.com/xx_network/primitives/id"
"os"
"testing"
"time"
)
// Smoke test for session object init/set/get methods
func TestSession_Smoke(t *testing.T) {
func initTest(t *testing.T) *Session {
err := os.RemoveAll(".session_testdir")
if err != nil {
t.Errorf(err.Error())
......@@ -24,6 +28,12 @@ func TestSession_Smoke(t *testing.T) {
t.Log(s)
t.Errorf("failed to init: %+v", err)
}
return s
}
// Smoke test for session object init/set/get methods
func TestSession_Smoke(t *testing.T) {
s := initTest(t)
ts, err := time.Now().MarshalText()
if err != nil {
......@@ -54,17 +64,9 @@ func TestSession_Smoke(t *testing.T) {
func TestSession_GetSetLastMessageId(t *testing.T) {
testId := "testLastMessageId"
err := os.RemoveAll(".session_testdir")
if err != nil {
t.Errorf(err.Error())
}
s, err := Init(".session_testdir", "test")
if err != nil {
t.Log(s)
t.Errorf("failed to init: %+v", err)
}
s := initTest(t)
err = s.SetLastMessageId(testId)
err := s.SetLastMessageId(testId)
if err != nil {
t.Errorf("Failed to set LastMessageId: %+v", err)
}
......@@ -77,3 +79,32 @@ func TestSession_GetSetLastMessageId(t *testing.T) {
t.Errorf("Failed to get LastMessageID, Got %s Expected %s", o, testId)
}
}
// Happy path for getting/setting node keys
func TestSession_GetPushNodeKeys(t *testing.T) {
s := initTest(t)
testId := id.NewIdFromString("test", id.Node, t)
testId2 := id.NewIdFromString("test2", id.Node, t)
testInt := cyclic.NewGroup(large.NewIntFromUInt(6), large.NewIntFromUInt(6)).NewInt(1)
testNodeKey := user.NodeKeys{
TransmissionKey: testInt,
ReceptionKey: testInt,
}
err := s.PushNodeKey(testId, testNodeKey)
if err != nil {
t.Errorf("Unable to push node key: %+v", err)
}
err = s.PushNodeKey(testId2, testNodeKey)
if err != nil {
t.Errorf("Unable to push node key: %+v", err)
}
circ := connect.NewCircuit([]*id.ID{testId, testId2})
results, err := s.GetNodeKeys(circ)
if len(results) != 2 {
t.Errorf("Returned unexpected number of node keys: %d", len(results))
}
}
// Code generated by go generate; DO NOT EDIT.
// This file was generated by robots at
// 2020-08-06 10:52:35.96635741 -0700 PDT m=+0.008615574
package cmd
const GITVERSION = `d97700f Merge branch 'XX-2418/ClientStorage-Registration' of gitlab.com:elixxir/client into XX-2418/ClientStorage-Registration`
const SEMVER = "1.4.0"
const DEPENDENCIES = `module gitlab.com/elixxir/client
go 1.13
require (
github.com/golang-collections/collections v0.0.0-20130729185459-604e922904d3
github.com/golang/protobuf v1.4.2
github.com/gopherjs/gopherjs v0.0.0-20200217142428-fce0ec30dd00 // indirect
github.com/pelletier/go-toml v1.6.0 // indirect
github.com/pkg/errors v0.9.1
github.com/smartystreets/assertions v1.0.1 // indirect
github.com/spf13/afero v1.2.2 // indirect
github.com/spf13/cast v1.3.1 // indirect
github.com/spf13/cobra v1.0.0
github.com/spf13/jwalterweatherman v1.1.0
github.com/spf13/pflag v1.0.5 // indirect
github.com/spf13/viper v1.6.2
gitlab.com/elixxir/comms v0.0.0-20200805174832-240bba97beaa
gitlab.com/elixxir/crypto v0.0.0-20200805174804-bdf909f2a16d
gitlab.com/elixxir/ekv v0.1.1
gitlab.com/elixxir/primitives v0.0.0-20200805174810-86b366d1dd2d
gitlab.com/xx_network/comms v0.0.0-20200805174823-841427dd5023
gitlab.com/xx_network/primitives v0.0.0-20200804183002-f99f7a7284da
golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de
golang.org/x/sys v0.0.0-20200806125547-5acd03effb82 // indirect
gopkg.in/ini.v1 v1.52.0 // indirect
)
replace google.golang.org/grpc => github.com/grpc/grpc-go v1.27.1
`
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment