Files
filou/contract/best_contract_test.go
T

64 lines
1.6 KiB
Go

package contract
import (
"testing"
)
func TestGetBestHash(t *testing.T) {
prvCtr := new(PrivateContract)
pubCtr := new(PublicContract)
pubCtr.AcceptedHashes = []string{"SHA384", "SHA256", "MD5"}
prvCtr.AcceptedHashes = []string{"SHA384", "SHA256"}
if h, err := getBestHash(prvCtr, pubCtr); err != nil {
t.Error(err)
} else if h != "SHA384" {
t.Error("bad choosen hash: ", h)
}
prvCtr.AcceptedHashes = []string{"SHA1", "MD4"}
if h, err := getBestHash(prvCtr, pubCtr); err == nil {
t.Error("should have an error here")
} else if h != "" {
t.Error("should not have choosen any hash function here")
}
}
func TestGetFirstItemInList1ThatIsAlsoInList2(t *testing.T) {
lst1 := []string{"a", "b", "c"}
lst2 := []string{"b", "c"}
if c, err := getFirstItemInList1ThatIsAlsoInList2(lst1, lst2); c != "b" || err != nil {
t.Fail()
}
lst2 = []string{"d", "e"}
if c, err := getFirstItemInList1ThatIsAlsoInList2(lst1, lst2); c != "" || err == nil {
t.Fail()
}
}
func TestGetAcceptedContract(t *testing.T) {
prvCtr := new(PrivateContract)
pubCtr := new(PublicContract)
pubCtr.AcceptedHashes = []string{"SHA384", "SHA256", "MD5"}
prvCtr.AcceptedHashes = []string{"SHA384", "SHA256"}
pubCtr.AcceptedBlockCyphers = []string{"aes", "des"}
prvCtr.AcceptedBlockCyphers = []string{"aes"}
pubCtr.AcceptedBlockCypherModes = []string{"ofb"}
prvCtr.AcceptedBlockCypherModes = []string{"ofb"}
ac, err := GetAcceptedContract(prvCtr, pubCtr)
if err != nil {
t.Error(err)
return
}
if ac.Hash != "SHA384" {
t.Error("bad hash")
}
if ac.BlockCipher != "aes" {
t.Error("bad block cipher")
}
}