Skip to content

Commit

Permalink
certificate-authority: Enable the deletion of multiple signing records
Browse files Browse the repository at this point in the history
  • Loading branch information
jkralik committed Mar 4, 2024
1 parent db43d18 commit 4546c6e
Show file tree
Hide file tree
Showing 2 changed files with 52 additions and 37 deletions.
2 changes: 1 addition & 1 deletion certificate-authority/store/mongodb/signingRecords.go
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ func (s *Store) DeleteSigningRecords(ctx context.Context, owner string, query *s
IdFilter: query.GetIdFilter(),
DeviceIdFilter: query.GetDeviceIdFilter(),
}
res, err := s.Collection(signingRecordsCol).DeleteOne(ctx, toSigningRecordsQueryFilter(owner, &q))
res, err := s.Collection(signingRecordsCol).DeleteMany(ctx, toSigningRecordsQueryFilter(owner, &q))
if err != nil {
return -1, multierror.Append(ErrCannotRemoveSigningRecord, err)
}
Expand Down
87 changes: 51 additions & 36 deletions certificate-authority/store/mongodb/signingRecords_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -103,11 +103,28 @@ func TestStoreUpdateSigningRecord(t *testing.T) {
}
}

func TestStoreDeleteSigningRecord(t *testing.T) {
const id1 = "9d017fad-2961-4fcc-94a9-1e1291a88ffc"
deviceID1 := hubTest.GenerateDeviceIDbyIdx(1)
const id2 = "9d017fad-2961-4fcc-94a9-1e1291a88ffd"
deviceID2 := hubTest.GenerateDeviceIDbyIdx(2)
func TestStoreDeleteSigningRecords(t *testing.T) {
records := []struct {
id string
deviceID string
}{
{
id: "9d017fad-2961-4fcc-94a9-1e1291a88ffc",
deviceID: hubTest.GenerateDeviceIDbyIdx(1),
},
{
id: "9d017fad-2961-4fcc-94a9-1e1291a88ffd",
deviceID: hubTest.GenerateDeviceIDbyIdx(2),
},
{
id: "9d017fad-2961-4fcc-94a9-1e1291a88ffe",
deviceID: hubTest.GenerateDeviceIDbyIdx(3),
},
{
id: "9d017fad-2961-4fcc-94a9-1e1291a88fff",
deviceID: hubTest.GenerateDeviceIDbyIdx(4),
},
}
const owner = "owner"
type args struct {
owner string
Expand All @@ -134,7 +151,7 @@ func TestStoreDeleteSigningRecord(t *testing.T) {
args: args{
owner: "owner1",
query: &store.DeleteSigningRecordsQuery{
IdFilter: []string{id1},
IdFilter: []string{records[0].id},
},
},
want: 0,
Expand All @@ -144,7 +161,7 @@ func TestStoreDeleteSigningRecord(t *testing.T) {
args: args{
owner: owner,
query: &store.DeleteSigningRecordsQuery{
DeviceIdFilter: []string{deviceID1},
DeviceIdFilter: []string{records[0].deviceID},
},
},
want: 1,
Expand All @@ -154,11 +171,21 @@ func TestStoreDeleteSigningRecord(t *testing.T) {
args: args{
owner: owner,
query: &store.DeleteSigningRecordsQuery{
IdFilter: []string{id2},
IdFilter: []string{records[1].id},
},
},
want: 1,
},
{
name: "multiple ids",
args: args{
owner: owner,
query: &store.DeleteSigningRecordsQuery{
IdFilter: []string{records[2].id, records[3].id},
},
},
want: 2,
},
{
name: "valid - empty",
args: args{
Expand All @@ -173,34 +200,22 @@ func TestStoreDeleteSigningRecord(t *testing.T) {
defer cleanUpStore()

ctx := context.Background()
err := s.CreateSigningRecord(ctx, &store.SigningRecord{
Id: id1,
Owner: owner,
CommonName: "commonName",
PublicKey: "publicKey",
DeviceId: deviceID1,
CreationDate: constDate().UnixNano(),
Credential: &pb.CredentialStatus{
CertificatePem: "certificate",
Date: constDate().UnixNano(),
ValidUntilDate: constDate().UnixNano(),
},
})
require.NoError(t, err)
err = s.CreateSigningRecord(ctx, &store.SigningRecord{
Id: id2,
Owner: owner,
CommonName: "commonName",
PublicKey: "publicKey",
DeviceId: deviceID2,
CreationDate: constDate().UnixNano(),
Credential: &pb.CredentialStatus{
CertificatePem: "certificate",
Date: constDate().UnixNano(),
ValidUntilDate: constDate().UnixNano(),
},
})
require.NoError(t, err)
for _, r := range records {
err := s.CreateSigningRecord(ctx, &store.SigningRecord{
Id: r.id,
Owner: owner,
CommonName: "commonName",
PublicKey: "publicKey",
DeviceId: r.deviceID,
CreationDate: constDate().UnixNano(),
Credential: &pb.CredentialStatus{
CertificatePem: "certificate",
Date: constDate().UnixNano(),
ValidUntilDate: constDate().UnixNano(),
},
})
require.NoError(t, err)
}

for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
Expand Down

0 comments on commit 4546c6e

Please sign in to comment.