MCPcopy Index your code
hub / github.com/CovenantSQL/CovenantSQL / TestIssueKeys

Function TestIssueKeys

types/issuekeys_test.go:29–83  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

27)
28
29func TestIssueKeys(t *testing.T) {
30 Convey("test IssueKeys", t, func() {
31 var (
32 err error
33 privKey1 *asymmetric.PrivateKey
34 privKey3 *asymmetric.PrivateKey
35 addr1 proto.AccountAddress
36 addr3 proto.AccountAddress
37 )
38
39 // Create key pairs and addresses for test
40 privKey1, _, err = asymmetric.GenSecp256k1KeyPair()
41 So(err, ShouldBeNil)
42 privKey3, _, err = asymmetric.GenSecp256k1KeyPair()
43 So(err, ShouldBeNil)
44 addr1, err = crypto.PubKeyHash(privKey1.PubKey())
45 So(err, ShouldBeNil)
46 addr3, err = crypto.PubKeyHash(privKey3.PubKey())
47 So(err, ShouldBeNil)
48
49 ik1 := &IssueKeys{}
50 err = ik1.Sign(privKey1)
51 So(err, ShouldBeNil)
52 err = ik1.Verify()
53 So(err, ShouldBeNil)
54 addr := ik1.GetAccountAddress()
55 So(addr, ShouldEqual, addr1)
56 nonce := ik1.GetAccountNonce()
57 So(nonce, ShouldEqual, 0)
58
59 ik2 := NewIssueKeys(
60 &IssueKeysHeader{
61 TargetSQLChain: addr1,
62 Nonce: 3,
63 },
64 )
65 err = ik2.Sign(privKey3)
66 So(err, ShouldBeNil)
67 err = ik2.Verify()
68 So(err, ShouldBeNil)
69 addr = ik2.GetAccountAddress()
70 So(addr, ShouldEqual, addr3)
71 nonce = ik2.GetAccountNonce()
72 So(nonce, ShouldEqual, 3)
73
74 var nilAddr proto.AccountAddress
75 ik3 := &IssueKeys{}
76 err = ik3.Verify()
77 So(err, ShouldNotBeNil)
78 addr = ik3.GetAccountAddress()
79 So(addr, ShouldEqual, nilAddr)
80 nonce = ik3.GetAccountNonce()
81 So(nonce, ShouldEqual, 0)
82 })
83}

Callers

nothing calls this directly

Calls 8

SignMethod · 0.95
VerifyMethod · 0.95
GetAccountAddressMethod · 0.95
GenSecp256k1KeyPairFunction · 0.92
PubKeyHashFunction · 0.92
NewIssueKeysFunction · 0.85
PubKeyMethod · 0.80
GetAccountNonceMethod · 0.65

Tested by

no test coverage detected