1
0
mirror of https://github.com/mainflux/mainflux.git synced 2025-04-27 13:48:49 +08:00
Mainflux.mainflux/certs/certs_test.go

91 lines
2.5 KiB
Go
Raw Normal View History

MF-1699 - Enrich SDK and CLI (#1719) * initial commit update api docs Signed-off-by: rodneyosodo <socials@rodneyosodo.com> Signed-off-by: rodneyosodo <blackd0t@protonmail.com> * initial commit enrich sdk Signed-off-by: rodneyosodo <socials@rodneyosodo.com> Signed-off-by: rodneyosodo <blackd0t@protonmail.com> * initial commit enrich cli Signed-off-by: rodneyosodo <socials@rodneyosodo.com> Signed-off-by: rodneyosodo <blackd0t@protonmail.com> * add consumers test Signed-off-by: rodneyosodo <socials@rodneyosodo.com> Signed-off-by: rodneyosodo <blackd0t@protonmail.com> * remove dead code Signed-off-by: rodneyosodo <socials@rodneyosodo.com> Signed-off-by: rodneyosodo <blackd0t@protonmail.com> * add certs sdk tests Signed-off-by: rodneyosodo <socials@rodneyosodo.com> Signed-off-by: rodneyosodo <blackd0t@protonmail.com> * change contact name Signed-off-by: rodneyosodo <blackd0t@protonmail.com> * fix tests Signed-off-by: rodneyosodo <blackd0t@protonmail.com> * Rename Disconnect Signed-off-by: rodneyosodo <blackd0t@protonmail.com> * Fix subscription typo Signed-off-by: rodneyosodo <blackd0t@protonmail.com> * Fix Swagger File Signed-off-by: rodneyosodo <blackd0t@protonmail.com> * Add Tests Signed-off-by: rodneyosodo <blackd0t@protonmail.com> * Change Limit to 10 Signed-off-by: rodneyosodo <blackd0t@protonmail.com> * Remove empty line Signed-off-by: rodneyosodo <blackd0t@protonmail.com> --------- Signed-off-by: rodneyosodo <socials@rodneyosodo.com> Signed-off-by: rodneyosodo <blackd0t@protonmail.com> Co-authored-by: rodneyosodo <socials@rodneyosodo.com>
2023-05-25 06:02:46 +08:00
package certs_test
import (
"fmt"
"testing"
"github.com/mainflux/mainflux/certs"
"github.com/mainflux/mainflux/pkg/errors"
"github.com/stretchr/testify/assert"
)
func TestLoadCertificates(t *testing.T) {
cases := []struct {
desc string
caPath string
caKeyPath string
err error
}{
{
desc: "load valid tls certificate and valid key",
caPath: "../docker/ssl/certs/ca.crt",
caKeyPath: "../docker/ssl/certs/ca.key",
err: nil,
},
{
desc: "load valid tls certificate and missing key",
caPath: "../docker/ssl/certs/ca.crt",
caKeyPath: "",
err: certs.ErrMissingCerts,
},
{
desc: "load missing tls certificate and valid key",
caPath: "",
caKeyPath: "../docker/ssl/certs/ca.key",
err: certs.ErrMissingCerts,
},
{
desc: "load empty tls certificate and empty key",
caPath: "",
caKeyPath: "",
err: certs.ErrMissingCerts,
},
{
desc: "load valid tls certificate and invalid key",
caPath: "../docker/ssl/certs/ca.crt",
caKeyPath: "certs.go",
err: errors.New("tls: failed to find any PEM data in key input"),
},
{
desc: "load invalid tls certificate and valid key",
caPath: "certs.go",
caKeyPath: "../docker/ssl/certs/ca.key",
err: errors.New("tls: failed to find any PEM data in certificate input"),
},
{
desc: "load invalid tls certificate and invalid key",
caPath: "certs.go",
caKeyPath: "certs.go",
err: errors.New("tls: failed to find any PEM data in certificate input"),
},
{
desc: "load valid tls certificate and non-existing key",
caPath: "../docker/ssl/certs/ca.crt",
caKeyPath: "ca.key",
err: errors.New("stat ca.key: no such file or directory"),
},
{
desc: "load non-existing tls certificate and valid key",
caPath: "ca.crt",
caKeyPath: "../docker/ssl/certs/ca.key",
err: errors.New("stat ca.crt: no such file or directory"),
},
{
desc: "load non-existing tls certificate and non-existing key",
caPath: "ca.crt",
caKeyPath: "ca.key",
err: errors.New("stat ca.crt: no such file or directory"),
},
}
for _, tc := range cases {
tlsCert, caCert, err := certs.LoadCertificates(tc.caPath, tc.caKeyPath)
assert.True(t, errors.Contains(err, tc.err), fmt.Sprintf("%s: expected %s got %s\n", tc.desc, tc.err, err))
if err == nil {
assert.NotNil(t, tlsCert)
assert.NotNil(t, caCert)
}
}
}