From 2c9a0d63318fd4b8ce4afda3ee6cc86758dffe55 Mon Sep 17 00:00:00 2001 From: Diogo Monica Date: Thu, 16 Jul 2015 16:26:35 -0700 Subject: [PATCH] Adding tests to RemoveAll in X509Stores Signed-off-by: Diogo Monica --- trustmanager/x509filestore_test.go | 46 ++++++++++++++++++++++++++++++ trustmanager/x509memstore_test.go | 41 ++++++++++++++++++++++++++ 2 files changed, 87 insertions(+) diff --git a/trustmanager/x509filestore_test.go b/trustmanager/x509filestore_test.go index 37db73edaf..8d4794fc4f 100644 --- a/trustmanager/x509filestore_test.go +++ b/trustmanager/x509filestore_test.go @@ -135,6 +135,52 @@ func TestRemoveCertX509FileStore(t *testing.T) { } } +func TestRemoveAllX509FileStore(t *testing.T) { + tempDir, err := ioutil.TempDir("", "cert-test") + if err != nil { + t.Fatal(err) + } + + // Add three certificates to store + store, _ := NewX509FileStore(tempDir) + certFiles := [3]string{"../fixtures/root-ca.crt", + "../fixtures/intermediate-ca.crt", + "../fixtures/secure.example.com.crt"} + for _, file := range certFiles { + b, err := ioutil.ReadFile(file) + if err != nil { + t.Fatalf("couldn't load fixture: %v", err) + } + var block *pem.Block + block, _ = pem.Decode(b) + + cert, err := x509.ParseCertificate(block.Bytes) + if err != nil { + t.Fatalf("couldn't parse certificate: %v", err) + } + err = store.AddCert(cert) + if err != nil { + t.Fatalf("failed to load certificate: %v", err) + } + } + + // Number of certificates should be 1 since we added the cert + numCerts := len(store.GetCertificates()) + if numCerts != 3 { + t.Fatalf("unexpected number of certificates in store: %d", numCerts) + } + + // Remove the cert from the store + err = store.RemoveAll() + if err != nil { + t.Fatalf("failed to remove all certificates: %v", err) + } + // Number of certificates should be 0 since we added and removed the cert + numCerts = len(store.GetCertificates()) + if numCerts != 0 { + t.Fatalf("unexpected number of certificates in store: %d", numCerts) + } +} func TestInexistentGetCertificateByKeyIDX509FileStore(t *testing.T) { tempDir, err := ioutil.TempDir("", "cert-test") if err != nil { diff --git a/trustmanager/x509memstore_test.go b/trustmanager/x509memstore_test.go index 9560208bb1..6fdd1acc0a 100644 --- a/trustmanager/x509memstore_test.go +++ b/trustmanager/x509memstore_test.go @@ -106,6 +106,47 @@ func TestRemoveCert(t *testing.T) { } } +func TestRemoveAllX509MemStore(t *testing.T) { + // Add three certificates to store + store := NewX509MemStore() + certFiles := [3]string{"../fixtures/root-ca.crt", + "../fixtures/intermediate-ca.crt", + "../fixtures/secure.example.com.crt"} + for _, file := range certFiles { + b, err := ioutil.ReadFile(file) + if err != nil { + t.Fatalf("couldn't load fixture: %v", err) + } + var block *pem.Block + block, _ = pem.Decode(b) + + cert, err := x509.ParseCertificate(block.Bytes) + if err != nil { + t.Fatalf("couldn't parse certificate: %v", err) + } + err = store.AddCert(cert) + if err != nil { + t.Fatalf("failed to load certificate: %v", err) + } + } + + // Number of certificates should be 1 since we added the cert + numCerts := len(store.GetCertificates()) + if numCerts != 3 { + t.Fatalf("unexpected number of certificates in store: %d", numCerts) + } + + // Remove the cert from the store + err := store.RemoveAll() + if err != nil { + t.Fatalf("failed to remove all certificates: %v", err) + } + // Number of certificates should be 0 since we added and removed the cert + numCerts = len(store.GetCertificates()) + if numCerts != 0 { + t.Fatalf("unexpected number of certificates in store: %d", numCerts) + } +} func TestInexistentGetCertificateByCertID(t *testing.T) { store := NewX509MemStore() err := store.AddCertFromFile("../fixtures/root-ca.crt")