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
b1ackd0t 408eabaaa6
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 00:02:46 +02:00

91 lines
2.5 KiB
Go

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)
}
}
}