(t *testing.T)
| 27 | ) |
| 28 | |
| 29 | func 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 | } |
nothing calls this directly
no test coverage detected