Skip to content

Commit a235bc0

Browse files
committed
Tests Refactoring
1 parent 76cace6 commit a235bc0

14 files changed

+535
-346
lines changed

x/pki/keeper/rejected_certificate.go

+14
Original file line numberDiff line numberDiff line change
@@ -66,3 +66,17 @@ func (k Keeper) GetAllRejectedCertificate(ctx sdk.Context) (list []types.Rejecte
6666

6767
return
6868
}
69+
70+
// Check if the rejected certificate exists.
71+
func (k Keeper) IsRejectedCertificatePresent(
72+
ctx sdk.Context,
73+
subject string,
74+
subjectKeyID string,
75+
) bool {
76+
store := prefix.NewStore(ctx.KVStore(k.storeKey), pkitypes.KeyPrefix(types.RejectedCertificateKeyPrefix))
77+
78+
return store.Has(types.RejectedCertificateKey(
79+
subject,
80+
subjectKeyID,
81+
))
82+
}

x/pki/tests/handler_add_noc_ica_cert_test.go

+15-17
Original file line numberDiff line numberDiff line change
@@ -14,40 +14,38 @@ import (
1414

1515
// Main
1616

17-
func TestHandler_AddNocX509Cert_AddNewIca(t *testing.T) {
17+
func TestHandler_AddNocIntermediateCert(t *testing.T) {
1818
setup := Setup(t)
1919

20-
accAddress := GenerateAccAddress()
21-
vid := testconstants.Vid
22-
setup.AddAccount(accAddress, []dclauthtypes.AccountRole{dclauthtypes.Vendor}, vid)
20+
accAddress := setup.CreateVendorAccount(testconstants.Vid)
2321

2422
// add NOC root certificate
2523
addNocRootCertificate(setup, accAddress, testconstants.NocRootCert1)
2624

2725
// add NOC ICA certificate
28-
addNocIcaCertificate(setup, accAddress, testconstants.NocCert1)
26+
addNocIntermediateCertificate(setup, accAddress, testconstants.NocCert1)
2927

3028
// Check: Noc + All + UniqueCertificate
31-
ensureNocIcaCertificateExist(
29+
ensureNocIntermediateCertificateExist(
3230
t,
3331
setup,
3432
testconstants.NocCert1Subject,
3533
testconstants.NocCert1SubjectKeyID,
3634
testconstants.NocCert1Issuer,
3735
testconstants.NocCert1SerialNumber,
38-
vid,
39-
false)
36+
testconstants.Vid,
37+
false,
38+
)
4039

4140
// ChildCertificates: check that child certificates of issuer contains certificate identifier
42-
issuerChildren, _ := queryChildCertificates(
43-
setup, testconstants.NocRootCert1Subject, testconstants.NocRootCert1SubjectKeyID)
44-
require.Equal(t, 1, len(issuerChildren.CertIds))
45-
require.Equal(t,
46-
&types.CertificateIdentifier{
47-
Subject: testconstants.NocCert1Subject,
48-
SubjectKeyId: testconstants.NocCert1SubjectKeyID,
49-
},
50-
issuerChildren.CertIds[0])
41+
ensureChildCertificateExist(
42+
t,
43+
setup,
44+
testconstants.NocRootCert1Subject,
45+
testconstants.NocRootCert1SubjectKeyID,
46+
testconstants.NocCert1Subject,
47+
testconstants.NocCert1SubjectKeyID,
48+
)
5149
}
5250

5351
// Extra cases

x/pki/tests/handler_add_noc_root_cert_test.go

+3-5
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,10 @@ import (
1313

1414
// Main
1515

16-
func TestHandler_AddNocX509Cert_AddNewRoot(t *testing.T) {
16+
func TestHandler_AddNocRootCert(t *testing.T) {
1717
setup := Setup(t)
1818

19-
accAddress := GenerateAccAddress()
20-
vid := testconstants.Vid
21-
setup.AddAccount(accAddress, []dclauthtypes.AccountRole{dclauthtypes.Vendor}, vid)
19+
accAddress := setup.CreateVendorAccount(testconstants.Vid)
2220

2321
// add NOC root certificate
2422
addNocRootCertificate(setup, accAddress, testconstants.NocRootCert1)
@@ -31,7 +29,7 @@ func TestHandler_AddNocX509Cert_AddNewRoot(t *testing.T) {
3129
testconstants.NocRootCert1SubjectKeyID,
3230
testconstants.NocCert1Issuer,
3331
testconstants.NocRootCert1SerialNumber,
34-
vid)
32+
testconstants.Vid)
3533
}
3634

3735
// Extra cases

x/pki/tests/handler_add_paa_cert_test.go

+125-48
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,21 @@ import (
1818

1919
// Main
2020

21-
func TestHandler_ProposeAddX509RootCert_ByTrustee(t *testing.T) {
21+
func TestHandler_ProposeAddDaRootCert(t *testing.T) {
2222
setup := Setup(t)
2323

24-
// propose x509 root certificate
25-
proposeAddX509RootCert := types.NewMsgProposeAddX509RootCert(setup.Trustee1.String(), testconstants.RootCertPem, testconstants.Info, testconstants.Vid, testconstants.CertSchemaVersion)
24+
// propose DA root certificate
25+
proposeAddX509RootCert := types.NewMsgProposeAddX509RootCert(
26+
setup.Trustee1.String(),
27+
testconstants.RootCertPem,
28+
testconstants.Info,
29+
testconstants.Vid,
30+
testconstants.CertSchemaVersion,
31+
)
2632
_, err := setup.Handler(setup.Ctx, proposeAddX509RootCert)
2733
require.NoError(t, err)
2834

29-
// query proposed certificate
35+
// Check: ProposedCertificate - present
3036
proposedCertificate, _ := queryProposedCertificate(setup, testconstants.RootSubject, testconstants.RootSubjectKeyID)
3137
require.Equal(t, proposeAddX509RootCert.Cert, proposedCertificate.PemCert)
3238
require.Equal(t, proposeAddX509RootCert.Signer, proposedCertificate.Owner)
@@ -35,43 +41,68 @@ func TestHandler_ProposeAddX509RootCert_ByTrustee(t *testing.T) {
3541
require.Equal(t, testconstants.RootSerialNumber, proposedCertificate.SerialNumber)
3642
require.True(t, proposedCertificate.HasApprovalFrom(proposeAddX509RootCert.Signer))
3743

38-
// check that unique certificate key is registered
44+
// Check: UniqueCertificate - present
3945
require.True(t, setup.Keeper.IsUniqueCertificatePresent(
4046
setup.Ctx, testconstants.RootIssuer, testconstants.RootSerialNumber))
4147

42-
// query approved certificate
43-
_, err = querySingleApprovedCertificate(setup, testconstants.RootSubject, testconstants.RootSubjectKeyID)
44-
require.Error(t, err)
45-
require.Equal(t, codes.NotFound, status.Code(err))
48+
// Check: RejectedCertificate - empty
49+
require.False(t, setup.Keeper.IsRejectedCertificatePresent(
50+
setup.Ctx, testconstants.RootSubject, testconstants.RootSubjectKeyID))
4651

47-
// query approved certificate
48-
_, err = querySingleCertificateFromAllCertificatesIndex(setup, testconstants.RootSubject, testconstants.RootSubjectKeyID)
49-
require.Error(t, err)
50-
require.Equal(t, codes.NotFound, status.Code(err))
52+
// Check: Approved DA - empty
53+
ensureCertificateNotPresentInDaCertificateIndexes(
54+
t,
55+
setup,
56+
testconstants.RootSubject,
57+
testconstants.RootSubjectKeyID,
58+
true,
59+
false,
60+
)
61+
62+
// Check: Global - empty
63+
ensureGlobalCertificateNotExist(
64+
t,
65+
setup,
66+
testconstants.RootSubject,
67+
testconstants.RootSubjectKeyID,
68+
false,
69+
)
5170
}
5271

53-
func TestHandler_ApproveAddX509RootCert_ForEnoughApprovals(t *testing.T) {
72+
func TestHandler_AddDaRootCert(t *testing.T) {
5473
setup := Setup(t)
5574

5675
// propose add x509 root certificate by trustee
57-
proposeAddX509RootCert := types.NewMsgProposeAddX509RootCert(setup.Trustee1.String(), testconstants.RootCertPem, testconstants.Info, testconstants.Vid, testconstants.CertSchemaVersion)
76+
proposeAddX509RootCert := types.NewMsgProposeAddX509RootCert(
77+
setup.Trustee1.String(),
78+
testconstants.RootCertPem,
79+
testconstants.Info,
80+
testconstants.Vid,
81+
testconstants.CertSchemaVersion,
82+
)
5883
_, err := setup.Handler(setup.Ctx, proposeAddX509RootCert)
5984
require.NoError(t, err)
6085

6186
// approve by second trustee
6287
approveAddX509RootCert := types.NewMsgApproveAddX509RootCert(
63-
setup.Trustee2.String(), testconstants.RootSubject, testconstants.RootSubjectKeyID, testconstants.Info)
88+
setup.Trustee2.String(),
89+
testconstants.RootSubject,
90+
testconstants.RootSubjectKeyID,
91+
testconstants.Info,
92+
)
6493
_, err = setup.Handler(setup.Ctx, approveAddX509RootCert)
6594
require.NoError(t, err)
6695

67-
// DA proposed certificates indexes checks
68-
// query proposed certificate must be empty
69-
_, err = queryProposedCertificate(setup, testconstants.RootSubject, testconstants.RootSubjectKeyID)
70-
require.Error(t, err)
71-
require.Equal(t, codes.NotFound, status.Code(err))
96+
// Check: ProposedCertificate - empty
97+
require.False(t, setup.Keeper.IsProposedCertificatePresent(
98+
setup.Ctx, testconstants.RootSubject, testconstants.RootSubjectKeyID))
99+
100+
// Check: UniqueCertificate - present
101+
require.True(t, setup.Keeper.IsUniqueCertificatePresent(
102+
setup.Ctx, testconstants.RootIssuer, testconstants.RootSerialNumber))
72103

73-
// Check that root certificate exists
74-
ensureDaPaaCertificateExist(
104+
// Check: DA + All + UniqueCertificate
105+
ensureDaRootCertificateExist(
75106
t,
76107
setup,
77108
testconstants.RootSubject,
@@ -80,11 +111,17 @@ func TestHandler_ApproveAddX509RootCert_ForEnoughApprovals(t *testing.T) {
80111
testconstants.RootSerialNumber)
81112
}
82113

83-
func TestHandler_TwoThirdApprovalsNeededForAddingRootCertification(t *testing.T) {
114+
func TestHandler_AddDaRootCert_TwoThirdApprovalsNeeded(t *testing.T) {
84115
setup := Setup(t)
85116

86117
// propose x509 root certificate by account without trustee role
87-
proposeAddX509RootCert := types.NewMsgProposeAddX509RootCert(setup.Trustee1.String(), testconstants.RootCertPem, testconstants.Info, testconstants.Vid, testconstants.CertSchemaVersion)
118+
proposeAddX509RootCert := types.NewMsgProposeAddX509RootCert(
119+
setup.Trustee1.String(),
120+
testconstants.RootCertPem,
121+
testconstants.Info,
122+
testconstants.Vid,
123+
testconstants.CertSchemaVersion,
124+
)
88125
_, err := setup.Handler(setup.Ctx, proposeAddX509RootCert)
89126
require.NoError(t, err)
90127

@@ -105,7 +142,11 @@ func TestHandler_TwoThirdApprovalsNeededForAddingRootCertification(t *testing.T)
105142
// Until we hit 2/3 of the total number of Trustees, we should not be able to approve the certificate
106143
for i := 1; i < twoThirds-1; i++ {
107144
approveAddX509RootCert := types.NewMsgApproveAddX509RootCert(
108-
trusteeAccounts[i].String(), testconstants.RootSubject, testconstants.RootSubjectKeyID, testconstants.Info)
145+
trusteeAccounts[i].String(),
146+
testconstants.RootSubject,
147+
testconstants.RootSubjectKeyID,
148+
testconstants.Info,
149+
)
109150
_, err = setup.Handler(setup.Ctx, approveAddX509RootCert)
110151
require.NoError(t, err)
111152

@@ -120,16 +161,25 @@ func TestHandler_TwoThirdApprovalsNeededForAddingRootCertification(t *testing.T)
120161
_, err = setup.Handler(setup.Ctx, approveAddX509RootCert)
121162
require.NoError(t, err)
122163

123-
// Check that root certificate exists
124-
ensureDaPaaCertificateExist(
164+
// Check: ProposedCertificate - empty
165+
require.False(t, setup.Keeper.IsProposedCertificatePresent(
166+
setup.Ctx, testconstants.RootSubject, testconstants.RootSubjectKeyID))
167+
168+
// Check: UniqueCertificate - present
169+
require.True(t, setup.Keeper.IsUniqueCertificatePresent(
170+
setup.Ctx, testconstants.RootIssuer, testconstants.RootSerialNumber))
171+
172+
// Check: DA + All + UniqueCertificate
173+
ensureDaRootCertificateExist(
125174
t,
126175
setup,
127176
testconstants.RootSubject,
128177
testconstants.RootSubjectKeyID,
129178
testconstants.RootIssuer,
130-
testconstants.RootSerialNumber)
179+
testconstants.RootSerialNumber,
180+
)
131181

132-
// query approved certificate and we should get one back
182+
// Check: Approvals
133183
approvedCertificate, _ := querySingleApprovedCertificate(setup, testconstants.RootSubject, testconstants.RootSubjectKeyID)
134184
require.Equal(t, testconstants.RootIssuer, approvedCertificate.Subject)
135185
require.Equal(t, testconstants.RootSerialNumber, approvedCertificate.SerialNumber)
@@ -142,7 +192,7 @@ func TestHandler_TwoThirdApprovalsNeededForAddingRootCertification(t *testing.T)
142192
require.Equal(t, approvedCertificate.HasApprovalFrom(setup.Trustee2.String()), true)
143193
}
144194

145-
func TestHandler_ApproveX509RootCert_FourApprovalsAreNeeded_FiveTrustees(t *testing.T) {
195+
func TestHandler_AddDaRootCert_FourApprovalsAreNeeded_FiveTrustees(t *testing.T) {
146196
setup := Setup(t)
147197

148198
// we have 5 trustees: 1 approval comes from propose => we need 3 more approvals
@@ -156,43 +206,70 @@ func TestHandler_ApproveX509RootCert_FourApprovalsAreNeeded_FiveTrustees(t *test
156206
setup.AddAccount(fifthTrustee, []dclauthtypes.AccountRole{dclauthtypes.Trustee}, 1)
157207

158208
// propose x509 root certificate by account Trustee1
159-
proposeAddX509RootCert := types.NewMsgProposeAddX509RootCert(setup.Trustee1.String(), testconstants.RootCertPem, testconstants.Info, testconstants.Vid, testconstants.CertSchemaVersion)
209+
proposeAddX509RootCert := types.NewMsgProposeAddX509RootCert(
210+
setup.Trustee1.String(),
211+
testconstants.RootCertPem,
212+
testconstants.Info,
213+
testconstants.Vid,
214+
testconstants.CertSchemaVersion,
215+
)
160216
_, err := setup.Handler(setup.Ctx, proposeAddX509RootCert)
161217
require.NoError(t, err)
162218

163219
// approve x509 root certificate by account Trustee2
164-
approveAddX509RootCert := types.NewMsgApproveAddX509RootCert(setup.Trustee2.String(), testconstants.RootSubject, testconstants.RootSubjectKeyID, testconstants.Info)
220+
approveAddX509RootCert := types.NewMsgApproveAddX509RootCert(
221+
setup.Trustee2.String(),
222+
testconstants.RootSubject,
223+
testconstants.RootSubjectKeyID,
224+
testconstants.Info,
225+
)
165226
_, err = setup.Handler(setup.Ctx, approveAddX509RootCert)
166227
require.NoError(t, err)
167228

168229
// approve x509 root certificate by account Trustee3
169-
approveAddX509RootCert = types.NewMsgApproveAddX509RootCert(setup.Trustee3.String(), testconstants.RootSubject, testconstants.RootSubjectKeyID, testconstants.Info)
230+
approveAddX509RootCert = types.NewMsgApproveAddX509RootCert(
231+
setup.Trustee3.String(),
232+
testconstants.RootSubject,
233+
testconstants.RootSubjectKeyID,
234+
testconstants.Info,
235+
)
170236
_, err = setup.Handler(setup.Ctx, approveAddX509RootCert)
171237
require.NoError(t, err)
172238

173239
// reject x509 root certificate by account Trustee4
174-
rejectAddX509RootCert := types.NewMsgRejectAddX509RootCert(fourthTrustee.String(), testconstants.RootSubject, testconstants.RootSubjectKeyID, testconstants.Info)
240+
rejectAddX509RootCert := types.NewMsgRejectAddX509RootCert(
241+
fourthTrustee.String(),
242+
testconstants.RootSubject,
243+
testconstants.RootSubjectKeyID,
244+
testconstants.Info,
245+
)
175246
_, err = setup.Handler(setup.Ctx, rejectAddX509RootCert)
176247
require.NoError(t, err)
177248

178-
// certificate should be in the entity <Proposed X509 Root Certificate>, because we haven't enough approvals
179-
proposedCertificate, err := queryProposedCertificate(setup, testconstants.RootSubject, testconstants.RootSubjectKeyID)
180-
require.NoError(t, err)
181-
182-
// check proposed certificate
183-
require.Equal(t, proposeAddX509RootCert.Cert, proposedCertificate.PemCert)
184-
require.Equal(t, proposeAddX509RootCert.Signer, proposedCertificate.Owner)
185-
require.Equal(t, testconstants.RootSubject, proposedCertificate.Subject)
186-
require.Equal(t, testconstants.RootSubjectKeyID, proposedCertificate.SubjectKeyId)
187-
require.Equal(t, testconstants.RootSerialNumber, proposedCertificate.SerialNumber)
249+
// Check: ProposedCertificate - present because we haven't enough approvals
250+
require.True(t, setup.Keeper.IsProposedCertificatePresent(
251+
setup.Ctx, testconstants.RootSubject, testconstants.RootSubjectKeyID))
188252

189253
// approve x509 root certificate by account Trustee5
190-
approveAddX509RootCert = types.NewMsgApproveAddX509RootCert(fifthTrustee.String(), testconstants.RootSubject, testconstants.RootSubjectKeyID, testconstants.Info)
254+
approveAddX509RootCert = types.NewMsgApproveAddX509RootCert(
255+
fifthTrustee.String(),
256+
testconstants.RootSubject,
257+
testconstants.RootSubjectKeyID,
258+
testconstants.Info,
259+
)
191260
_, err = setup.Handler(setup.Ctx, approveAddX509RootCert)
192261
require.NoError(t, err)
193262

194-
// certificate should be in the entity <X509 Root Certificate>, because we have enough approvals
195-
ensureDaPaaCertificateExist(
263+
// Check: ProposedCertificate - empty
264+
require.False(t, setup.Keeper.IsProposedCertificatePresent(
265+
setup.Ctx, testconstants.RootSubject, testconstants.RootSubjectKeyID))
266+
267+
// Check: UniqueCertificate - present
268+
require.True(t, setup.Keeper.IsUniqueCertificatePresent(
269+
setup.Ctx, testconstants.RootIssuer, testconstants.RootSerialNumber))
270+
271+
// Check: DA + All + UniqueCertificate
272+
ensureDaRootCertificateExist(
196273
t,
197274
setup,
198275
testconstants.RootSubject,

0 commit comments

Comments
 (0)