1
0
mirror of https://github.com/mainflux/mainflux.git synced 2025-05-04 22:17:59 +08:00
Mainflux.mainflux/provision/service_test.go
Mirko Teodorovic f9432c6525
MF-1159 - add gateway metadata update in provision method (#1160)
* provision fix

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* update config

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* fix naming, Boostrap to Bootstrap

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* add name as param

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* add name as param

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* fix typo, and remove some props

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* add name as param

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* add name as param

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* fix typo

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* fix typo

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* refactor service

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* improve gateway provision

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* revert content

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* minor changes

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* fix test

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* change docs, and error in service

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* change docs, and error in service

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>
2020-05-06 16:53:32 +02:00

82 lines
1.8 KiB
Go

package provision_test
import (
"fmt"
"os"
"testing"
"github.com/mainflux/mainflux/errors"
"github.com/mainflux/mainflux/provision"
"github.com/mainflux/mainflux/provision/mocks"
logger "github.com/mainflux/mainflux/logger"
"github.com/stretchr/testify/assert"
)
var (
cfg = provision.Config{
Bootstrap: provision.Bootstrap{
AutoWhiteList: true,
Provision: true,
Content: "",
X509Provision: true,
},
Server: provision.ServiceConf{
MfPass: "test",
MfUser: "test@example.com",
},
Channels: []provision.Channel{
provision.Channel{
Name: "control-channel",
Metadata: map[string]interface{}{"type": "control"},
},
provision.Channel{
Name: "data-channel",
Metadata: map[string]interface{}{"type": "data"},
},
},
Things: []provision.Thing{
provision.Thing{
Name: "thing",
Metadata: map[string]interface{}{"external_id": "xxxxxx"},
},
},
}
log, _ = logger.New(os.Stdout, "info")
)
func TestProvision(t *testing.T) {
// Create multiple services with different configurations.
sdk := mocks.NewSDK()
svc := provision.New(cfg, sdk, log)
cases := []struct {
desc string
externalID string
externalKey string
svc provision.Service
err error
}{
{
desc: "Provision successfully",
externalID: "id",
externalKey: "key",
svc: svc,
err: nil,
},
{
desc: "Provision already existing config",
externalID: "id",
externalKey: "key",
svc: svc,
err: provision.ErrFailedBootstrap,
},
}
for _, tc := range cases {
_, err := tc.svc.Provision("", "", tc.externalID, tc.externalKey)
assert.True(t, errors.Contains(err, tc.err), fmt.Sprintf("%s: expected `%v` got `%v`", tc.desc, tc.err, err))
}
}