mirror of
https://github.com/mainflux/mainflux.git
synced 2025-05-04 22:17:59 +08:00

* 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>
82 lines
1.8 KiB
Go
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))
|
|
}
|
|
|
|
}
|