mirror of
https://github.com/absmach/supermq.git
synced 2026-06-23 07:20:19 +00:00
MG-2441 - Add domain ID to API (#2442)
Signed-off-by: nyagamunene <stevenyaga2014@gmail.com>
This commit is contained in:
+23
-22
@@ -12,11 +12,11 @@ import (
|
||||
|
||||
var cmdBootstrap = []cobra.Command{
|
||||
{
|
||||
Use: "create <JSON_config> <user_auth_token>",
|
||||
Use: "create <JSON_config> <domain_id> <user_auth_token>",
|
||||
Short: "Create config",
|
||||
Long: `Create new Thing Bootstrap Config to the user identified by the provided key`,
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
if len(args) != 2 {
|
||||
if len(args) != 3 {
|
||||
logUsageCmd(*cmd, cmd.Use)
|
||||
return
|
||||
}
|
||||
@@ -27,7 +27,7 @@ var cmdBootstrap = []cobra.Command{
|
||||
return
|
||||
}
|
||||
|
||||
id, err := sdk.AddBootstrap(cfg, args[1])
|
||||
id, err := sdk.AddBootstrap(cfg, args[1], args[2])
|
||||
if err != nil {
|
||||
logErrorCmd(*cmd, err)
|
||||
return
|
||||
@@ -37,24 +37,25 @@ var cmdBootstrap = []cobra.Command{
|
||||
},
|
||||
},
|
||||
{
|
||||
Use: "get [all | <thing_id>] <user_auth_token>",
|
||||
Use: "get [all | <thing_id>] <domain_id> <user_auth_token>",
|
||||
Short: "Get config",
|
||||
Long: `Get Thing Config with given ID belonging to the user identified by the given key.
|
||||
all - lists all config
|
||||
<thing_id> - view config of <thing_id>`,
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
if len(args) != 2 {
|
||||
if len(args) != 3 {
|
||||
logUsageCmd(*cmd, cmd.Use)
|
||||
return
|
||||
}
|
||||
pageMetadata := mgxsdk.PageMetadata{
|
||||
Offset: Offset,
|
||||
Limit: Limit,
|
||||
State: State,
|
||||
Name: Name,
|
||||
Offset: Offset,
|
||||
Limit: Limit,
|
||||
State: State,
|
||||
Name: Name,
|
||||
DomainID: args[1],
|
||||
}
|
||||
if args[0] == "all" {
|
||||
l, err := sdk.Bootstraps(pageMetadata, args[1])
|
||||
l, err := sdk.Bootstraps(pageMetadata, args[2])
|
||||
if err != nil {
|
||||
logErrorCmd(*cmd, err)
|
||||
return
|
||||
@@ -63,7 +64,7 @@ var cmdBootstrap = []cobra.Command{
|
||||
return
|
||||
}
|
||||
|
||||
c, err := sdk.ViewBootstrap(args[0], args[1])
|
||||
c, err := sdk.ViewBootstrap(args[0], args[1], args[2])
|
||||
if err != nil {
|
||||
logErrorCmd(*cmd, err)
|
||||
return
|
||||
@@ -73,7 +74,7 @@ var cmdBootstrap = []cobra.Command{
|
||||
},
|
||||
},
|
||||
{
|
||||
Use: "update [config <JSON_config> | connection <id> <channel_ids> | certs <id> <client_cert> <client_key> <ca> ] <user_auth_token>",
|
||||
Use: "update [config <JSON_config> | connection <id> <channel_ids> | certs <id> <client_cert> <client_key> <ca> ] <domain_id> <user_auth_token>",
|
||||
Short: "Update config",
|
||||
Long: `Updates editable fields of the provided Config.
|
||||
config <JSON_config> - Updates editable fields of the provided Config.
|
||||
@@ -81,7 +82,7 @@ var cmdBootstrap = []cobra.Command{
|
||||
channel_ids - '["channel_id1", ...]'
|
||||
certs <id> <client_cert> <client_key> <ca> - Update bootstrap config certificates.`,
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
if len(args) < 3 {
|
||||
if len(args) < 4 {
|
||||
logUsageCmd(*cmd, cmd.Use)
|
||||
return
|
||||
}
|
||||
@@ -92,7 +93,7 @@ var cmdBootstrap = []cobra.Command{
|
||||
return
|
||||
}
|
||||
|
||||
if err := sdk.UpdateBootstrap(cfg, args[1]); err != nil {
|
||||
if err := sdk.UpdateBootstrap(cfg, args[1], args[2]); err != nil {
|
||||
logErrorCmd(*cmd, err)
|
||||
return
|
||||
}
|
||||
@@ -106,7 +107,7 @@ var cmdBootstrap = []cobra.Command{
|
||||
logErrorCmd(*cmd, err)
|
||||
return
|
||||
}
|
||||
if err := sdk.UpdateBootstrapConnection(args[1], ids, args[3]); err != nil {
|
||||
if err := sdk.UpdateBootstrapConnection(args[1], ids, args[3], args[4]); err != nil {
|
||||
logErrorCmd(*cmd, err)
|
||||
return
|
||||
}
|
||||
@@ -115,7 +116,7 @@ var cmdBootstrap = []cobra.Command{
|
||||
return
|
||||
}
|
||||
if args[0] == "certs" {
|
||||
cfg, err := sdk.UpdateBootstrapCerts(args[0], args[1], args[2], args[3], args[4])
|
||||
cfg, err := sdk.UpdateBootstrapCerts(args[0], args[1], args[2], args[3], args[4], args[5])
|
||||
if err != nil {
|
||||
logErrorCmd(*cmd, err)
|
||||
return
|
||||
@@ -128,16 +129,16 @@ var cmdBootstrap = []cobra.Command{
|
||||
},
|
||||
},
|
||||
{
|
||||
Use: "remove <thing_id> <user_auth_token>",
|
||||
Use: "remove <thing_id> <domain_id> <user_auth_token>",
|
||||
Short: "Remove config",
|
||||
Long: `Removes Config with specified key that belongs to the user identified by the given key`,
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
if len(args) != 2 {
|
||||
if len(args) != 3 {
|
||||
logUsageCmd(*cmd, cmd.Use)
|
||||
return
|
||||
}
|
||||
|
||||
if err := sdk.RemoveBootstrap(args[0], args[1]); err != nil {
|
||||
if err := sdk.RemoveBootstrap(args[0], args[1], args[2]); err != nil {
|
||||
logErrorCmd(*cmd, err)
|
||||
return
|
||||
}
|
||||
@@ -175,11 +176,11 @@ var cmdBootstrap = []cobra.Command{
|
||||
},
|
||||
},
|
||||
{
|
||||
Use: "whitelist <JSON_config> <user_auth_token>",
|
||||
Use: "whitelist <JSON_config> <domain_id> <user_auth_token>",
|
||||
Short: "Whitelist config",
|
||||
Long: `Whitelist updates thing state config with given id from the authenticated user`,
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
if len(args) != 2 {
|
||||
if len(args) != 3 {
|
||||
logUsageCmd(*cmd, cmd.Use)
|
||||
return
|
||||
}
|
||||
@@ -190,7 +191,7 @@ var cmdBootstrap = []cobra.Command{
|
||||
return
|
||||
}
|
||||
|
||||
if err := sdk.Whitelist(cfg.ThingID, cfg.State, args[1]); err != nil {
|
||||
if err := sdk.Whitelist(cfg.ThingID, cfg.State, args[1], args[2]); err != nil {
|
||||
logErrorCmd(*cmd, err)
|
||||
return
|
||||
}
|
||||
|
||||
+34
-8
@@ -48,6 +48,7 @@ func TestCreateBootstrapConfigCmd(t *testing.T) {
|
||||
desc: "create bootstrap config successfully",
|
||||
args: []string{
|
||||
jsonConfig,
|
||||
domainID,
|
||||
validToken,
|
||||
},
|
||||
logType: createLog,
|
||||
@@ -58,6 +59,7 @@ func TestCreateBootstrapConfigCmd(t *testing.T) {
|
||||
desc: "create bootstrap config with invald args",
|
||||
args: []string{
|
||||
jsonConfig,
|
||||
domainID,
|
||||
validToken,
|
||||
extraArg,
|
||||
},
|
||||
@@ -67,6 +69,7 @@ func TestCreateBootstrapConfigCmd(t *testing.T) {
|
||||
desc: "create bootstrap config with invald json",
|
||||
args: []string{
|
||||
invalidJson,
|
||||
domainID,
|
||||
validToken,
|
||||
},
|
||||
sdkErr: errors.NewSDKError(errors.New("unexpected end of JSON input")),
|
||||
@@ -77,6 +80,7 @@ func TestCreateBootstrapConfigCmd(t *testing.T) {
|
||||
desc: "create bootstrap config with invald token",
|
||||
args: []string{
|
||||
jsonConfig,
|
||||
domainID,
|
||||
invalidToken,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrAuthorization, http.StatusUnauthorized),
|
||||
@@ -87,7 +91,7 @@ func TestCreateBootstrapConfigCmd(t *testing.T) {
|
||||
|
||||
for _, tc := range cases {
|
||||
t.Run(tc.desc, func(t *testing.T) {
|
||||
sdkCall := sdkMock.On("AddBootstrap", mock.Anything, mock.Anything).Return(tc.id, tc.sdkErr)
|
||||
sdkCall := sdkMock.On("AddBootstrap", mock.Anything, mock.Anything, mock.Anything).Return(tc.id, tc.sdkErr)
|
||||
out := executeCommand(t, rootCmd, append([]string{createCmd}, tc.args...)...)
|
||||
|
||||
switch tc.logType {
|
||||
@@ -125,6 +129,7 @@ func TestGetBootstrapConfigCmd(t *testing.T) {
|
||||
desc: "get all bootstrap config successfully",
|
||||
args: []string{
|
||||
all,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
page: mgsdk.BootstrapPage{
|
||||
@@ -141,6 +146,7 @@ func TestGetBootstrapConfigCmd(t *testing.T) {
|
||||
desc: "get bootstrap config with id",
|
||||
args: []string{
|
||||
channel.ID,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
logType: entityLog,
|
||||
@@ -150,6 +156,7 @@ func TestGetBootstrapConfigCmd(t *testing.T) {
|
||||
desc: "get bootstrap config with invalid args",
|
||||
args: []string{
|
||||
all,
|
||||
domainID,
|
||||
token,
|
||||
extraArg,
|
||||
},
|
||||
@@ -159,6 +166,7 @@ func TestGetBootstrapConfigCmd(t *testing.T) {
|
||||
desc: "get all bootstrap config with invalid token",
|
||||
args: []string{
|
||||
all,
|
||||
domainID,
|
||||
invalidToken,
|
||||
},
|
||||
logType: errLog,
|
||||
@@ -169,6 +177,7 @@ func TestGetBootstrapConfigCmd(t *testing.T) {
|
||||
desc: "get bootstrap config with invalid id",
|
||||
args: []string{
|
||||
invalidID,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrAuthorization, http.StatusForbidden),
|
||||
@@ -179,8 +188,8 @@ func TestGetBootstrapConfigCmd(t *testing.T) {
|
||||
|
||||
for _, tc := range cases {
|
||||
t.Run(tc.desc, func(t *testing.T) {
|
||||
sdkCall := sdkMock.On("ViewBootstrap", tc.args[0], tc.args[1]).Return(tc.boot, tc.sdkErr)
|
||||
sdkCall1 := sdkMock.On("Bootstraps", mock.Anything, tc.args[1]).Return(tc.page, tc.sdkErr)
|
||||
sdkCall := sdkMock.On("ViewBootstrap", tc.args[0], tc.args[1], tc.args[2]).Return(tc.boot, tc.sdkErr)
|
||||
sdkCall1 := sdkMock.On("Bootstraps", mock.Anything, tc.args[2]).Return(tc.page, tc.sdkErr)
|
||||
|
||||
out := executeCommand(t, rootCmd, append([]string{getCmd}, tc.args...)...)
|
||||
|
||||
@@ -223,6 +232,7 @@ func TestRemoveBootstrapConfigCmd(t *testing.T) {
|
||||
desc: "remove bootstrap config successfully",
|
||||
args: []string{
|
||||
thing.ID,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
logType: okLog,
|
||||
@@ -231,6 +241,7 @@ func TestRemoveBootstrapConfigCmd(t *testing.T) {
|
||||
desc: "remove bootstrap config with invalid args",
|
||||
args: []string{
|
||||
thing.ID,
|
||||
domainID,
|
||||
token,
|
||||
extraArg,
|
||||
},
|
||||
@@ -240,6 +251,7 @@ func TestRemoveBootstrapConfigCmd(t *testing.T) {
|
||||
desc: "remove bootstrap config with invalid thing id",
|
||||
args: []string{
|
||||
invalidID,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrAuthorization, http.StatusForbidden),
|
||||
@@ -250,6 +262,7 @@ func TestRemoveBootstrapConfigCmd(t *testing.T) {
|
||||
desc: "remove bootstrap config with invalid token",
|
||||
args: []string{
|
||||
thing.ID,
|
||||
domainID,
|
||||
invalidToken,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrAuthorization, http.StatusForbidden),
|
||||
@@ -260,7 +273,7 @@ func TestRemoveBootstrapConfigCmd(t *testing.T) {
|
||||
|
||||
for _, tc := range cases {
|
||||
t.Run(tc.desc, func(t *testing.T) {
|
||||
sdkCall := sdkMock.On("RemoveBootstrap", tc.args[0], tc.args[1]).Return(tc.sdkErr)
|
||||
sdkCall := sdkMock.On("RemoveBootstrap", tc.args[0], tc.args[1], tc.args[2]).Return(tc.sdkErr)
|
||||
out := executeCommand(t, rootCmd, append([]string{rmCmd}, tc.args...)...)
|
||||
|
||||
switch tc.logType {
|
||||
@@ -300,6 +313,7 @@ func TestUpdateBootstrapConfigCmd(t *testing.T) {
|
||||
args: []string{
|
||||
config,
|
||||
newConfigJson,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
logType: okLog,
|
||||
@@ -309,6 +323,7 @@ func TestUpdateBootstrapConfigCmd(t *testing.T) {
|
||||
args: []string{
|
||||
config,
|
||||
newConfigJson,
|
||||
domainID,
|
||||
invalidToken,
|
||||
},
|
||||
logType: errLog,
|
||||
@@ -321,6 +336,7 @@ func TestUpdateBootstrapConfigCmd(t *testing.T) {
|
||||
connection,
|
||||
thing.ID,
|
||||
chanIDsJson,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
logType: okLog,
|
||||
@@ -331,6 +347,7 @@ func TestUpdateBootstrapConfigCmd(t *testing.T) {
|
||||
connection,
|
||||
thing.ID,
|
||||
fmt.Sprintf("[\"%s\"", thing.ID),
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
sdkErr: errors.NewSDKError(errors.New("unexpected end of JSON input")),
|
||||
@@ -343,6 +360,7 @@ func TestUpdateBootstrapConfigCmd(t *testing.T) {
|
||||
connection,
|
||||
thing.ID,
|
||||
chanIDsJson,
|
||||
domainID,
|
||||
invalidToken,
|
||||
},
|
||||
logType: errLog,
|
||||
@@ -357,6 +375,7 @@ func TestUpdateBootstrapConfigCmd(t *testing.T) {
|
||||
"client cert",
|
||||
"client key",
|
||||
"ca",
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
boot: bootConfig,
|
||||
@@ -370,6 +389,7 @@ func TestUpdateBootstrapConfigCmd(t *testing.T) {
|
||||
"client cert",
|
||||
"client key",
|
||||
"ca",
|
||||
domainID,
|
||||
invalidToken,
|
||||
},
|
||||
logType: errLog,
|
||||
@@ -380,6 +400,7 @@ func TestUpdateBootstrapConfigCmd(t *testing.T) {
|
||||
desc: "update bootstrap config with invalid args",
|
||||
args: []string{
|
||||
newConfigJson,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
logType: usageLog,
|
||||
@@ -389,6 +410,7 @@ func TestUpdateBootstrapConfigCmd(t *testing.T) {
|
||||
args: []string{
|
||||
config,
|
||||
"{\"name\" : \"New Bootstrap\"",
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
sdkErr: errors.NewSDKError(errors.New("unexpected end of JSON input")),
|
||||
@@ -410,9 +432,9 @@ func TestUpdateBootstrapConfigCmd(t *testing.T) {
|
||||
for _, tc := range cases {
|
||||
t.Run(tc.desc, func(t *testing.T) {
|
||||
var boot mgsdk.BootstrapConfig
|
||||
sdkCall := sdkMock.On("UpdateBootstrap", mock.Anything, mock.Anything).Return(tc.sdkErr)
|
||||
sdkCall1 := sdkMock.On("UpdateBootstrapConnection", mock.Anything, mock.Anything, mock.Anything).Return(tc.sdkErr)
|
||||
sdkCall2 := sdkMock.On("UpdateBootstrapCerts", mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(tc.boot, tc.sdkErr)
|
||||
sdkCall := sdkMock.On("UpdateBootstrap", mock.Anything, mock.Anything, mock.Anything).Return(tc.sdkErr)
|
||||
sdkCall1 := sdkMock.On("UpdateBootstrapConnection", mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(tc.sdkErr)
|
||||
sdkCall2 := sdkMock.On("UpdateBootstrapCerts", mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(tc.boot, tc.sdkErr)
|
||||
out := executeCommand(t, rootCmd, append([]string{updCmd}, tc.args...)...)
|
||||
|
||||
switch tc.logType {
|
||||
@@ -453,6 +475,7 @@ func TestWhitelistConfigCmd(t *testing.T) {
|
||||
desc: "whitelist config successfully",
|
||||
args: []string{
|
||||
jsonConfig,
|
||||
domainID,
|
||||
validToken,
|
||||
},
|
||||
logType: okLog,
|
||||
@@ -461,6 +484,7 @@ func TestWhitelistConfigCmd(t *testing.T) {
|
||||
desc: "whitelist config with invalid args",
|
||||
args: []string{
|
||||
jsonConfig,
|
||||
domainID,
|
||||
validToken,
|
||||
extraArg,
|
||||
},
|
||||
@@ -470,6 +494,7 @@ func TestWhitelistConfigCmd(t *testing.T) {
|
||||
desc: "whitelist config with invalid json",
|
||||
args: []string{
|
||||
fmt.Sprintf("{\"thing_id\": \"%s\", \"state\":%d", thing.ID, 1),
|
||||
domainID,
|
||||
validToken,
|
||||
},
|
||||
sdkErr: errors.NewSDKError(errors.New("unexpected end of JSON input")),
|
||||
@@ -480,6 +505,7 @@ func TestWhitelistConfigCmd(t *testing.T) {
|
||||
desc: "whitelist config with invalid token",
|
||||
args: []string{
|
||||
jsonConfig,
|
||||
domainID,
|
||||
invalidToken,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrAuthorization, http.StatusUnauthorized),
|
||||
@@ -490,7 +516,7 @@ func TestWhitelistConfigCmd(t *testing.T) {
|
||||
|
||||
for _, tc := range cases {
|
||||
t.Run(tc.desc, func(t *testing.T) {
|
||||
sdkCall := sdkMock.On("Whitelist", mock.Anything, mock.Anything, tc.args[1]).Return(tc.sdkErr)
|
||||
sdkCall := sdkMock.On("Whitelist", mock.Anything, mock.Anything, tc.args[1], tc.args[2]).Return(tc.sdkErr)
|
||||
out := executeCommand(t, rootCmd, append([]string{whitelistCmd}, tc.args...)...)
|
||||
switch tc.logType {
|
||||
case okLog:
|
||||
|
||||
+10
-10
@@ -9,16 +9,16 @@ import (
|
||||
|
||||
var cmdCerts = []cobra.Command{
|
||||
{
|
||||
Use: "get [<cert_serial> | thing <thing_id> ] <user_auth_token>",
|
||||
Use: "get [<cert_serial> | thing <thing_id> ] <domain_id> <user_auth_token>",
|
||||
Short: "Get certificate",
|
||||
Long: `Gets a certificate for a given cert ID.`,
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
if len(args) < 2 {
|
||||
if len(args) < 3 {
|
||||
logUsageCmd(*cmd, cmd.Use)
|
||||
return
|
||||
}
|
||||
if args[0] == "thing" {
|
||||
cert, err := sdk.ViewCertByThing(args[1], args[2])
|
||||
cert, err := sdk.ViewCertByThing(args[1], args[2], args[3])
|
||||
if err != nil {
|
||||
logErrorCmd(*cmd, err)
|
||||
return
|
||||
@@ -26,7 +26,7 @@ var cmdCerts = []cobra.Command{
|
||||
logJSONCmd(*cmd, cert)
|
||||
return
|
||||
}
|
||||
cert, err := sdk.ViewCert(args[0], args[1])
|
||||
cert, err := sdk.ViewCert(args[0], args[1], args[2])
|
||||
if err != nil {
|
||||
logErrorCmd(*cmd, err)
|
||||
return
|
||||
@@ -35,15 +35,15 @@ var cmdCerts = []cobra.Command{
|
||||
},
|
||||
},
|
||||
{
|
||||
Use: "revoke <thing_id> <user_auth_token>",
|
||||
Use: "revoke <thing_id> <domain_id> <user_auth_token>",
|
||||
Short: "Revoke certificate",
|
||||
Long: `Revokes a certificate for a given thing ID.`,
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
if len(args) != 2 {
|
||||
if len(args) != 3 {
|
||||
logUsageCmd(*cmd, cmd.Use)
|
||||
return
|
||||
}
|
||||
rtime, err := sdk.RevokeCert(args[0], args[1])
|
||||
rtime, err := sdk.RevokeCert(args[0], args[1], args[2])
|
||||
if err != nil {
|
||||
logErrorCmd(*cmd, err)
|
||||
return
|
||||
@@ -58,18 +58,18 @@ func NewCertsCmd() *cobra.Command {
|
||||
var ttl string
|
||||
|
||||
issueCmd := cobra.Command{
|
||||
Use: "issue <thing_id> <user_auth_token> [--ttl=8760h]",
|
||||
Use: "issue <thing_id> <domain_id> <user_auth_token> [--ttl=8760h]",
|
||||
Short: "Issue certificate",
|
||||
Long: `Issues new certificate for a thing`,
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
if len(args) != 2 {
|
||||
if len(args) != 3 {
|
||||
logUsageCmd(*cmd, cmd.Use)
|
||||
return
|
||||
}
|
||||
|
||||
thingID := args[0]
|
||||
|
||||
c, err := sdk.IssueCert(thingID, ttl, args[1])
|
||||
c, err := sdk.IssueCert(thingID, ttl, args[1], args[2])
|
||||
if err != nil {
|
||||
logErrorCmd(*cmd, err)
|
||||
return
|
||||
|
||||
+14
-4
@@ -47,6 +47,7 @@ func TestGetCertCmd(t *testing.T) {
|
||||
args: []string{
|
||||
"thing",
|
||||
thing.ID,
|
||||
domainID,
|
||||
validToken,
|
||||
},
|
||||
logType: entityLog,
|
||||
@@ -63,6 +64,7 @@ func TestGetCertCmd(t *testing.T) {
|
||||
desc: "get cert successfully by id",
|
||||
args: []string{
|
||||
thing.ID,
|
||||
domainID,
|
||||
validToken,
|
||||
},
|
||||
logType: entityLog,
|
||||
@@ -73,6 +75,7 @@ func TestGetCertCmd(t *testing.T) {
|
||||
args: []string{
|
||||
"thing",
|
||||
thing.ID,
|
||||
domainID,
|
||||
invalidToken,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrAuthorization, http.StatusUnauthorized),
|
||||
@@ -83,6 +86,7 @@ func TestGetCertCmd(t *testing.T) {
|
||||
desc: "get cert by id with invalid token",
|
||||
args: []string{
|
||||
thing.ID,
|
||||
domainID,
|
||||
invalidToken,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrAuthorization, http.StatusUnauthorized),
|
||||
@@ -100,8 +104,8 @@ func TestGetCertCmd(t *testing.T) {
|
||||
|
||||
for _, tc := range cases {
|
||||
t.Run(tc.desc, func(t *testing.T) {
|
||||
sdkCall := sdkMock.On("ViewCertByThing", mock.Anything, mock.Anything).Return(tc.serials, tc.sdkErr)
|
||||
sdkCall1 := sdkMock.On("ViewCert", mock.Anything, mock.Anything).Return(tc.cert, tc.sdkErr)
|
||||
sdkCall := sdkMock.On("ViewCertByThing", mock.Anything, mock.Anything, mock.Anything).Return(tc.serials, tc.sdkErr)
|
||||
sdkCall1 := sdkMock.On("ViewCert", mock.Anything, mock.Anything, mock.Anything).Return(tc.cert, tc.sdkErr)
|
||||
out := executeCommand(t, rootCmd, append([]string{getCmd}, tc.args...)...)
|
||||
switch tc.logType {
|
||||
case entityLog:
|
||||
@@ -147,6 +151,7 @@ func TestRevokeCertCmd(t *testing.T) {
|
||||
desc: "revoke cert successfully",
|
||||
args: []string{
|
||||
thing.ID,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
logType: revokeLog,
|
||||
@@ -157,6 +162,7 @@ func TestRevokeCertCmd(t *testing.T) {
|
||||
desc: "revoke cert with invalid args",
|
||||
args: []string{
|
||||
thing.ID,
|
||||
domainID,
|
||||
token,
|
||||
extraArg,
|
||||
},
|
||||
@@ -166,6 +172,7 @@ func TestRevokeCertCmd(t *testing.T) {
|
||||
desc: "revoke cert with invalid token",
|
||||
args: []string{
|
||||
thing.ID,
|
||||
domainID,
|
||||
invalidToken,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrAuthorization, http.StatusForbidden),
|
||||
@@ -176,7 +183,7 @@ func TestRevokeCertCmd(t *testing.T) {
|
||||
|
||||
for _, tc := range cases {
|
||||
t.Run(tc.desc, func(t *testing.T) {
|
||||
sdkCall := sdkMock.On("RevokeCert", tc.args[0], tc.args[1]).Return(tc.time, tc.sdkErr)
|
||||
sdkCall := sdkMock.On("RevokeCert", tc.args[0], tc.args[1], tc.args[2]).Return(tc.time, tc.sdkErr)
|
||||
out := executeCommand(t, rootCmd, append([]string{revokeCmd}, tc.args...)...)
|
||||
|
||||
switch tc.logType {
|
||||
@@ -215,6 +222,7 @@ func TestIssueCertCmd(t *testing.T) {
|
||||
desc: "issue cert successfully",
|
||||
args: []string{
|
||||
thing.ID,
|
||||
domainID,
|
||||
validToken,
|
||||
},
|
||||
cert: cert,
|
||||
@@ -224,6 +232,7 @@ func TestIssueCertCmd(t *testing.T) {
|
||||
desc: "issue cert with invalid args",
|
||||
args: []string{
|
||||
thing.ID,
|
||||
domainID,
|
||||
validToken,
|
||||
extraArg,
|
||||
},
|
||||
@@ -233,6 +242,7 @@ func TestIssueCertCmd(t *testing.T) {
|
||||
desc: "issue cert with invalid token",
|
||||
args: []string{
|
||||
thing.ID,
|
||||
domainID,
|
||||
invalidToken,
|
||||
},
|
||||
logType: errLog,
|
||||
@@ -243,7 +253,7 @@ func TestIssueCertCmd(t *testing.T) {
|
||||
|
||||
for _, tc := range cases {
|
||||
t.Run(tc.desc, func(t *testing.T) {
|
||||
sdkCall := sdkMock.On("IssueCert", mock.Anything, mock.Anything, tc.args[1]).Return(tc.cert, tc.sdkErr)
|
||||
sdkCall := sdkMock.On("IssueCert", mock.Anything, mock.Anything, tc.args[1], tc.args[2]).Return(tc.cert, tc.sdkErr)
|
||||
out := executeCommand(t, rootCmd, append([]string{issueCmd}, tc.args...)...)
|
||||
|
||||
switch tc.logType {
|
||||
|
||||
+56
-53
@@ -14,11 +14,11 @@ const all = "all"
|
||||
|
||||
var cmdChannels = []cobra.Command{
|
||||
{
|
||||
Use: "create <JSON_channel> <user_auth_token>",
|
||||
Use: "create <JSON_channel> <domain_id> <user_auth_token>",
|
||||
Short: "Create channel",
|
||||
Long: `Creates new channel and generates it's UUID`,
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
if len(args) != 2 {
|
||||
if len(args) != 3 {
|
||||
logUsageCmd(*cmd, cmd.Use)
|
||||
return
|
||||
}
|
||||
@@ -29,7 +29,7 @@ var cmdChannels = []cobra.Command{
|
||||
return
|
||||
}
|
||||
|
||||
channel, err := sdk.CreateChannel(channel, args[1])
|
||||
channel, err := sdk.CreateChannel(channel, args[1], args[2])
|
||||
if err != nil {
|
||||
logErrorCmd(*cmd, err)
|
||||
return
|
||||
@@ -39,14 +39,14 @@ var cmdChannels = []cobra.Command{
|
||||
},
|
||||
},
|
||||
{
|
||||
Use: "get [all | <channel_id>] <user_auth_token>",
|
||||
Use: "get [all | <channel_id>] <domain_id> <user_auth_token>",
|
||||
Short: "Get channel",
|
||||
Long: `Get all channels or get channel by id. Channels can be filtered by name or metadata.
|
||||
all - lists all channels
|
||||
<channel_id> - shows thing with provided <channel_id>`,
|
||||
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
if len(args) != 2 {
|
||||
if len(args) != 3 {
|
||||
logUsageCmd(*cmd, cmd.Use)
|
||||
return
|
||||
}
|
||||
@@ -63,7 +63,7 @@ var cmdChannels = []cobra.Command{
|
||||
}
|
||||
|
||||
if args[0] == all {
|
||||
l, err := sdk.Channels(pageMetadata, args[1])
|
||||
l, err := sdk.Channels(pageMetadata, args[2])
|
||||
if err != nil {
|
||||
logErrorCmd(*cmd, err)
|
||||
return
|
||||
@@ -72,7 +72,7 @@ var cmdChannels = []cobra.Command{
|
||||
logJSONCmd(*cmd, l)
|
||||
return
|
||||
}
|
||||
c, err := sdk.Channel(args[0], args[1])
|
||||
c, err := sdk.Channel(args[0], args[1], args[2])
|
||||
if err != nil {
|
||||
logErrorCmd(*cmd, err)
|
||||
return
|
||||
@@ -82,17 +82,17 @@ var cmdChannels = []cobra.Command{
|
||||
},
|
||||
},
|
||||
{
|
||||
Use: "delete <channel_id> <user_auth_token>",
|
||||
Use: "delete <channel_id> <domain_id> <user_auth_token>",
|
||||
Short: "Delete channel",
|
||||
Long: "Delete channel by id.\n" +
|
||||
"Usage:\n" +
|
||||
"\tmagistrala-cli channels delete <channel_id> $USERTOKEN - delete the given channel ID\n",
|
||||
"\tmagistrala-cli channels delete <channel_id> $DOMAINID $USERTOKEN - delete the given channel ID\n",
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
if len(args) != 2 {
|
||||
if len(args) != 3 {
|
||||
logUsageCmd(*cmd, cmd.Use)
|
||||
return
|
||||
}
|
||||
if err := sdk.DeleteChannel(args[0], args[1]); err != nil {
|
||||
if err := sdk.DeleteChannel(args[0], args[1], args[2]); err != nil {
|
||||
logErrorCmd(*cmd, err)
|
||||
return
|
||||
}
|
||||
@@ -100,11 +100,11 @@ var cmdChannels = []cobra.Command{
|
||||
},
|
||||
},
|
||||
{
|
||||
Use: "update <channel_id> <JSON_string> <user_auth_token>",
|
||||
Use: "update <channel_id> <JSON_string> <domain_id> <user_auth_token>",
|
||||
Short: "Update channel",
|
||||
Long: `Updates channel record`,
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
if len(args) != 3 {
|
||||
if len(args) != 4 {
|
||||
logUsageCmd(*cmd, cmd.Use)
|
||||
return
|
||||
}
|
||||
@@ -115,7 +115,7 @@ var cmdChannels = []cobra.Command{
|
||||
return
|
||||
}
|
||||
channel.ID = args[0]
|
||||
channel, err := sdk.UpdateChannel(channel, args[2])
|
||||
channel, err := sdk.UpdateChannel(channel, args[2], args[3])
|
||||
if err != nil {
|
||||
logErrorCmd(*cmd, err)
|
||||
return
|
||||
@@ -125,19 +125,20 @@ var cmdChannels = []cobra.Command{
|
||||
},
|
||||
},
|
||||
{
|
||||
Use: "connections <channel_id> <user_auth_token>",
|
||||
Use: "connections <channel_id> <domain_id> <user_auth_token>",
|
||||
Short: "Connections list",
|
||||
Long: `List of Things connected to a Channel`,
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
if len(args) != 2 {
|
||||
if len(args) != 3 {
|
||||
logUsageCmd(*cmd, cmd.Use)
|
||||
return
|
||||
}
|
||||
pm := mgxsdk.PageMetadata{
|
||||
Offset: Offset,
|
||||
Limit: Limit,
|
||||
Offset: Offset,
|
||||
Limit: Limit,
|
||||
DomainID: args[1],
|
||||
}
|
||||
cl, err := sdk.ThingsByChannel(args[0], pm, args[1])
|
||||
cl, err := sdk.ThingsByChannel(args[0], pm, args[2])
|
||||
if err != nil {
|
||||
logErrorCmd(*cmd, err)
|
||||
return
|
||||
@@ -147,16 +148,16 @@ var cmdChannels = []cobra.Command{
|
||||
},
|
||||
},
|
||||
{
|
||||
Use: "enable <channel_id> <user_auth_token>",
|
||||
Use: "enable <channel_id> <domain_id> <user_auth_token>",
|
||||
Short: "Change channel status to enabled",
|
||||
Long: `Change channel status to enabled`,
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
if len(args) != 2 {
|
||||
if len(args) != 3 {
|
||||
logUsageCmd(*cmd, cmd.Use)
|
||||
return
|
||||
}
|
||||
|
||||
channel, err := sdk.EnableChannel(args[0], args[1])
|
||||
channel, err := sdk.EnableChannel(args[0], args[1], args[2])
|
||||
if err != nil {
|
||||
logErrorCmd(*cmd, err)
|
||||
return
|
||||
@@ -166,16 +167,16 @@ var cmdChannels = []cobra.Command{
|
||||
},
|
||||
},
|
||||
{
|
||||
Use: "disable <channel_id> <user_auth_token>",
|
||||
Use: "disable <channel_id> <domain_id> <user_auth_token>",
|
||||
Short: "Change channel status to disabled",
|
||||
Long: `Change channel status to disabled`,
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
if len(args) != 2 {
|
||||
if len(args) != 3 {
|
||||
logUsageCmd(*cmd, cmd.Use)
|
||||
return
|
||||
}
|
||||
|
||||
channel, err := sdk.DisableChannel(args[0], args[1])
|
||||
channel, err := sdk.DisableChannel(args[0], args[1], args[2])
|
||||
if err != nil {
|
||||
logErrorCmd(*cmd, err)
|
||||
return
|
||||
@@ -185,21 +186,22 @@ var cmdChannels = []cobra.Command{
|
||||
},
|
||||
},
|
||||
{
|
||||
Use: "users <channel_id> <user_auth_token>",
|
||||
Use: "users <channel_id> <domain_id> <user_auth_token>",
|
||||
Short: "List users",
|
||||
Long: "List users of a channel\n" +
|
||||
"Usage:\n" +
|
||||
"\tmagistrala-cli channels users <channel_id> $USERTOKEN\n",
|
||||
"\tmagistrala-cli channels users <channel_id> $DOMAINID $USERTOKEN\n",
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
if len(args) != 2 {
|
||||
if len(args) != 3 {
|
||||
logUsageCmd(*cmd, cmd.Use)
|
||||
return
|
||||
}
|
||||
pm := mgxsdk.PageMetadata{
|
||||
Offset: Offset,
|
||||
Limit: Limit,
|
||||
Offset: Offset,
|
||||
Limit: Limit,
|
||||
DomainID: args[1],
|
||||
}
|
||||
ul, err := sdk.ListChannelUsers(args[0], pm, args[1])
|
||||
ul, err := sdk.ListChannelUsers(args[0], pm, args[2])
|
||||
if err != nil {
|
||||
logErrorCmd(*cmd, err)
|
||||
return
|
||||
@@ -209,21 +211,22 @@ var cmdChannels = []cobra.Command{
|
||||
},
|
||||
},
|
||||
{
|
||||
Use: "groups <channel_id> <user_auth_token>",
|
||||
Use: "groups <channel_id> <domain_id> <user_auth_token>",
|
||||
Short: "List groups",
|
||||
Long: "List groups of a channel\n" +
|
||||
"Usage:\n" +
|
||||
"\tmagistrala-cli channels groups <channel_id> $USERTOKEN\n",
|
||||
"\tmagistrala-cli channels groups <channel_id> $DOMAINID $USERTOKEN\n",
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
if len(args) != 2 {
|
||||
if len(args) != 3 {
|
||||
logUsageCmd(*cmd, cmd.Use)
|
||||
return
|
||||
}
|
||||
pm := mgxsdk.PageMetadata{
|
||||
Offset: Offset,
|
||||
Limit: Limit,
|
||||
Offset: Offset,
|
||||
Limit: Limit,
|
||||
DomainID: args[1],
|
||||
}
|
||||
ul, err := sdk.ListChannelUserGroups(args[0], pm, args[1])
|
||||
ul, err := sdk.ListChannelUserGroups(args[0], pm, args[2])
|
||||
if err != nil {
|
||||
logErrorCmd(*cmd, err)
|
||||
return
|
||||
@@ -236,13 +239,13 @@ var cmdChannels = []cobra.Command{
|
||||
|
||||
var channelAssignCmds = []cobra.Command{
|
||||
{
|
||||
Use: "users <relation> <user_ids> <channel_id> <user_auth_token>",
|
||||
Use: "users <relation> <user_ids> <channel_id> <domain_id> <user_auth_token>",
|
||||
Short: "Assign users",
|
||||
Long: "Assign users to a channel\n" +
|
||||
"Usage:\n" +
|
||||
"\tmagistrala-cli channels assign users <relation> '[\"<user_id_1>\", \"<user_id_2>\"]' <channel_id> $USERTOKEN\n",
|
||||
"\tmagistrala-cli channels assign users <relation> '[\"<user_id_1>\", \"<user_id_2>\"]' <channel_id> $DOMAINID $USERTOKEN\n",
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
if len(args) != 4 {
|
||||
if len(args) != 5 {
|
||||
logUsageCmd(*cmd, cmd.Use)
|
||||
return
|
||||
}
|
||||
@@ -251,7 +254,7 @@ var channelAssignCmds = []cobra.Command{
|
||||
logErrorCmd(*cmd, err)
|
||||
return
|
||||
}
|
||||
if err := sdk.AddUserToChannel(args[2], mgxsdk.UsersRelationRequest{Relation: args[0], UserIDs: userIDs}, args[3]); err != nil {
|
||||
if err := sdk.AddUserToChannel(args[2], mgxsdk.UsersRelationRequest{Relation: args[0], UserIDs: userIDs}, args[3], args[4]); err != nil {
|
||||
logErrorCmd(*cmd, err)
|
||||
return
|
||||
}
|
||||
@@ -259,14 +262,14 @@ var channelAssignCmds = []cobra.Command{
|
||||
},
|
||||
},
|
||||
{
|
||||
Use: "groups <group_ids> <channel_id> <user_auth_token>",
|
||||
Use: "groups <group_ids> <channel_id> <domain_id> <user_auth_token>",
|
||||
Short: "Assign groups",
|
||||
Long: "Assign groups to a channel\n" +
|
||||
"Usage:\n" +
|
||||
"\tmagistrala-cli channels assign groups '[\"<group_id_1>\", \"<group_id_2>\"]' <channel_id> $USERTOKEN\n",
|
||||
"\tmagistrala-cli channels assign groups '[\"<group_id_1>\", \"<group_id_2>\"]' <channel_id> $DOMAINID $USERTOKEN\n",
|
||||
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
if len(args) != 3 {
|
||||
if len(args) != 4 {
|
||||
logUsageCmd(*cmd, cmd.Use)
|
||||
return
|
||||
}
|
||||
@@ -275,7 +278,7 @@ var channelAssignCmds = []cobra.Command{
|
||||
logErrorCmd(*cmd, err)
|
||||
return
|
||||
}
|
||||
if err := sdk.AddUserGroupToChannel(args[1], mgxsdk.UserGroupsRequest{UserGroupIDs: groupIDs}, args[2]); err != nil {
|
||||
if err := sdk.AddUserGroupToChannel(args[1], mgxsdk.UserGroupsRequest{UserGroupIDs: groupIDs}, args[2], args[3]); err != nil {
|
||||
logErrorCmd(*cmd, err)
|
||||
return
|
||||
}
|
||||
@@ -286,13 +289,13 @@ var channelAssignCmds = []cobra.Command{
|
||||
|
||||
var channelUnassignCmds = []cobra.Command{
|
||||
{
|
||||
Use: "groups <group_ids> <channel_id> <user_auth_token>",
|
||||
Use: "groups <group_ids> <channel_id> <domain_id> <user_auth_token>",
|
||||
Short: "Unassign groups",
|
||||
Long: "Unassign groups from a channel\n" +
|
||||
"Usage:\n" +
|
||||
"\tmagistrala-cli channels unassign groups '[\"<group_id_1>\", \"<group_id_2>\"]' <channel_id> $USERTOKEN\n",
|
||||
"\tmagistrala-cli channels unassign groups '[\"<group_id_1>\", \"<group_id_2>\"]' <channel_id> $DOMAINID $USERTOKEN\n",
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
if len(args) != 3 {
|
||||
if len(args) != 4 {
|
||||
logUsageCmd(*cmd, cmd.Use)
|
||||
return
|
||||
}
|
||||
@@ -301,7 +304,7 @@ var channelUnassignCmds = []cobra.Command{
|
||||
logErrorCmd(*cmd, err)
|
||||
return
|
||||
}
|
||||
if err := sdk.RemoveUserGroupFromChannel(args[1], mgxsdk.UserGroupsRequest{UserGroupIDs: groupIDs}, args[2]); err != nil {
|
||||
if err := sdk.RemoveUserGroupFromChannel(args[1], mgxsdk.UserGroupsRequest{UserGroupIDs: groupIDs}, args[2], args[3]); err != nil {
|
||||
logErrorCmd(*cmd, err)
|
||||
return
|
||||
}
|
||||
@@ -310,13 +313,13 @@ var channelUnassignCmds = []cobra.Command{
|
||||
},
|
||||
|
||||
{
|
||||
Use: "users <relation> <user_ids> <channel_id> <user_auth_token>",
|
||||
Use: "users <relation> <user_ids> <channel_id> <domain_id> <user_auth_token>",
|
||||
Short: "Unassign users",
|
||||
Long: "Unassign users from a channel\n" +
|
||||
"Usage:\n" +
|
||||
"\tmagistrala-cli channels unassign users <relation> '[\"<user_id_1>\", \"<user_id_2>\"]' <channel_id> $USERTOKEN\n",
|
||||
"\tmagistrala-cli channels unassign users <relation> '[\"<user_id_1>\", \"<user_id_2>\"]' <channel_id> $DOMAINID $USERTOKEN\n",
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
if len(args) != 4 {
|
||||
if len(args) != 5 {
|
||||
logUsageCmd(*cmd, cmd.Use)
|
||||
return
|
||||
}
|
||||
@@ -325,7 +328,7 @@ var channelUnassignCmds = []cobra.Command{
|
||||
logErrorCmd(*cmd, err)
|
||||
return
|
||||
}
|
||||
if err := sdk.RemoveUserFromChannel(args[2], mgxsdk.UsersRelationRequest{Relation: args[0], UserIDs: userIDs}, args[3]); err != nil {
|
||||
if err := sdk.RemoveUserFromChannel(args[2], mgxsdk.UsersRelationRequest{Relation: args[0], UserIDs: userIDs}, args[3], args[4]); err != nil {
|
||||
logErrorCmd(*cmd, err)
|
||||
return
|
||||
}
|
||||
|
||||
+68
-44
@@ -45,6 +45,7 @@ func TestCreateChannelCmd(t *testing.T) {
|
||||
desc: "create channel successfully",
|
||||
args: []string{
|
||||
channelJson,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
channel: channel,
|
||||
@@ -54,6 +55,7 @@ func TestCreateChannelCmd(t *testing.T) {
|
||||
desc: "create channel with invalid args",
|
||||
args: []string{
|
||||
channelJson,
|
||||
domainID,
|
||||
token,
|
||||
extraArg,
|
||||
},
|
||||
@@ -63,6 +65,7 @@ func TestCreateChannelCmd(t *testing.T) {
|
||||
desc: "create channel with invalid json",
|
||||
args: []string{
|
||||
"{\"name\":\"testchannel\", \"metadata\":{\"key1\":\"value1\"}",
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
sdkErr: errors.NewSDKError(errors.New("unexpected end of JSON input")),
|
||||
@@ -73,27 +76,18 @@ func TestCreateChannelCmd(t *testing.T) {
|
||||
desc: "create channel with invalid token",
|
||||
args: []string{
|
||||
channelJson,
|
||||
domainID,
|
||||
invalidToken,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrAuthorization, http.StatusUnauthorized),
|
||||
errLogMessage: fmt.Sprintf("\nerror: %s\n\n", errors.NewSDKErrorWithStatus(svcerr.ErrAuthorization, http.StatusUnauthorized)),
|
||||
logType: errLog,
|
||||
},
|
||||
{
|
||||
desc: "create channel without domain token",
|
||||
args: []string{
|
||||
channelJson,
|
||||
tokenWithoutDomain,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrDomainAuthorization, http.StatusForbidden),
|
||||
errLogMessage: fmt.Sprintf("\nerror: %s\n\n", errors.NewSDKErrorWithStatus(svcerr.ErrDomainAuthorization, http.StatusForbidden)),
|
||||
logType: errLog,
|
||||
},
|
||||
}
|
||||
|
||||
for _, tc := range cases {
|
||||
t.Run(tc.desc, func(t *testing.T) {
|
||||
sdkCall := sdkMock.On("CreateChannel", mock.Anything, tc.args[1]).Return(tc.channel, tc.sdkErr)
|
||||
sdkCall := sdkMock.On("CreateChannel", mock.Anything, tc.args[1], tc.args[2]).Return(tc.channel, tc.sdkErr)
|
||||
out := executeCommand(t, rootCmd, append([]string{createCmd}, tc.args...)...)
|
||||
|
||||
switch tc.logType {
|
||||
@@ -133,6 +127,7 @@ func TestGetChannelsCmd(t *testing.T) {
|
||||
desc: "get all channels successfully",
|
||||
args: []string{
|
||||
all,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
page: mgsdk.ChannelsPage{
|
||||
@@ -144,6 +139,7 @@ func TestGetChannelsCmd(t *testing.T) {
|
||||
desc: "get channel with id",
|
||||
args: []string{
|
||||
channel.ID,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
logType: entityLog,
|
||||
@@ -153,6 +149,7 @@ func TestGetChannelsCmd(t *testing.T) {
|
||||
desc: "get channels with invalid args",
|
||||
args: []string{
|
||||
all,
|
||||
domainID,
|
||||
token,
|
||||
extraArg,
|
||||
},
|
||||
@@ -162,26 +159,18 @@ func TestGetChannelsCmd(t *testing.T) {
|
||||
desc: "get all channels with invalid token",
|
||||
args: []string{
|
||||
all,
|
||||
domainID,
|
||||
invalidToken,
|
||||
},
|
||||
logType: errLog,
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrAuthorization, http.StatusForbidden),
|
||||
errLogMessage: fmt.Sprintf("\nerror: %s\n\n", errors.NewSDKErrorWithStatus(svcerr.ErrAuthorization, http.StatusForbidden)),
|
||||
},
|
||||
{
|
||||
desc: "get channel without domain token",
|
||||
args: []string{
|
||||
channel.ID,
|
||||
tokenWithoutDomain,
|
||||
},
|
||||
logType: errLog,
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrDomainAuthorization, http.StatusForbidden),
|
||||
errLogMessage: fmt.Sprintf("\nerror: %s\n\n", errors.NewSDKErrorWithStatus(svcerr.ErrDomainAuthorization, http.StatusForbidden)),
|
||||
},
|
||||
{
|
||||
desc: "get channel with invalid id",
|
||||
args: []string{
|
||||
invalidID,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrAuthorization, http.StatusForbidden),
|
||||
@@ -192,8 +181,8 @@ func TestGetChannelsCmd(t *testing.T) {
|
||||
|
||||
for _, tc := range cases {
|
||||
t.Run(tc.desc, func(t *testing.T) {
|
||||
sdkCall := sdkMock.On("Channel", tc.args[0], tc.args[1]).Return(tc.channel, tc.sdkErr)
|
||||
sdkCall1 := sdkMock.On("Channels", mock.Anything, tc.args[1]).Return(tc.page, tc.sdkErr)
|
||||
sdkCall := sdkMock.On("Channel", tc.args[0], tc.args[1], tc.args[2]).Return(tc.channel, tc.sdkErr)
|
||||
sdkCall1 := sdkMock.On("Channels", mock.Anything, tc.args[2]).Return(tc.page, tc.sdkErr)
|
||||
|
||||
out := executeCommand(t, rootCmd, append([]string{getCmd}, tc.args...)...)
|
||||
|
||||
@@ -236,6 +225,7 @@ func TestDeleteChannelCmd(t *testing.T) {
|
||||
desc: "delete channel successfully",
|
||||
args: []string{
|
||||
channel.ID,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
logType: okLog,
|
||||
@@ -244,6 +234,7 @@ func TestDeleteChannelCmd(t *testing.T) {
|
||||
desc: "delete channel with invalid args",
|
||||
args: []string{
|
||||
channel.ID,
|
||||
domainID,
|
||||
token,
|
||||
extraArg,
|
||||
},
|
||||
@@ -253,6 +244,7 @@ func TestDeleteChannelCmd(t *testing.T) {
|
||||
desc: "delete channel with invalid channel id",
|
||||
args: []string{
|
||||
invalidID,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrAuthorization, http.StatusForbidden),
|
||||
@@ -263,6 +255,7 @@ func TestDeleteChannelCmd(t *testing.T) {
|
||||
desc: "delete channel with invalid token",
|
||||
args: []string{
|
||||
channel.ID,
|
||||
domainID,
|
||||
invalidToken,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrAuthorization, http.StatusForbidden),
|
||||
@@ -273,7 +266,7 @@ func TestDeleteChannelCmd(t *testing.T) {
|
||||
|
||||
for _, tc := range cases {
|
||||
t.Run(tc.desc, func(t *testing.T) {
|
||||
sdkCall := sdkMock.On("DeleteChannel", tc.args[0], tc.args[1]).Return(tc.sdkErr)
|
||||
sdkCall := sdkMock.On("DeleteChannel", tc.args[0], tc.args[1], tc.args[2]).Return(tc.sdkErr)
|
||||
out := executeCommand(t, rootCmd, append([]string{delCmd}, tc.args...)...)
|
||||
|
||||
switch tc.logType {
|
||||
@@ -309,6 +302,7 @@ func TestUpdateChannelCmd(t *testing.T) {
|
||||
args: []string{
|
||||
channel.ID,
|
||||
newChannelJson,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
channel: mgsdk.Channel{
|
||||
@@ -322,6 +316,7 @@ func TestUpdateChannelCmd(t *testing.T) {
|
||||
args: []string{
|
||||
channel.ID,
|
||||
newChannelJson,
|
||||
domainID,
|
||||
token,
|
||||
extraArg,
|
||||
},
|
||||
@@ -332,6 +327,7 @@ func TestUpdateChannelCmd(t *testing.T) {
|
||||
args: []string{
|
||||
invalidID,
|
||||
newChannelJson,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrAuthorization, http.StatusForbidden),
|
||||
@@ -343,6 +339,7 @@ func TestUpdateChannelCmd(t *testing.T) {
|
||||
args: []string{
|
||||
channel.ID,
|
||||
"{\"name\" : \"channel1\"",
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
sdkErr: errors.NewSDKError(errors.New("unexpected end of JSON input")),
|
||||
@@ -353,7 +350,7 @@ func TestUpdateChannelCmd(t *testing.T) {
|
||||
for _, tc := range cases {
|
||||
t.Run(tc.desc, func(t *testing.T) {
|
||||
var ch mgsdk.Channel
|
||||
sdkCall := sdkMock.On("UpdateChannel", mock.Anything, tc.args[2]).Return(tc.channel, tc.sdkErr)
|
||||
sdkCall := sdkMock.On("UpdateChannel", mock.Anything, tc.args[2], tc.args[3]).Return(tc.channel, tc.sdkErr)
|
||||
out := executeCommand(t, rootCmd, append([]string{updCmd}, tc.args...)...)
|
||||
|
||||
switch tc.logType {
|
||||
@@ -390,6 +387,7 @@ func TestListConnectionsCmd(t *testing.T) {
|
||||
desc: "list connections successfully",
|
||||
args: []string{
|
||||
channel.ID,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
page: mgsdk.ThingsPage{
|
||||
@@ -406,6 +404,7 @@ func TestListConnectionsCmd(t *testing.T) {
|
||||
desc: "list connections with invalid args",
|
||||
args: []string{
|
||||
channel.ID,
|
||||
domainID,
|
||||
token,
|
||||
extraArg,
|
||||
},
|
||||
@@ -415,6 +414,7 @@ func TestListConnectionsCmd(t *testing.T) {
|
||||
desc: "list connections with invalid channel id",
|
||||
args: []string{
|
||||
invalidID,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrAuthorization, http.StatusForbidden),
|
||||
@@ -425,7 +425,7 @@ func TestListConnectionsCmd(t *testing.T) {
|
||||
|
||||
for _, tc := range cases {
|
||||
t.Run(tc.desc, func(t *testing.T) {
|
||||
sdkCall := sdkMock.On("ThingsByChannel", tc.args[0], mock.Anything, tc.args[1]).Return(tc.page, tc.sdkErr)
|
||||
sdkCall := sdkMock.On("ThingsByChannel", tc.args[0], mock.Anything, tc.args[2]).Return(tc.page, tc.sdkErr)
|
||||
out := executeCommand(t, rootCmd, append([]string{connsCmd}, tc.args...)...)
|
||||
switch tc.logType {
|
||||
case entityLog:
|
||||
@@ -463,6 +463,7 @@ func TestEnableChannelCmd(t *testing.T) {
|
||||
desc: "enable channel successfully",
|
||||
args: []string{
|
||||
channel.ID,
|
||||
domainID,
|
||||
validToken,
|
||||
},
|
||||
channel: channel,
|
||||
@@ -472,6 +473,7 @@ func TestEnableChannelCmd(t *testing.T) {
|
||||
desc: "delete channel with invalid token",
|
||||
args: []string{
|
||||
channel.ID,
|
||||
domainID,
|
||||
invalidToken,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrAuthorization, http.StatusForbidden),
|
||||
@@ -482,6 +484,7 @@ func TestEnableChannelCmd(t *testing.T) {
|
||||
desc: "delete channel with invalid channel ID",
|
||||
args: []string{
|
||||
invalidID,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrAuthorization, http.StatusForbidden),
|
||||
@@ -492,6 +495,7 @@ func TestEnableChannelCmd(t *testing.T) {
|
||||
desc: "enable channel with invalid args",
|
||||
args: []string{
|
||||
channel.ID,
|
||||
domainID,
|
||||
validToken,
|
||||
extraArg,
|
||||
},
|
||||
@@ -501,7 +505,7 @@ func TestEnableChannelCmd(t *testing.T) {
|
||||
|
||||
for _, tc := range cases {
|
||||
t.Run(tc.desc, func(t *testing.T) {
|
||||
sdkCall := sdkMock.On("EnableChannel", tc.args[0], tc.args[1]).Return(tc.channel, tc.sdkErr)
|
||||
sdkCall := sdkMock.On("EnableChannel", tc.args[0], tc.args[1], tc.args[2]).Return(tc.channel, tc.sdkErr)
|
||||
out := executeCommand(t, rootCmd, append([]string{enableCmd}, tc.args...)...)
|
||||
|
||||
switch tc.logType {
|
||||
@@ -540,6 +544,7 @@ func TestDisableChannelCmd(t *testing.T) {
|
||||
desc: "disable channel successfully",
|
||||
args: []string{
|
||||
channel.ID,
|
||||
domainID,
|
||||
validToken,
|
||||
},
|
||||
logType: entityLog,
|
||||
@@ -549,6 +554,7 @@ func TestDisableChannelCmd(t *testing.T) {
|
||||
desc: "disable channel with invalid token",
|
||||
args: []string{
|
||||
channel.ID,
|
||||
domainID,
|
||||
invalidToken,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrAuthorization, http.StatusForbidden),
|
||||
@@ -559,6 +565,7 @@ func TestDisableChannelCmd(t *testing.T) {
|
||||
desc: "disable channel with invalid id",
|
||||
args: []string{
|
||||
invalidID,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrAuthorization, http.StatusForbidden),
|
||||
@@ -569,6 +576,7 @@ func TestDisableChannelCmd(t *testing.T) {
|
||||
desc: "disable thing with invalid args",
|
||||
args: []string{
|
||||
channel.ID,
|
||||
domainID,
|
||||
validToken,
|
||||
extraArg,
|
||||
},
|
||||
@@ -578,7 +586,7 @@ func TestDisableChannelCmd(t *testing.T) {
|
||||
|
||||
for _, tc := range cases {
|
||||
t.Run(tc.desc, func(t *testing.T) {
|
||||
sdkCall := sdkMock.On("DisableChannel", tc.args[0], tc.args[1]).Return(tc.channel, tc.sdkErr)
|
||||
sdkCall := sdkMock.On("DisableChannel", tc.args[0], tc.args[1], tc.args[2]).Return(tc.channel, tc.sdkErr)
|
||||
out := executeCommand(t, rootCmd, append([]string{disableCmd}, tc.args...)...)
|
||||
|
||||
switch tc.logType {
|
||||
@@ -619,6 +627,7 @@ func TestUsersChannelCmd(t *testing.T) {
|
||||
desc: "get channel's users successfully",
|
||||
args: []string{
|
||||
channel.ID,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
page: mgsdk.UsersPage{
|
||||
@@ -635,25 +644,17 @@ func TestUsersChannelCmd(t *testing.T) {
|
||||
desc: "list channel users with invalid args",
|
||||
args: []string{
|
||||
channel.ID,
|
||||
domainID,
|
||||
token,
|
||||
extraArg,
|
||||
},
|
||||
logType: usageLog,
|
||||
},
|
||||
{
|
||||
desc: "list channel users without domain token",
|
||||
args: []string{
|
||||
channel.ID,
|
||||
tokenWithoutDomain,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrDomainAuthorization, http.StatusForbidden),
|
||||
errLogMessage: fmt.Sprintf("\nerror: %s\n\n", errors.NewSDKErrorWithStatus(svcerr.ErrDomainAuthorization, http.StatusForbidden)),
|
||||
logType: errLog,
|
||||
},
|
||||
{
|
||||
desc: "list channel users with invalid id",
|
||||
args: []string{
|
||||
invalidID,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrAuthorization, http.StatusForbidden),
|
||||
@@ -664,7 +665,7 @@ func TestUsersChannelCmd(t *testing.T) {
|
||||
|
||||
for _, tc := range cases {
|
||||
t.Run(tc.desc, func(t *testing.T) {
|
||||
sdkCall := sdkMock.On("ListChannelUsers", tc.args[0], mock.Anything, tc.args[1]).Return(tc.page, tc.sdkErr)
|
||||
sdkCall := sdkMock.On("ListChannelUsers", tc.args[0], mock.Anything, tc.args[2]).Return(tc.page, tc.sdkErr)
|
||||
out := executeCommand(t, rootCmd, append([]string{usrCmd}, tc.args...)...)
|
||||
|
||||
switch tc.logType {
|
||||
@@ -703,6 +704,7 @@ func TestListGroupCmd(t *testing.T) {
|
||||
desc: "list groups successfully",
|
||||
args: []string{
|
||||
channel.ID,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
page: mgsdk.GroupsPage{
|
||||
@@ -719,6 +721,7 @@ func TestListGroupCmd(t *testing.T) {
|
||||
desc: "list groups with invalid args",
|
||||
args: []string{
|
||||
channel.ID,
|
||||
domainID,
|
||||
token,
|
||||
extraArg,
|
||||
},
|
||||
@@ -728,6 +731,7 @@ func TestListGroupCmd(t *testing.T) {
|
||||
desc: "list groups with invalid channel id",
|
||||
args: []string{
|
||||
invalidID,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrAuthorization, http.StatusForbidden),
|
||||
@@ -737,7 +741,7 @@ func TestListGroupCmd(t *testing.T) {
|
||||
}
|
||||
for _, tc := range cases {
|
||||
t.Run(tc.desc, func(t *testing.T) {
|
||||
sdkCall := sdkMock.On("ListChannelUserGroups", tc.args[0], mock.Anything, tc.args[1]).Return(tc.page, tc.sdkErr)
|
||||
sdkCall := sdkMock.On("ListChannelUserGroups", tc.args[0], mock.Anything, tc.args[2]).Return(tc.page, tc.sdkErr)
|
||||
out := executeCommand(t, rootCmd, append([]string{grpCmd}, tc.args...)...)
|
||||
switch tc.logType {
|
||||
case entityLog:
|
||||
@@ -777,6 +781,7 @@ func TestAssignUserCmd(t *testing.T) {
|
||||
relation,
|
||||
userIds,
|
||||
channel.ID,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
logType: okLog,
|
||||
@@ -787,6 +792,7 @@ func TestAssignUserCmd(t *testing.T) {
|
||||
relation,
|
||||
userIds,
|
||||
channel.ID,
|
||||
domainID,
|
||||
token,
|
||||
extraArg,
|
||||
},
|
||||
@@ -798,6 +804,7 @@ func TestAssignUserCmd(t *testing.T) {
|
||||
relation,
|
||||
fmt.Sprintf("[\"%s\"", user.ID),
|
||||
channel.ID,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
sdkErr: errors.NewSDKError(errors.New("unexpected end of JSON input")),
|
||||
@@ -810,6 +817,7 @@ func TestAssignUserCmd(t *testing.T) {
|
||||
relation,
|
||||
userIds,
|
||||
invalidID,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrAuthorization, http.StatusForbidden),
|
||||
@@ -822,6 +830,7 @@ func TestAssignUserCmd(t *testing.T) {
|
||||
relation,
|
||||
fmt.Sprintf("[\"%s\"]", invalidID),
|
||||
channel.ID,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrAddPolicies, http.StatusBadRequest),
|
||||
@@ -832,7 +841,7 @@ func TestAssignUserCmd(t *testing.T) {
|
||||
|
||||
for _, tc := range cases {
|
||||
t.Run(tc.desc, func(t *testing.T) {
|
||||
sdkCall := sdkMock.On("AddUserToChannel", tc.args[2], mock.Anything, tc.args[3]).Return(tc.sdkErr)
|
||||
sdkCall := sdkMock.On("AddUserToChannel", tc.args[2], mock.Anything, tc.args[3], tc.args[4]).Return(tc.sdkErr)
|
||||
out := executeCommand(t, rootCmd, append([]string{assignCmd, usrCmd}, tc.args...)...)
|
||||
switch tc.logType {
|
||||
case okLog:
|
||||
@@ -867,6 +876,7 @@ func TestAssignGroupCmd(t *testing.T) {
|
||||
args: []string{
|
||||
grpIds,
|
||||
channel.ID,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
logType: okLog,
|
||||
@@ -876,6 +886,7 @@ func TestAssignGroupCmd(t *testing.T) {
|
||||
args: []string{
|
||||
grpIds,
|
||||
channel.ID,
|
||||
domainID,
|
||||
token,
|
||||
extraArg,
|
||||
},
|
||||
@@ -886,6 +897,7 @@ func TestAssignGroupCmd(t *testing.T) {
|
||||
args: []string{
|
||||
fmt.Sprintf("[\"%s\"", group.ID),
|
||||
channel.ID,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
sdkErr: errors.NewSDKError(errors.New("unexpected end of JSON input")),
|
||||
@@ -897,6 +909,7 @@ func TestAssignGroupCmd(t *testing.T) {
|
||||
args: []string{
|
||||
grpIds,
|
||||
invalidID,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrAuthorization, http.StatusForbidden),
|
||||
@@ -908,6 +921,7 @@ func TestAssignGroupCmd(t *testing.T) {
|
||||
args: []string{
|
||||
fmt.Sprintf("[\"%s\"]", invalidID),
|
||||
channel.ID,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrAddPolicies, http.StatusBadRequest),
|
||||
@@ -918,7 +932,7 @@ func TestAssignGroupCmd(t *testing.T) {
|
||||
|
||||
for _, tc := range cases {
|
||||
t.Run(tc.desc, func(t *testing.T) {
|
||||
sdkCall := sdkMock.On("AddUserGroupToChannel", tc.args[1], mock.Anything, tc.args[2]).Return(tc.sdkErr)
|
||||
sdkCall := sdkMock.On("AddUserGroupToChannel", tc.args[1], mock.Anything, tc.args[2], tc.args[3]).Return(tc.sdkErr)
|
||||
out := executeCommand(t, rootCmd, append([]string{assignCmd, grpCmd}, tc.args...)...)
|
||||
switch tc.logType {
|
||||
case okLog:
|
||||
@@ -954,6 +968,7 @@ func TestUnassignUserCmd(t *testing.T) {
|
||||
relation,
|
||||
userIds,
|
||||
channel.ID,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
logType: okLog,
|
||||
@@ -964,6 +979,7 @@ func TestUnassignUserCmd(t *testing.T) {
|
||||
relation,
|
||||
userIds,
|
||||
channel.ID,
|
||||
domainID,
|
||||
token,
|
||||
extraArg,
|
||||
},
|
||||
@@ -975,6 +991,7 @@ func TestUnassignUserCmd(t *testing.T) {
|
||||
relation,
|
||||
fmt.Sprintf("[\"%s\"", user.ID),
|
||||
channel.ID,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
sdkErr: errors.NewSDKError(errors.New("unexpected end of JSON input")),
|
||||
@@ -987,6 +1004,7 @@ func TestUnassignUserCmd(t *testing.T) {
|
||||
relation,
|
||||
userIds,
|
||||
invalidID,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrAuthorization, http.StatusForbidden),
|
||||
@@ -999,6 +1017,7 @@ func TestUnassignUserCmd(t *testing.T) {
|
||||
relation,
|
||||
fmt.Sprintf("[\"%s\"]", invalidID),
|
||||
channel.ID,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrAddPolicies, http.StatusBadRequest),
|
||||
@@ -1009,7 +1028,7 @@ func TestUnassignUserCmd(t *testing.T) {
|
||||
|
||||
for _, tc := range cases {
|
||||
t.Run(tc.desc, func(t *testing.T) {
|
||||
sdkCall := sdkMock.On("RemoveUserFromChannel", tc.args[2], mock.Anything, tc.args[3]).Return(tc.sdkErr)
|
||||
sdkCall := sdkMock.On("RemoveUserFromChannel", tc.args[2], mock.Anything, tc.args[3], tc.args[4]).Return(tc.sdkErr)
|
||||
out := executeCommand(t, rootCmd, append([]string{unassignCmd, usrCmd}, tc.args...)...)
|
||||
switch tc.logType {
|
||||
case okLog:
|
||||
@@ -1046,6 +1065,7 @@ func TestUnassignGroupCmd(t *testing.T) {
|
||||
grpCmd,
|
||||
grpIds,
|
||||
channel.ID,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
logType: okLog,
|
||||
@@ -1055,6 +1075,7 @@ func TestUnassignGroupCmd(t *testing.T) {
|
||||
args: []string{
|
||||
grpIds,
|
||||
channel.ID,
|
||||
domainID,
|
||||
token,
|
||||
extraArg,
|
||||
},
|
||||
@@ -1065,6 +1086,7 @@ func TestUnassignGroupCmd(t *testing.T) {
|
||||
args: []string{
|
||||
fmt.Sprintf("[\"%s\"", group.ID),
|
||||
channel.ID,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
sdkErr: errors.NewSDKError(errors.New("unexpected end of JSON input")),
|
||||
@@ -1076,6 +1098,7 @@ func TestUnassignGroupCmd(t *testing.T) {
|
||||
args: []string{
|
||||
grpIds,
|
||||
invalidID,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrAuthorization, http.StatusForbidden),
|
||||
@@ -1087,6 +1110,7 @@ func TestUnassignGroupCmd(t *testing.T) {
|
||||
args: []string{
|
||||
fmt.Sprintf("[\"%s\"]", invalidID),
|
||||
channel.ID,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrAddPolicies, http.StatusBadRequest),
|
||||
@@ -1097,7 +1121,7 @@ func TestUnassignGroupCmd(t *testing.T) {
|
||||
|
||||
for _, tc := range cases {
|
||||
t.Run(tc.desc, func(t *testing.T) {
|
||||
sdkCall := sdkMock.On("RemoveUserGroupFromChannel", tc.args[1], mock.Anything, tc.args[2]).Return(tc.sdkErr)
|
||||
sdkCall := sdkMock.On("RemoveUserGroupFromChannel", tc.args[1], mock.Anything, tc.args[2], tc.args[3]).Return(tc.sdkErr)
|
||||
out := executeCommand(t, rootCmd, append([]string{unassignCmd, grpCmd}, tc.args...)...)
|
||||
switch tc.logType {
|
||||
case okLog:
|
||||
|
||||
+67
-62
@@ -13,13 +13,13 @@ import (
|
||||
|
||||
var cmdGroups = []cobra.Command{
|
||||
{
|
||||
Use: "create <JSON_group> <user_auth_token>",
|
||||
Use: "create <JSON_group> <domain_id> <user_auth_token>",
|
||||
Short: "Create group",
|
||||
Long: "Creates new group\n" +
|
||||
"Usage:\n" +
|
||||
"\tmagistrala-cli groups create '{\"name\":\"new group\", \"description\":\"new group description\", \"metadata\":{\"key\": \"value\"}}' $USERTOKEN\n",
|
||||
"\tmagistrala-cli groups create '{\"name\":\"new group\", \"description\":\"new group description\", \"metadata\":{\"key\": \"value\"}}' $DOMAINID $USERTOKEN\n",
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
if len(args) != 2 {
|
||||
if len(args) != 3 {
|
||||
logUsageCmd(*cmd, cmd.Use)
|
||||
return
|
||||
}
|
||||
@@ -29,7 +29,7 @@ var cmdGroups = []cobra.Command{
|
||||
return
|
||||
}
|
||||
group.Status = mgclients.EnabledStatus.String()
|
||||
group, err := sdk.CreateGroup(group, args[1])
|
||||
group, err := sdk.CreateGroup(group, args[1], args[2])
|
||||
if err != nil {
|
||||
logErrorCmd(*cmd, err)
|
||||
return
|
||||
@@ -38,13 +38,13 @@ var cmdGroups = []cobra.Command{
|
||||
},
|
||||
},
|
||||
{
|
||||
Use: "update <JSON_group> <user_auth_token>",
|
||||
Use: "update <JSON_group> <domain_id> <user_auth_token>",
|
||||
Short: "Update group",
|
||||
Long: "Updates group\n" +
|
||||
"Usage:\n" +
|
||||
"\tmagistrala-cli groups update '{\"id\":\"<group_id>\", \"name\":\"new group\", \"description\":\"new group description\", \"metadata\":{\"key\": \"value\"}}' $USERTOKEN\n",
|
||||
"\tmagistrala-cli groups update '{\"id\":\"<group_id>\", \"name\":\"new group\", \"description\":\"new group description\", \"metadata\":{\"key\": \"value\"}}' $DOMAINID $USERTOKEN\n",
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
if len(args) != 2 {
|
||||
if len(args) != 3 {
|
||||
logUsageCmd(*cmd, cmd.Use)
|
||||
return
|
||||
}
|
||||
@@ -55,7 +55,7 @@ var cmdGroups = []cobra.Command{
|
||||
return
|
||||
}
|
||||
|
||||
group, err := sdk.UpdateGroup(group, args[1])
|
||||
group, err := sdk.UpdateGroup(group, args[1], args[2])
|
||||
if err != nil {
|
||||
logErrorCmd(*cmd, err)
|
||||
return
|
||||
@@ -65,29 +65,30 @@ var cmdGroups = []cobra.Command{
|
||||
},
|
||||
},
|
||||
{
|
||||
Use: "get [all | children <group_id> | parents <group_id> | members <group_id> | <group_id>] <user_auth_token>",
|
||||
Use: "get [all | children <group_id> | parents <group_id> | members <group_id> | <group_id>] <domain_id> <user_auth_token>",
|
||||
Short: "Get group",
|
||||
Long: "Get all users groups, group children or group by id.\n" +
|
||||
"Usage:\n" +
|
||||
"\tmagistrala-cli groups get all $USERTOKEN - lists all groups\n" +
|
||||
"\tmagistrala-cli groups get children <group_id> $USERTOKEN - lists all children groups of <group_id>\n" +
|
||||
"\tmagistrala-cli groups get parents <group_id> $USERTOKEN - lists all parent groups of <group_id>\n" +
|
||||
"\tmagistrala-cli groups get <group_id> $USERTOKEN - shows group with provided group ID\n",
|
||||
"\tmagistrala-cli groups get all $DOMAINID $USERTOKEN - lists all groups\n" +
|
||||
"\tmagistrala-cli groups get children <group_id> $DOMAINID $USERTOKEN - lists all children groups of <group_id>\n" +
|
||||
"\tmagistrala-cli groups get parents <group_id> $DOMAINID $USERTOKEN - lists all parent groups of <group_id>\n" +
|
||||
"\tmagistrala-cli groups get <group_id> $DOMAINID $USERTOKEN - shows group with provided group ID\n",
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
if len(args) < 2 {
|
||||
if len(args) < 3 {
|
||||
logUsageCmd(*cmd, cmd.Use)
|
||||
return
|
||||
}
|
||||
if args[0] == all {
|
||||
if len(args) > 2 {
|
||||
if len(args) > 3 {
|
||||
logUsageCmd(*cmd, cmd.Use)
|
||||
return
|
||||
}
|
||||
pm := mgxsdk.PageMetadata{
|
||||
Offset: Offset,
|
||||
Limit: Limit,
|
||||
Offset: Offset,
|
||||
Limit: Limit,
|
||||
DomainID: args[1],
|
||||
}
|
||||
l, err := sdk.Groups(pm, args[1])
|
||||
l, err := sdk.Groups(pm, args[2])
|
||||
if err != nil {
|
||||
logErrorCmd(*cmd, err)
|
||||
return
|
||||
@@ -96,15 +97,16 @@ var cmdGroups = []cobra.Command{
|
||||
return
|
||||
}
|
||||
if args[0] == "children" {
|
||||
if len(args) > 3 {
|
||||
if len(args) > 4 {
|
||||
logUsageCmd(*cmd, cmd.Use)
|
||||
return
|
||||
}
|
||||
pm := mgxsdk.PageMetadata{
|
||||
Offset: Offset,
|
||||
Limit: Limit,
|
||||
Offset: Offset,
|
||||
Limit: Limit,
|
||||
DomainID: args[2],
|
||||
}
|
||||
l, err := sdk.Children(args[1], pm, args[2])
|
||||
l, err := sdk.Children(args[1], pm, args[3])
|
||||
if err != nil {
|
||||
logErrorCmd(*cmd, err)
|
||||
return
|
||||
@@ -113,15 +115,16 @@ var cmdGroups = []cobra.Command{
|
||||
return
|
||||
}
|
||||
if args[0] == "parents" {
|
||||
if len(args) > 3 {
|
||||
if len(args) > 4 {
|
||||
logUsageCmd(*cmd, cmd.Use)
|
||||
return
|
||||
}
|
||||
pm := mgxsdk.PageMetadata{
|
||||
Offset: Offset,
|
||||
Limit: Limit,
|
||||
Offset: Offset,
|
||||
Limit: Limit,
|
||||
DomainID: args[2],
|
||||
}
|
||||
l, err := sdk.Parents(args[1], pm, args[2])
|
||||
l, err := sdk.Parents(args[1], pm, args[3])
|
||||
if err != nil {
|
||||
logErrorCmd(*cmd, err)
|
||||
return
|
||||
@@ -129,11 +132,11 @@ var cmdGroups = []cobra.Command{
|
||||
logJSONCmd(*cmd, l)
|
||||
return
|
||||
}
|
||||
if len(args) > 2 {
|
||||
if len(args) > 3 {
|
||||
logUsageCmd(*cmd, cmd.Use)
|
||||
return
|
||||
}
|
||||
t, err := sdk.Group(args[0], args[1])
|
||||
t, err := sdk.Group(args[0], args[1], args[2])
|
||||
if err != nil {
|
||||
logErrorCmd(*cmd, err)
|
||||
return
|
||||
@@ -142,17 +145,17 @@ var cmdGroups = []cobra.Command{
|
||||
},
|
||||
},
|
||||
{
|
||||
Use: "delete <group_id> <user_auth_token>",
|
||||
Use: "delete <group_id> <domain_id> <user_auth_token>",
|
||||
Short: "Delete group",
|
||||
Long: "Delete group by id.\n" +
|
||||
"Usage:\n" +
|
||||
"\tmagistrala-cli groups delete <group_id> $USERTOKEN - delete the given group ID\n",
|
||||
"\tmagistrala-cli groups delete <group_id> $DOMAINID $USERTOKEN - delete the given group ID\n",
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
if len(args) != 2 {
|
||||
if len(args) != 3 {
|
||||
logUsageCmd(*cmd, cmd.Use)
|
||||
return
|
||||
}
|
||||
if err := sdk.DeleteGroup(args[0], args[1]); err != nil {
|
||||
if err := sdk.DeleteGroup(args[0], args[1], args[2]); err != nil {
|
||||
logErrorCmd(*cmd, err)
|
||||
return
|
||||
}
|
||||
@@ -160,22 +163,23 @@ var cmdGroups = []cobra.Command{
|
||||
},
|
||||
},
|
||||
{
|
||||
Use: "users <group_id> <user_auth_token>",
|
||||
Use: "users <group_id> <domain_id> <user_auth_token>",
|
||||
Short: "List users",
|
||||
Long: "List users in a group\n" +
|
||||
"Usage:\n" +
|
||||
"\tmagistrala-cli groups users <group_id> $USERTOKEN",
|
||||
"\tmagistrala-cli groups users <group_id> $DOMAINID $USERTOKEN",
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
if len(args) != 2 {
|
||||
if len(args) != 3 {
|
||||
logUsageCmd(*cmd, cmd.Use)
|
||||
return
|
||||
}
|
||||
pm := mgxsdk.PageMetadata{
|
||||
Offset: Offset,
|
||||
Limit: Limit,
|
||||
Status: Status,
|
||||
Offset: Offset,
|
||||
Limit: Limit,
|
||||
Status: Status,
|
||||
DomainID: args[1],
|
||||
}
|
||||
users, err := sdk.ListGroupUsers(args[0], pm, args[1])
|
||||
users, err := sdk.ListGroupUsers(args[0], pm, args[2])
|
||||
if err != nil {
|
||||
logErrorCmd(*cmd, err)
|
||||
return
|
||||
@@ -184,22 +188,23 @@ var cmdGroups = []cobra.Command{
|
||||
},
|
||||
},
|
||||
{
|
||||
Use: "channels <group_id> <user_auth_token>",
|
||||
Use: "channels <group_id> <domain_id> <user_auth_token>",
|
||||
Short: "List channels",
|
||||
Long: "List channels in a group\n" +
|
||||
"Usage:\n" +
|
||||
"\tmagistrala-cli groups channels <group_id> $USERTOKEN",
|
||||
"\tmagistrala-cli groups channels <group_id> $DOMAINID $USERTOKEN",
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
if len(args) != 2 {
|
||||
if len(args) != 3 {
|
||||
logUsageCmd(*cmd, cmd.Use)
|
||||
return
|
||||
}
|
||||
pm := mgxsdk.PageMetadata{
|
||||
Offset: Offset,
|
||||
Limit: Limit,
|
||||
Status: Status,
|
||||
Offset: Offset,
|
||||
Limit: Limit,
|
||||
Status: Status,
|
||||
DomainID: args[1],
|
||||
}
|
||||
channels, err := sdk.ListGroupChannels(args[0], pm, args[1])
|
||||
channels, err := sdk.ListGroupChannels(args[0], pm, args[2])
|
||||
if err != nil {
|
||||
logErrorCmd(*cmd, err)
|
||||
return
|
||||
@@ -208,18 +213,18 @@ var cmdGroups = []cobra.Command{
|
||||
},
|
||||
},
|
||||
{
|
||||
Use: "enable <group_id> <user_auth_token>",
|
||||
Use: "enable <group_id> <domain_id> <user_auth_token>",
|
||||
Short: "Change group status to enabled",
|
||||
Long: "Change group status to enabled\n" +
|
||||
"Usage:\n" +
|
||||
"\tmagistrala-cli groups enable <group_id> $USERTOKEN\n",
|
||||
"\tmagistrala-cli groups enable <group_id> $DOMAINID $USERTOKEN\n",
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
if len(args) != 2 {
|
||||
if len(args) != 3 {
|
||||
logUsageCmd(*cmd, cmd.Use)
|
||||
return
|
||||
}
|
||||
|
||||
group, err := sdk.EnableGroup(args[0], args[1])
|
||||
group, err := sdk.EnableGroup(args[0], args[1], args[2])
|
||||
if err != nil {
|
||||
logErrorCmd(*cmd, err)
|
||||
return
|
||||
@@ -229,18 +234,18 @@ var cmdGroups = []cobra.Command{
|
||||
},
|
||||
},
|
||||
{
|
||||
Use: "disable <group_id> <user_auth_token>",
|
||||
Use: "disable <group_id> <domain_id> <user_auth_token>",
|
||||
Short: "Change group status to disabled",
|
||||
Long: "Change group status to disabled\n" +
|
||||
"Usage:\n" +
|
||||
"\tmagistrala-cli groups disable <group_id> $USERTOKEN\n",
|
||||
"\tmagistrala-cli groups disable <group_id> $DOMAINID $USERTOKEN\n",
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
if len(args) != 2 {
|
||||
if len(args) != 3 {
|
||||
logUsageCmd(*cmd, cmd.Use)
|
||||
return
|
||||
}
|
||||
|
||||
group, err := sdk.DisableGroup(args[0], args[1])
|
||||
group, err := sdk.DisableGroup(args[0], args[1], args[2])
|
||||
if err != nil {
|
||||
logErrorCmd(*cmd, err)
|
||||
return
|
||||
@@ -253,13 +258,13 @@ var cmdGroups = []cobra.Command{
|
||||
|
||||
var groupAssignCmds = []cobra.Command{
|
||||
{
|
||||
Use: "users <relation> <user_ids> <group_id> <user_auth_token>",
|
||||
Use: "users <relation> <user_ids> <group_id> <domain_id> <user_auth_token>",
|
||||
Short: "Assign users",
|
||||
Long: "Assign users to a group\n" +
|
||||
"Usage:\n" +
|
||||
"\tmagistrala-cli groups assign users <relation> '[\"<user_id_1>\", \"<user_id_2>\"]' <group_id> $USERTOKEN\n",
|
||||
"\tmagistrala-cli groups assign users <relation> '[\"<user_id_1>\", \"<user_id_2>\"]' <group_id> $DOMAINID $USERTOKEN\n",
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
if len(args) != 4 {
|
||||
if len(args) != 5 {
|
||||
logUsageCmd(*cmd, cmd.Use)
|
||||
return
|
||||
}
|
||||
@@ -268,7 +273,7 @@ var groupAssignCmds = []cobra.Command{
|
||||
logErrorCmd(*cmd, err)
|
||||
return
|
||||
}
|
||||
if err := sdk.AddUserToGroup(args[2], mgxsdk.UsersRelationRequest{Relation: args[0], UserIDs: userIDs}, args[3]); err != nil {
|
||||
if err := sdk.AddUserToGroup(args[2], mgxsdk.UsersRelationRequest{Relation: args[0], UserIDs: userIDs}, args[3], args[4]); err != nil {
|
||||
logErrorCmd(*cmd, err)
|
||||
return
|
||||
}
|
||||
@@ -279,13 +284,13 @@ var groupAssignCmds = []cobra.Command{
|
||||
|
||||
var groupUnassignCmds = []cobra.Command{
|
||||
{
|
||||
Use: "users <relation> <user_ids> <group_id> <user_auth_token>",
|
||||
Use: "users <relation> <user_ids> <group_id> <domain_id> <user_auth_token>",
|
||||
Short: "Unassign users",
|
||||
Long: "Unassign users from a group\n" +
|
||||
"Usage:\n" +
|
||||
"\tmagistrala-cli groups unassign users <relation> '[\"<user_id_1>\", \"<user_id_2>\"]' <group_id> $USERTOKEN\n",
|
||||
"\tmagistrala-cli groups unassign users <relation> '[\"<user_id_1>\", \"<user_id_2>\"]' <group_id> $DOMAINID $USERTOKEN\n",
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
if len(args) != 4 {
|
||||
if len(args) != 5 {
|
||||
logUsageCmd(*cmd, cmd.Use)
|
||||
return
|
||||
}
|
||||
@@ -294,7 +299,7 @@ var groupUnassignCmds = []cobra.Command{
|
||||
logErrorCmd(*cmd, err)
|
||||
return
|
||||
}
|
||||
if err := sdk.RemoveUserFromGroup(args[2], mgxsdk.UsersRelationRequest{Relation: args[0], UserIDs: userIDs}, args[3]); err != nil {
|
||||
if err := sdk.RemoveUserFromGroup(args[2], mgxsdk.UsersRelationRequest{Relation: args[0], UserIDs: userIDs}, args[3], args[4]); err != nil {
|
||||
logErrorCmd(*cmd, err)
|
||||
return
|
||||
}
|
||||
|
||||
+76
-26
@@ -45,6 +45,7 @@ func TestCreateGroupCmd(t *testing.T) {
|
||||
desc: "create group successfully",
|
||||
args: []string{
|
||||
groupJson,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
group: group,
|
||||
@@ -54,6 +55,7 @@ func TestCreateGroupCmd(t *testing.T) {
|
||||
desc: "create group with invalid args",
|
||||
args: []string{
|
||||
groupJson,
|
||||
domainID,
|
||||
token,
|
||||
extraArg,
|
||||
},
|
||||
@@ -63,6 +65,7 @@ func TestCreateGroupCmd(t *testing.T) {
|
||||
desc: "create group with invalid json",
|
||||
args: []string{
|
||||
"{\"name\":\"testgroup\", \"metadata\":{\"key1\":\"value1\"}",
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
sdkErr: errors.NewSDKError(errors.New("unexpected end of JSON input")),
|
||||
@@ -73,6 +76,7 @@ func TestCreateGroupCmd(t *testing.T) {
|
||||
desc: "create group with invalid token",
|
||||
args: []string{
|
||||
groupJson,
|
||||
domainID,
|
||||
invalidToken,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrAuthorization, http.StatusUnauthorized),
|
||||
@@ -80,10 +84,11 @@ func TestCreateGroupCmd(t *testing.T) {
|
||||
logType: errLog,
|
||||
},
|
||||
{
|
||||
desc: "create group without domain token",
|
||||
desc: "create group with invalid domain",
|
||||
args: []string{
|
||||
groupJson,
|
||||
tokenWithoutDomain,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrDomainAuthorization, http.StatusForbidden),
|
||||
errLogMessage: fmt.Sprintf("\nerror: %s\n\n", errors.NewSDKErrorWithStatus(svcerr.ErrDomainAuthorization, http.StatusForbidden)),
|
||||
@@ -93,7 +98,7 @@ func TestCreateGroupCmd(t *testing.T) {
|
||||
|
||||
for _, tc := range cases {
|
||||
t.Run(tc.desc, func(t *testing.T) {
|
||||
sdkCall := sdkMock.On("CreateGroup", mock.Anything, tc.args[1]).Return(tc.group, tc.sdkErr)
|
||||
sdkCall := sdkMock.On("CreateGroup", mock.Anything, tc.args[1], tc.args[2]).Return(tc.group, tc.sdkErr)
|
||||
out := executeCommand(t, rootCmd, append([]string{createCmd}, tc.args...)...)
|
||||
|
||||
switch tc.logType {
|
||||
@@ -133,6 +138,7 @@ func TestGetGroupsCmd(t *testing.T) {
|
||||
desc: "get all groups successfully",
|
||||
args: []string{
|
||||
all,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
page: mgsdk.GroupsPage{
|
||||
@@ -144,28 +150,31 @@ func TestGetGroupsCmd(t *testing.T) {
|
||||
desc: "get all groups with invalid args",
|
||||
args: []string{
|
||||
all,
|
||||
domainID,
|
||||
token,
|
||||
extraArg,
|
||||
},
|
||||
logType: usageLog,
|
||||
},
|
||||
{
|
||||
desc: "get children groups successfully",
|
||||
args: []string{
|
||||
childCmd,
|
||||
group.ID,
|
||||
token,
|
||||
},
|
||||
page: mgsdk.GroupsPage{
|
||||
Groups: []mgsdk.Group{group},
|
||||
},
|
||||
logType: entityLog,
|
||||
},
|
||||
// {
|
||||
// desc: "get children groups successfully",
|
||||
// args: []string{
|
||||
// childCmd,
|
||||
// group.ID,
|
||||
// domainID,
|
||||
// token,
|
||||
// },
|
||||
// page: mgsdk.GroupsPage{
|
||||
// Groups: []mgsdk.Group{group},
|
||||
// },
|
||||
// logType: entityLog,
|
||||
// },
|
||||
{
|
||||
desc: "get children groups with invalid args",
|
||||
args: []string{
|
||||
childCmd,
|
||||
group.ID,
|
||||
domainID,
|
||||
token,
|
||||
extraArg,
|
||||
},
|
||||
@@ -176,6 +185,7 @@ func TestGetGroupsCmd(t *testing.T) {
|
||||
args: []string{
|
||||
childCmd,
|
||||
group.ID,
|
||||
domainID,
|
||||
invalidToken,
|
||||
},
|
||||
logType: errLog,
|
||||
@@ -187,6 +197,7 @@ func TestGetGroupsCmd(t *testing.T) {
|
||||
args: []string{
|
||||
parentCmd,
|
||||
group.ID,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
page: mgsdk.GroupsPage{
|
||||
@@ -199,6 +210,7 @@ func TestGetGroupsCmd(t *testing.T) {
|
||||
args: []string{
|
||||
parentCmd,
|
||||
group.ID,
|
||||
domainID,
|
||||
token,
|
||||
extraArg,
|
||||
},
|
||||
@@ -209,6 +221,7 @@ func TestGetGroupsCmd(t *testing.T) {
|
||||
args: []string{
|
||||
parentCmd,
|
||||
group.ID,
|
||||
domainID,
|
||||
invalidToken,
|
||||
},
|
||||
logType: errLog,
|
||||
@@ -219,6 +232,7 @@ func TestGetGroupsCmd(t *testing.T) {
|
||||
desc: "get group with id",
|
||||
args: []string{
|
||||
group.ID,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
logType: entityLog,
|
||||
@@ -235,6 +249,7 @@ func TestGetGroupsCmd(t *testing.T) {
|
||||
desc: "get all groups with invalid token",
|
||||
args: []string{
|
||||
all,
|
||||
domainID,
|
||||
invalidToken,
|
||||
},
|
||||
logType: errLog,
|
||||
@@ -242,10 +257,11 @@ func TestGetGroupsCmd(t *testing.T) {
|
||||
errLogMessage: fmt.Sprintf("\nerror: %s\n\n", errors.NewSDKErrorWithStatus(svcerr.ErrAuthorization, http.StatusForbidden)),
|
||||
},
|
||||
{
|
||||
desc: "get group without domain token",
|
||||
desc: "get group with invalid domain",
|
||||
args: []string{
|
||||
group.ID,
|
||||
invalidToken,
|
||||
invalidID,
|
||||
token,
|
||||
},
|
||||
logType: errLog,
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrDomainAuthorization, http.StatusForbidden),
|
||||
@@ -255,6 +271,7 @@ func TestGetGroupsCmd(t *testing.T) {
|
||||
desc: "get group with invalid id",
|
||||
args: []string{
|
||||
invalidID,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrAuthorization, http.StatusForbidden),
|
||||
@@ -265,6 +282,7 @@ func TestGetGroupsCmd(t *testing.T) {
|
||||
desc: "get group with invalid args",
|
||||
args: []string{
|
||||
group.ID,
|
||||
domainID,
|
||||
token,
|
||||
extraArg,
|
||||
},
|
||||
@@ -274,7 +292,7 @@ func TestGetGroupsCmd(t *testing.T) {
|
||||
|
||||
for _, tc := range cases {
|
||||
t.Run(tc.desc, func(t *testing.T) {
|
||||
sdkCall := sdkMock.On("Group", mock.Anything, mock.Anything).Return(tc.group, tc.sdkErr)
|
||||
sdkCall := sdkMock.On("Group", mock.Anything, mock.Anything, mock.Anything).Return(tc.group, tc.sdkErr)
|
||||
sdkCall1 := sdkMock.On("Groups", mock.Anything, mock.Anything).Return(tc.page, tc.sdkErr)
|
||||
sdkCall2 := sdkMock.On("Parents", mock.Anything, mock.Anything, mock.Anything).Return(tc.page, tc.sdkErr)
|
||||
sdkCall3 := sdkMock.On("Children", mock.Anything, mock.Anything, mock.Anything).Return(tc.page, tc.sdkErr)
|
||||
@@ -322,6 +340,7 @@ func TestDeletegroupCmd(t *testing.T) {
|
||||
desc: "delete group successfully",
|
||||
args: []string{
|
||||
group.ID,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
logType: okLog,
|
||||
@@ -330,6 +349,7 @@ func TestDeletegroupCmd(t *testing.T) {
|
||||
desc: "delete group with invalid args",
|
||||
args: []string{
|
||||
group.ID,
|
||||
domainID,
|
||||
token,
|
||||
extraArg,
|
||||
},
|
||||
@@ -339,6 +359,7 @@ func TestDeletegroupCmd(t *testing.T) {
|
||||
desc: "delete group with invalid id",
|
||||
args: []string{
|
||||
invalidID,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrAuthorization, http.StatusForbidden),
|
||||
@@ -349,6 +370,7 @@ func TestDeletegroupCmd(t *testing.T) {
|
||||
desc: "delete group with invalid token",
|
||||
args: []string{
|
||||
group.ID,
|
||||
domainID,
|
||||
invalidToken,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrAuthorization, http.StatusForbidden),
|
||||
@@ -359,7 +381,7 @@ func TestDeletegroupCmd(t *testing.T) {
|
||||
|
||||
for _, tc := range cases {
|
||||
t.Run(tc.desc, func(t *testing.T) {
|
||||
sdkCall := sdkMock.On("DeleteGroup", tc.args[0], tc.args[1]).Return(tc.sdkErr)
|
||||
sdkCall := sdkMock.On("DeleteGroup", tc.args[0], tc.args[1], tc.args[2]).Return(tc.sdkErr)
|
||||
out := executeCommand(t, rootCmd, append([]string{delCmd}, tc.args...)...)
|
||||
|
||||
switch tc.logType {
|
||||
@@ -394,6 +416,7 @@ func TestUpdategroupCmd(t *testing.T) {
|
||||
desc: "update group successfully",
|
||||
args: []string{
|
||||
newGroupJson,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
group: mgsdk.Group{
|
||||
@@ -406,6 +429,7 @@ func TestUpdategroupCmd(t *testing.T) {
|
||||
desc: "update group with invalid args",
|
||||
args: []string{
|
||||
newGroupJson,
|
||||
domainID,
|
||||
token,
|
||||
extraArg,
|
||||
},
|
||||
@@ -415,6 +439,7 @@ func TestUpdategroupCmd(t *testing.T) {
|
||||
desc: "update group with invalid group id",
|
||||
args: []string{
|
||||
fmt.Sprintf("{\"id\":\"%s\",\"name\" : \"group1\"}", invalidID),
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrAuthorization, http.StatusForbidden),
|
||||
@@ -425,6 +450,7 @@ func TestUpdategroupCmd(t *testing.T) {
|
||||
desc: "update group with invalid json syntax",
|
||||
args: []string{
|
||||
fmt.Sprintf("{\"id\":\"%s\",\"name\" : \"group1\"", group.ID),
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
sdkErr: errors.NewSDKError(errors.New("unexpected end of JSON input")),
|
||||
@@ -435,7 +461,7 @@ func TestUpdategroupCmd(t *testing.T) {
|
||||
for _, tc := range cases {
|
||||
t.Run(tc.desc, func(t *testing.T) {
|
||||
var ch mgsdk.Group
|
||||
sdkCall := sdkMock.On("UpdateGroup", mock.Anything, tc.args[1]).Return(tc.group, tc.sdkErr)
|
||||
sdkCall := sdkMock.On("UpdateGroup", mock.Anything, tc.args[1], tc.args[2]).Return(tc.group, tc.sdkErr)
|
||||
out := executeCommand(t, rootCmd, append([]string{updCmd}, tc.args...)...)
|
||||
|
||||
switch tc.logType {
|
||||
@@ -472,6 +498,7 @@ func TestListUsersCmd(t *testing.T) {
|
||||
desc: "list users successfully",
|
||||
args: []string{
|
||||
group.ID,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
page: mgsdk.UsersPage{
|
||||
@@ -488,6 +515,7 @@ func TestListUsersCmd(t *testing.T) {
|
||||
desc: "list users with invalid args",
|
||||
args: []string{
|
||||
group.ID,
|
||||
domainID,
|
||||
token,
|
||||
extraArg,
|
||||
},
|
||||
@@ -497,6 +525,7 @@ func TestListUsersCmd(t *testing.T) {
|
||||
desc: "list users with invalid id",
|
||||
args: []string{
|
||||
invalidID,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrAuthorization, http.StatusForbidden),
|
||||
@@ -506,7 +535,7 @@ func TestListUsersCmd(t *testing.T) {
|
||||
}
|
||||
for _, tc := range cases {
|
||||
t.Run(tc.desc, func(t *testing.T) {
|
||||
sdkCall := sdkMock.On("ListGroupUsers", tc.args[0], mock.Anything, tc.args[1]).Return(tc.page, tc.sdkErr)
|
||||
sdkCall := sdkMock.On("ListGroupUsers", tc.args[0], mock.Anything, tc.args[2]).Return(tc.page, tc.sdkErr)
|
||||
out := executeCommand(t, rootCmd, append([]string{usrCmd}, tc.args...)...)
|
||||
switch tc.logType {
|
||||
case entityLog:
|
||||
@@ -544,6 +573,7 @@ func TestListChannelsCmd(t *testing.T) {
|
||||
desc: "list channels successfully",
|
||||
args: []string{
|
||||
group.ID,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
page: mgsdk.ChannelsPage{
|
||||
@@ -560,6 +590,7 @@ func TestListChannelsCmd(t *testing.T) {
|
||||
desc: "list channels with invalid args",
|
||||
args: []string{
|
||||
group.ID,
|
||||
domainID,
|
||||
token,
|
||||
extraArg,
|
||||
},
|
||||
@@ -569,6 +600,7 @@ func TestListChannelsCmd(t *testing.T) {
|
||||
desc: "list channels with invalid id",
|
||||
args: []string{
|
||||
invalidID,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrAuthorization, http.StatusForbidden),
|
||||
@@ -578,7 +610,7 @@ func TestListChannelsCmd(t *testing.T) {
|
||||
}
|
||||
for _, tc := range cases {
|
||||
t.Run(tc.desc, func(t *testing.T) {
|
||||
sdkCall := sdkMock.On("ListGroupChannels", tc.args[0], mock.Anything, tc.args[1]).Return(tc.page, tc.sdkErr)
|
||||
sdkCall := sdkMock.On("ListGroupChannels", tc.args[0], mock.Anything, tc.args[2]).Return(tc.page, tc.sdkErr)
|
||||
out := executeCommand(t, rootCmd, append([]string{chansCmd}, tc.args...)...)
|
||||
switch tc.logType {
|
||||
case entityLog:
|
||||
@@ -616,6 +648,7 @@ func TestEnablegroupCmd(t *testing.T) {
|
||||
desc: "enable group successfully",
|
||||
args: []string{
|
||||
group.ID,
|
||||
domainID,
|
||||
validToken,
|
||||
},
|
||||
group: group,
|
||||
@@ -625,6 +658,7 @@ func TestEnablegroupCmd(t *testing.T) {
|
||||
desc: "delete group with invalid token",
|
||||
args: []string{
|
||||
group.ID,
|
||||
domainID,
|
||||
invalidToken,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrAuthorization, http.StatusForbidden),
|
||||
@@ -635,6 +669,7 @@ func TestEnablegroupCmd(t *testing.T) {
|
||||
desc: "delete group with invalid group ID",
|
||||
args: []string{
|
||||
invalidID,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrAuthorization, http.StatusForbidden),
|
||||
@@ -645,6 +680,7 @@ func TestEnablegroupCmd(t *testing.T) {
|
||||
desc: "enable group with invalid args",
|
||||
args: []string{
|
||||
group.ID,
|
||||
domainID,
|
||||
validToken,
|
||||
extraArg,
|
||||
},
|
||||
@@ -654,7 +690,7 @@ func TestEnablegroupCmd(t *testing.T) {
|
||||
|
||||
for _, tc := range cases {
|
||||
t.Run(tc.desc, func(t *testing.T) {
|
||||
sdkCall := sdkMock.On("EnableGroup", tc.args[0], tc.args[1]).Return(tc.group, tc.sdkErr)
|
||||
sdkCall := sdkMock.On("EnableGroup", tc.args[0], tc.args[1], tc.args[2]).Return(tc.group, tc.sdkErr)
|
||||
out := executeCommand(t, rootCmd, append([]string{enableCmd}, tc.args...)...)
|
||||
|
||||
switch tc.logType {
|
||||
@@ -693,6 +729,7 @@ func TestDisablegroupCmd(t *testing.T) {
|
||||
desc: "disable group successfully",
|
||||
args: []string{
|
||||
group.ID,
|
||||
domainID,
|
||||
validToken,
|
||||
},
|
||||
logType: entityLog,
|
||||
@@ -702,6 +739,7 @@ func TestDisablegroupCmd(t *testing.T) {
|
||||
desc: "disable group with invalid token",
|
||||
args: []string{
|
||||
group.ID,
|
||||
domainID,
|
||||
invalidToken,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrAuthorization, http.StatusForbidden),
|
||||
@@ -712,6 +750,7 @@ func TestDisablegroupCmd(t *testing.T) {
|
||||
desc: "disable group with invalid id",
|
||||
args: []string{
|
||||
invalidID,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrAuthorization, http.StatusForbidden),
|
||||
@@ -722,6 +761,7 @@ func TestDisablegroupCmd(t *testing.T) {
|
||||
desc: "disable thing with invalid args",
|
||||
args: []string{
|
||||
group.ID,
|
||||
domainID,
|
||||
validToken,
|
||||
extraArg,
|
||||
},
|
||||
@@ -731,7 +771,7 @@ func TestDisablegroupCmd(t *testing.T) {
|
||||
|
||||
for _, tc := range cases {
|
||||
t.Run(tc.desc, func(t *testing.T) {
|
||||
sdkCall := sdkMock.On("DisableGroup", tc.args[0], tc.args[1]).Return(tc.group, tc.sdkErr)
|
||||
sdkCall := sdkMock.On("DisableGroup", tc.args[0], tc.args[1], tc.args[2]).Return(tc.group, tc.sdkErr)
|
||||
out := executeCommand(t, rootCmd, append([]string{disableCmd}, tc.args...)...)
|
||||
|
||||
switch tc.logType {
|
||||
@@ -773,6 +813,7 @@ func TestAssignUserToGroupCmd(t *testing.T) {
|
||||
relation,
|
||||
userIds,
|
||||
group.ID,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
logType: okLog,
|
||||
@@ -783,6 +824,7 @@ func TestAssignUserToGroupCmd(t *testing.T) {
|
||||
relation,
|
||||
userIds,
|
||||
group.ID,
|
||||
domainID,
|
||||
token,
|
||||
extraArg,
|
||||
},
|
||||
@@ -794,6 +836,7 @@ func TestAssignUserToGroupCmd(t *testing.T) {
|
||||
relation,
|
||||
fmt.Sprintf("[\"%s\"", user.ID),
|
||||
group.ID,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
sdkErr: errors.NewSDKError(errors.New("unexpected end of JSON input")),
|
||||
@@ -806,6 +849,7 @@ func TestAssignUserToGroupCmd(t *testing.T) {
|
||||
relation,
|
||||
userIds,
|
||||
invalidID,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrAuthorization, http.StatusForbidden),
|
||||
@@ -818,6 +862,7 @@ func TestAssignUserToGroupCmd(t *testing.T) {
|
||||
relation,
|
||||
fmt.Sprintf("[\"%s\"]", invalidID),
|
||||
group.ID,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrAddPolicies, http.StatusBadRequest),
|
||||
@@ -828,7 +873,7 @@ func TestAssignUserToGroupCmd(t *testing.T) {
|
||||
|
||||
for _, tc := range cases {
|
||||
t.Run(tc.desc, func(t *testing.T) {
|
||||
sdkCall := sdkMock.On("AddUserToGroup", tc.args[2], mock.Anything, tc.args[3]).Return(tc.sdkErr)
|
||||
sdkCall := sdkMock.On("AddUserToGroup", tc.args[2], mock.Anything, tc.args[3], tc.args[4]).Return(tc.sdkErr)
|
||||
out := executeCommand(t, rootCmd, append([]string{assignCmd, usrCmd}, tc.args...)...)
|
||||
switch tc.logType {
|
||||
case okLog:
|
||||
@@ -864,6 +909,7 @@ func TestUnassignUserToGroupCmd(t *testing.T) {
|
||||
relation,
|
||||
userIds,
|
||||
group.ID,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
logType: okLog,
|
||||
@@ -874,6 +920,7 @@ func TestUnassignUserToGroupCmd(t *testing.T) {
|
||||
relation,
|
||||
userIds,
|
||||
group.ID,
|
||||
domainID,
|
||||
token,
|
||||
extraArg,
|
||||
},
|
||||
@@ -885,6 +932,7 @@ func TestUnassignUserToGroupCmd(t *testing.T) {
|
||||
relation,
|
||||
fmt.Sprintf("[\"%s\"", user.ID),
|
||||
group.ID,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
sdkErr: errors.NewSDKError(errors.New("unexpected end of JSON input")),
|
||||
@@ -897,6 +945,7 @@ func TestUnassignUserToGroupCmd(t *testing.T) {
|
||||
relation,
|
||||
userIds,
|
||||
invalidID,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrAuthorization, http.StatusForbidden),
|
||||
@@ -909,6 +958,7 @@ func TestUnassignUserToGroupCmd(t *testing.T) {
|
||||
relation,
|
||||
fmt.Sprintf("[\"%s\"]", invalidID),
|
||||
group.ID,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrAddPolicies, http.StatusBadRequest),
|
||||
@@ -919,7 +969,7 @@ func TestUnassignUserToGroupCmd(t *testing.T) {
|
||||
|
||||
for _, tc := range cases {
|
||||
t.Run(tc.desc, func(t *testing.T) {
|
||||
sdkCall := sdkMock.On("RemoveUserFromGroup", tc.args[2], mock.Anything, tc.args[3]).Return(tc.sdkErr)
|
||||
sdkCall := sdkMock.On("RemoveUserFromGroup", tc.args[2], mock.Anything, tc.args[3], tc.args[4]).Return(tc.sdkErr)
|
||||
out := executeCommand(t, rootCmd, append([]string{unassignCmd, usrCmd}, tc.args...)...)
|
||||
switch tc.logType {
|
||||
case okLog:
|
||||
|
||||
+14
-14
@@ -31,11 +31,11 @@ var (
|
||||
|
||||
var cmdProvision = []cobra.Command{
|
||||
{
|
||||
Use: "things <things_file> <user_token>",
|
||||
Use: "things <things_file> <domain_id> <user_token>",
|
||||
Short: "Provision things",
|
||||
Long: `Bulk create things`,
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
if len(args) != 2 {
|
||||
if len(args) != 3 {
|
||||
logUsageCmd(*cmd, cmd.Use)
|
||||
return
|
||||
}
|
||||
@@ -51,7 +51,7 @@ var cmdProvision = []cobra.Command{
|
||||
return
|
||||
}
|
||||
|
||||
things, err = sdk.CreateThings(things, args[1])
|
||||
things, err = sdk.CreateThings(things, args[1], args[2])
|
||||
if err != nil {
|
||||
logErrorCmd(*cmd, err)
|
||||
return
|
||||
@@ -61,11 +61,11 @@ var cmdProvision = []cobra.Command{
|
||||
},
|
||||
},
|
||||
{
|
||||
Use: "channels <channels_file> <user_token>",
|
||||
Use: "channels <channels_file> <domain_id> <user_token>",
|
||||
Short: "Provision channels",
|
||||
Long: `Bulk create channels`,
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
if len(args) != 2 {
|
||||
if len(args) != 3 {
|
||||
logUsageCmd(*cmd, cmd.Use)
|
||||
return
|
||||
}
|
||||
@@ -78,7 +78,7 @@ var cmdProvision = []cobra.Command{
|
||||
|
||||
var chs []mgxsdk.Channel
|
||||
for _, c := range channels {
|
||||
c, err = sdk.CreateChannel(c, args[1])
|
||||
c, err = sdk.CreateChannel(c, args[1], args[2])
|
||||
if err != nil {
|
||||
logErrorCmd(*cmd, err)
|
||||
return
|
||||
@@ -91,11 +91,11 @@ var cmdProvision = []cobra.Command{
|
||||
},
|
||||
},
|
||||
{
|
||||
Use: "connect <connections_file> <user_token>",
|
||||
Use: "connect <connections_file> <domain_id> <user_token>",
|
||||
Short: "Provision connections",
|
||||
Long: `Bulk connect things to channels`,
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
if len(args) != 2 {
|
||||
if len(args) != 3 {
|
||||
logUsageCmd(*cmd, cmd.Use)
|
||||
return
|
||||
}
|
||||
@@ -106,7 +106,7 @@ var cmdProvision = []cobra.Command{
|
||||
return
|
||||
}
|
||||
for _, conn := range connIDs {
|
||||
if err := sdk.Connect(conn, args[1]); err != nil {
|
||||
if err := sdk.Connect(conn, args[1], args[2]); err != nil {
|
||||
logErrorCmd(*cmd, err)
|
||||
return
|
||||
}
|
||||
@@ -182,7 +182,7 @@ var cmdProvision = []cobra.Command{
|
||||
|
||||
things = append(things, t)
|
||||
}
|
||||
things, err = sdk.CreateThings(things, ut.AccessToken)
|
||||
things, err = sdk.CreateThings(things, domain.ID, ut.AccessToken)
|
||||
if err != nil {
|
||||
logErrorCmd(*cmd, err)
|
||||
return
|
||||
@@ -194,7 +194,7 @@ var cmdProvision = []cobra.Command{
|
||||
Name: fmt.Sprintf("%s-channel-%d", name, i),
|
||||
Status: mgxsdk.EnabledStatus,
|
||||
}
|
||||
c, err = sdk.CreateChannel(c, ut.AccessToken)
|
||||
c, err = sdk.CreateChannel(c, domain.ID, ut.AccessToken)
|
||||
if err != nil {
|
||||
logErrorCmd(*cmd, err)
|
||||
return
|
||||
@@ -208,7 +208,7 @@ var cmdProvision = []cobra.Command{
|
||||
ChannelID: channels[0].ID,
|
||||
ThingID: things[0].ID,
|
||||
}
|
||||
if err := sdk.Connect(conIDs, ut.AccessToken); err != nil {
|
||||
if err := sdk.Connect(conIDs, domain.ID, ut.AccessToken); err != nil {
|
||||
logErrorCmd(*cmd, err)
|
||||
return
|
||||
}
|
||||
@@ -217,7 +217,7 @@ var cmdProvision = []cobra.Command{
|
||||
ChannelID: channels[1].ID,
|
||||
ThingID: things[0].ID,
|
||||
}
|
||||
if err := sdk.Connect(conIDs, ut.AccessToken); err != nil {
|
||||
if err := sdk.Connect(conIDs, domain.ID, ut.AccessToken); err != nil {
|
||||
logErrorCmd(*cmd, err)
|
||||
return
|
||||
}
|
||||
@@ -226,7 +226,7 @@ var cmdProvision = []cobra.Command{
|
||||
ChannelID: channels[0].ID,
|
||||
ThingID: things[1].ID,
|
||||
}
|
||||
if err := sdk.Connect(conIDs, ut.AccessToken); err != nil {
|
||||
if err := sdk.Connect(conIDs, domain.ID, ut.AccessToken); err != nil {
|
||||
logErrorCmd(*cmd, err)
|
||||
return
|
||||
}
|
||||
|
||||
+56
-55
@@ -13,13 +13,13 @@ import (
|
||||
|
||||
var cmdThings = []cobra.Command{
|
||||
{
|
||||
Use: "create <JSON_thing> <user_auth_token>",
|
||||
Use: "create <JSON_thing> <domain_id> <user_auth_token>",
|
||||
Short: "Create thing",
|
||||
Long: "Creates new thing with provided name and metadata\n" +
|
||||
"Usage:\n" +
|
||||
"\tmagistrala-cli things create '{\"name\":\"new thing\", \"metadata\":{\"key\": \"value\"}}' $USERTOKEN\n",
|
||||
"\tmagistrala-cli things create '{\"name\":\"new thing\", \"metadata\":{\"key\": \"value\"}}' $DOMAINID $USERTOKEN\n",
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
if len(args) != 2 {
|
||||
if len(args) != 3 {
|
||||
logUsageCmd(*cmd, cmd.Use)
|
||||
return
|
||||
}
|
||||
@@ -30,7 +30,7 @@ var cmdThings = []cobra.Command{
|
||||
return
|
||||
}
|
||||
thing.Status = mgclients.EnabledStatus.String()
|
||||
thing, err := sdk.CreateThing(thing, args[1])
|
||||
thing, err := sdk.CreateThing(thing, args[1], args[2])
|
||||
if err != nil {
|
||||
logErrorCmd(*cmd, err)
|
||||
return
|
||||
@@ -40,15 +40,15 @@ var cmdThings = []cobra.Command{
|
||||
},
|
||||
},
|
||||
{
|
||||
Use: "get [all | <thing_id>] <user_auth_token>",
|
||||
Use: "get [all | <thing_id>] <domain_id> <user_auth_token>",
|
||||
Short: "Get things",
|
||||
Long: "Get all things or get thing by id. Things can be filtered by name or metadata\n" +
|
||||
"Usage:\n" +
|
||||
"\tmagistrala-cli things get all $USERTOKEN - lists all things\n" +
|
||||
"\tmagistrala-cli things get all $USERTOKEN --offset=10 --limit=10 - lists all things with offset and limit\n" +
|
||||
"\tmagistrala-cli things get all $DOMAINID $USERTOKEN - lists all things\n" +
|
||||
"\tmagistrala-cli things get all $DOMAINID $USERTOKEN --offset=10 --limit=10 - lists all things with offset and limit\n" +
|
||||
"\tmagistrala-cli things get <thing_id> $USERTOKEN - shows thing with provided <thing_id>\n",
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
if len(args) != 2 {
|
||||
if len(args) != 3 {
|
||||
logUsageCmd(*cmd, cmd.Use)
|
||||
return
|
||||
}
|
||||
@@ -72,7 +72,7 @@ var cmdThings = []cobra.Command{
|
||||
logJSONCmd(*cmd, l)
|
||||
return
|
||||
}
|
||||
t, err := sdk.Thing(args[0], args[1])
|
||||
t, err := sdk.Thing(args[0], args[1], args[2])
|
||||
if err != nil {
|
||||
logErrorCmd(*cmd, err)
|
||||
return
|
||||
@@ -82,17 +82,17 @@ var cmdThings = []cobra.Command{
|
||||
},
|
||||
},
|
||||
{
|
||||
Use: "delete <thing_id> <user_auth_token>",
|
||||
Use: "delete <thing_id> <domain_id> <user_auth_token>",
|
||||
Short: "Delete thing",
|
||||
Long: "Delete thing by id\n" +
|
||||
"Usage:\n" +
|
||||
"\tmagistrala-cli things delete <thing_id> $USERTOKEN - delete thing with <thing_id>\n",
|
||||
"\tmagistrala-cli things delete <thing_id> $DOMAINID $USERTOKEN - delete thing with <thing_id>\n",
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
if len(args) != 2 {
|
||||
if len(args) != 3 {
|
||||
logUsageCmd(*cmd, cmd.Use)
|
||||
return
|
||||
}
|
||||
if err := sdk.DeleteThing(args[0], args[1]); err != nil {
|
||||
if err := sdk.DeleteThing(args[0], args[1], args[2]); err != nil {
|
||||
logErrorCmd(*cmd, err)
|
||||
return
|
||||
}
|
||||
@@ -100,15 +100,15 @@ var cmdThings = []cobra.Command{
|
||||
},
|
||||
},
|
||||
{
|
||||
Use: "update [<thing_id> <JSON_string> | tags <thing_id> <tags> | secret <thing_id> <secret> ] <user_auth_token>",
|
||||
Use: "update [<thing_id> <JSON_string> | tags <thing_id> <tags> | secret <thing_id> <secret> ] <domain_id> <user_auth_token>",
|
||||
Short: "Update thing",
|
||||
Long: "Updates thing with provided id, name and metadata, or updates thing tags, secret\n" +
|
||||
"Usage:\n" +
|
||||
"\tmagistrala-cli things update <thing_id> '{\"name\":\"new name\", \"metadata\":{\"key\": \"value\"}}' $USERTOKEN\n" +
|
||||
"\tmagistrala-cli things update tags <thing_id> '{\"tag1\":\"value1\", \"tag2\":\"value2\"}' $USERTOKEN\n" +
|
||||
"\tmagistrala-cli things update secret <thing_id> <newsecret> $USERTOKEN\n",
|
||||
"\tmagistrala-cli things update <thing_id> '{\"name\":\"new name\", \"metadata\":{\"key\": \"value\"}}' $DOMAINID $USERTOKEN\n" +
|
||||
"\tmagistrala-cli things update tags <thing_id> '{\"tag1\":\"value1\", \"tag2\":\"value2\"}' $DOMAINID $USERTOKEN\n" +
|
||||
"\tmagistrala-cli things update secret <thing_id> <newsecret> $DOMAINID $USERTOKEN\n",
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
if len(args) != 4 && len(args) != 3 {
|
||||
if len(args) != 5 && len(args) != 4 {
|
||||
logUsageCmd(*cmd, cmd.Use)
|
||||
return
|
||||
}
|
||||
@@ -120,7 +120,7 @@ var cmdThings = []cobra.Command{
|
||||
return
|
||||
}
|
||||
thing.ID = args[1]
|
||||
thing, err := sdk.UpdateThingTags(thing, args[3])
|
||||
thing, err := sdk.UpdateThingTags(thing, args[3], args[4])
|
||||
if err != nil {
|
||||
logErrorCmd(*cmd, err)
|
||||
return
|
||||
@@ -131,7 +131,7 @@ var cmdThings = []cobra.Command{
|
||||
}
|
||||
|
||||
if args[0] == "secret" {
|
||||
thing, err := sdk.UpdateThingSecret(args[1], args[2], args[3])
|
||||
thing, err := sdk.UpdateThingSecret(args[1], args[2], args[3], args[4])
|
||||
if err != nil {
|
||||
logErrorCmd(*cmd, err)
|
||||
return
|
||||
@@ -146,7 +146,7 @@ var cmdThings = []cobra.Command{
|
||||
return
|
||||
}
|
||||
thing.ID = args[0]
|
||||
thing, err := sdk.UpdateThing(thing, args[2])
|
||||
thing, err := sdk.UpdateThing(thing, args[2], args[3])
|
||||
if err != nil {
|
||||
logErrorCmd(*cmd, err)
|
||||
return
|
||||
@@ -156,18 +156,18 @@ var cmdThings = []cobra.Command{
|
||||
},
|
||||
},
|
||||
{
|
||||
Use: "enable <thing_id> <user_auth_token>",
|
||||
Use: "enable <thing_id> <domain_id> <user_auth_token>",
|
||||
Short: "Change thing status to enabled",
|
||||
Long: "Change thing status to enabled\n" +
|
||||
"Usage:\n" +
|
||||
"\tmagistrala-cli things enable <thing_id> $USERTOKEN\n",
|
||||
"\tmagistrala-cli things enable <thing_id> $DOMAINID $USERTOKEN\n",
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
if len(args) != 2 {
|
||||
if len(args) != 3 {
|
||||
logUsageCmd(*cmd, cmd.Use)
|
||||
return
|
||||
}
|
||||
|
||||
thing, err := sdk.EnableThing(args[0], args[1])
|
||||
thing, err := sdk.EnableThing(args[0], args[1], args[2])
|
||||
if err != nil {
|
||||
logErrorCmd(*cmd, err)
|
||||
return
|
||||
@@ -177,18 +177,18 @@ var cmdThings = []cobra.Command{
|
||||
},
|
||||
},
|
||||
{
|
||||
Use: "disable <thing_id> <user_auth_token>",
|
||||
Use: "disable <thing_id> <domain_id> <user_auth_token>",
|
||||
Short: "Change thing status to disabled",
|
||||
Long: "Change thing status to disabled\n" +
|
||||
"Usage:\n" +
|
||||
"\tmagistrala-cli things disable <thing_id> $USERTOKEN\n",
|
||||
"\tmagistrala-cli things disable <thing_id> $DOMAINID $USERTOKEN\n",
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
if len(args) != 2 {
|
||||
if len(args) != 3 {
|
||||
logUsageCmd(*cmd, cmd.Use)
|
||||
return
|
||||
}
|
||||
|
||||
thing, err := sdk.DisableThing(args[0], args[1])
|
||||
thing, err := sdk.DisableThing(args[0], args[1], args[2])
|
||||
if err != nil {
|
||||
logErrorCmd(*cmd, err)
|
||||
return
|
||||
@@ -198,13 +198,13 @@ var cmdThings = []cobra.Command{
|
||||
},
|
||||
},
|
||||
{
|
||||
Use: "share <thing_id> <user_id> <relation> <user_auth_token>",
|
||||
Use: "share <thing_id> <user_id> <relation> <domain_id> <user_auth_token>",
|
||||
Short: "Share thing with a user",
|
||||
Long: "Share thing with a user\n" +
|
||||
"Usage:\n" +
|
||||
"\tmagistrala-cli things share <thing_id> <user_id> <relation> $USERTOKEN\n",
|
||||
"\tmagistrala-cli things share <thing_id> <user_id> <relation> $DOMAINID $USERTOKEN\n",
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
if len(args) != 4 {
|
||||
if len(args) != 5 {
|
||||
logUsageCmd(*cmd, cmd.Use)
|
||||
return
|
||||
}
|
||||
@@ -212,7 +212,7 @@ var cmdThings = []cobra.Command{
|
||||
Relation: args[2],
|
||||
UserIDs: []string{args[1]},
|
||||
}
|
||||
err := sdk.ShareThing(args[0], req, args[3])
|
||||
err := sdk.ShareThing(args[0], req, args[3], args[4])
|
||||
if err != nil {
|
||||
logErrorCmd(*cmd, err)
|
||||
return
|
||||
@@ -222,13 +222,13 @@ var cmdThings = []cobra.Command{
|
||||
},
|
||||
},
|
||||
{
|
||||
Use: "unshare <thing_id> <user_id> <relation> <user_auth_token>",
|
||||
Use: "unshare <thing_id> <user_id> <relation> <domain_id> <user_auth_token>",
|
||||
Short: "Unshare thing with a user",
|
||||
Long: "Unshare thing with a user\n" +
|
||||
"Usage:\n" +
|
||||
"\tmagistrala-cli things share <thing_id> <user_id> <relation> $USERTOKEN\n",
|
||||
"\tmagistrala-cli things share <thing_id> <user_id> <relation> $DOMAINID $USERTOKEN\n",
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
if len(args) != 4 {
|
||||
if len(args) != 5 {
|
||||
logUsageCmd(*cmd, cmd.Use)
|
||||
return
|
||||
}
|
||||
@@ -236,7 +236,7 @@ var cmdThings = []cobra.Command{
|
||||
Relation: args[2],
|
||||
UserIDs: []string{args[1]},
|
||||
}
|
||||
err := sdk.UnshareThing(args[0], req, args[3])
|
||||
err := sdk.UnshareThing(args[0], req, args[3], args[4])
|
||||
if err != nil {
|
||||
logErrorCmd(*cmd, err)
|
||||
return
|
||||
@@ -246,13 +246,13 @@ var cmdThings = []cobra.Command{
|
||||
},
|
||||
},
|
||||
{
|
||||
Use: "connect <thing_id> <channel_id> <user_auth_token>",
|
||||
Use: "connect <thing_id> <channel_id> <domain_id> <user_auth_token>",
|
||||
Short: "Connect thing",
|
||||
Long: "Connect thing to the channel\n" +
|
||||
"Usage:\n" +
|
||||
"\tmagistrala-cli things connect <thing_id> <channel_id> $USERTOKEN\n",
|
||||
"\tmagistrala-cli things connect <thing_id> <channel_id> $DOMAINID $USERTOKEN\n",
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
if len(args) != 3 {
|
||||
if len(args) != 4 {
|
||||
logUsageCmd(*cmd, cmd.Use)
|
||||
return
|
||||
}
|
||||
@@ -261,7 +261,7 @@ var cmdThings = []cobra.Command{
|
||||
ChannelID: args[1],
|
||||
ThingID: args[0],
|
||||
}
|
||||
if err := sdk.Connect(connIDs, args[2]); err != nil {
|
||||
if err := sdk.Connect(connIDs, args[2], args[3]); err != nil {
|
||||
logErrorCmd(*cmd, err)
|
||||
return
|
||||
}
|
||||
@@ -270,13 +270,13 @@ var cmdThings = []cobra.Command{
|
||||
},
|
||||
},
|
||||
{
|
||||
Use: "disconnect <thing_id> <channel_id> <user_auth_token>",
|
||||
Use: "disconnect <thing_id> <channel_id> <domain_id> <user_auth_token>",
|
||||
Short: "Disconnect thing",
|
||||
Long: "Disconnect thing to the channel\n" +
|
||||
"Usage:\n" +
|
||||
"\tmagistrala-cli things disconnect <thing_id> <channel_id> $USERTOKEN\n",
|
||||
"\tmagistrala-cli things disconnect <thing_id> <channel_id> $DOMAINID $USERTOKEN\n",
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
if len(args) != 3 {
|
||||
if len(args) != 4 {
|
||||
logUsageCmd(*cmd, cmd.Use)
|
||||
return
|
||||
}
|
||||
@@ -285,7 +285,7 @@ var cmdThings = []cobra.Command{
|
||||
ThingID: args[0],
|
||||
ChannelID: args[1],
|
||||
}
|
||||
if err := sdk.Disconnect(connIDs, args[2]); err != nil {
|
||||
if err := sdk.Disconnect(connIDs, args[2], args[3]); err != nil {
|
||||
logErrorCmd(*cmd, err)
|
||||
return
|
||||
}
|
||||
@@ -294,13 +294,13 @@ var cmdThings = []cobra.Command{
|
||||
},
|
||||
},
|
||||
{
|
||||
Use: "connections <thing_id> <user_auth_token>",
|
||||
Use: "connections <thing_id> <domain_id> <user_auth_token>",
|
||||
Short: "Connected list",
|
||||
Long: "List of Channels connected to Thing\n" +
|
||||
"Usage:\n" +
|
||||
"\tmagistrala-cli connections <thing_id> $USERTOKEN\n",
|
||||
"\tmagistrala-cli connections <thing_id> $DOMAINID $USERTOKEN\n",
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
if len(args) != 2 {
|
||||
if len(args) != 3 {
|
||||
logUsageCmd(*cmd, cmd.Use)
|
||||
return
|
||||
}
|
||||
@@ -308,7 +308,7 @@ var cmdThings = []cobra.Command{
|
||||
Offset: Offset,
|
||||
Limit: Limit,
|
||||
}
|
||||
cl, err := sdk.ChannelsByThing(args[0], pm, args[1])
|
||||
cl, err := sdk.ChannelsByThing(args[0], pm, args[1], args[2])
|
||||
if err != nil {
|
||||
logErrorCmd(*cmd, err)
|
||||
return
|
||||
@@ -318,21 +318,22 @@ var cmdThings = []cobra.Command{
|
||||
},
|
||||
},
|
||||
{
|
||||
Use: "users <thing_id> <user_auth_token>",
|
||||
Use: "users <thing_id> <domain_id> <user_auth_token>",
|
||||
Short: "List users",
|
||||
Long: "List users of a thing\n" +
|
||||
"Usage:\n" +
|
||||
"\tmagistrala-cli things users <thing_id> $USERTOKEN\n",
|
||||
"\tmagistrala-cli things users <thing_id> $DOMAINID $USERTOKEN\n",
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
if len(args) != 2 {
|
||||
if len(args) != 3 {
|
||||
logUsageCmd(*cmd, cmd.Use)
|
||||
return
|
||||
}
|
||||
pm := mgxsdk.PageMetadata{
|
||||
Offset: Offset,
|
||||
Limit: Limit,
|
||||
Offset: Offset,
|
||||
Limit: Limit,
|
||||
DomainID: args[1],
|
||||
}
|
||||
ul, err := sdk.ListThingUsers(args[0], pm, args[1])
|
||||
ul, err := sdk.ListThingUsers(args[0], pm, args[2])
|
||||
if err != nil {
|
||||
logErrorCmd(*cmd, err)
|
||||
return
|
||||
|
||||
+80
-50
@@ -24,6 +24,7 @@ import (
|
||||
|
||||
var (
|
||||
token = "valid" + "domaintoken"
|
||||
domainID = "domain-id"
|
||||
tokenWithoutDomain = "valid"
|
||||
relation = "administrator"
|
||||
all = "all"
|
||||
@@ -60,6 +61,7 @@ func TestCreateThingsCmd(t *testing.T) {
|
||||
desc: "create thing successfully with token",
|
||||
args: []string{
|
||||
thingJson,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
thing: thing,
|
||||
@@ -69,6 +71,7 @@ func TestCreateThingsCmd(t *testing.T) {
|
||||
desc: "create thing without token",
|
||||
args: []string{
|
||||
thingJson,
|
||||
domainID,
|
||||
},
|
||||
logType: usageLog,
|
||||
},
|
||||
@@ -76,6 +79,7 @@ func TestCreateThingsCmd(t *testing.T) {
|
||||
desc: "create thing with invalid token",
|
||||
args: []string{
|
||||
thingJson,
|
||||
domainID,
|
||||
invalidToken,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrAuthorization, http.StatusUnauthorized),
|
||||
@@ -86,26 +90,18 @@ func TestCreateThingsCmd(t *testing.T) {
|
||||
desc: "failed to create thing",
|
||||
args: []string{
|
||||
thingJson,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrCreateEntity, http.StatusUnprocessableEntity),
|
||||
errLogMessage: fmt.Sprintf("\nerror: %s\n\n", errors.NewSDKErrorWithStatus(svcerr.ErrCreateEntity, http.StatusUnprocessableEntity)),
|
||||
logType: errLog,
|
||||
},
|
||||
{
|
||||
desc: "create thing without domain token",
|
||||
args: []string{
|
||||
thingJson,
|
||||
tokenWithoutDomain,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrDomainAuthorization, http.StatusForbidden),
|
||||
errLogMessage: fmt.Sprintf("\nerror: %s\n\n", errors.NewSDKErrorWithStatus(svcerr.ErrDomainAuthorization, http.StatusForbidden)),
|
||||
logType: errLog,
|
||||
},
|
||||
{
|
||||
desc: "create thing with invalid metadata",
|
||||
args: []string{
|
||||
"{\"name\":\"testthing\", \"metadata\":{\"key1\":value1}}",
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(errors.New("invalid character 'v' looking for beginning of value"), 306),
|
||||
@@ -116,7 +112,7 @@ func TestCreateThingsCmd(t *testing.T) {
|
||||
|
||||
for _, tc := range cases {
|
||||
t.Run(tc.desc, func(t *testing.T) {
|
||||
sdkCall := sdkMock.On("CreateThing", mock.Anything, mock.Anything).Return(tc.thing, tc.sdkErr)
|
||||
sdkCall := sdkMock.On("CreateThing", mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(tc.thing, tc.sdkErr)
|
||||
out := executeCommand(t, rootCmd, append([]string{createCmd}, tc.args...)...)
|
||||
|
||||
switch tc.logType {
|
||||
@@ -157,6 +153,7 @@ func TestGetThingsCmd(t *testing.T) {
|
||||
desc: "get all things successfully",
|
||||
args: []string{
|
||||
all,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
logType: entityLog,
|
||||
@@ -168,6 +165,7 @@ func TestGetThingsCmd(t *testing.T) {
|
||||
desc: "get thing successfully with id",
|
||||
args: []string{
|
||||
thing.ID,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
logType: entityLog,
|
||||
@@ -177,6 +175,7 @@ func TestGetThingsCmd(t *testing.T) {
|
||||
desc: "get things with invalid token",
|
||||
args: []string{
|
||||
all,
|
||||
domainID,
|
||||
invalidToken,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrAuthorization, http.StatusForbidden),
|
||||
@@ -184,16 +183,6 @@ func TestGetThingsCmd(t *testing.T) {
|
||||
page: sdk.ThingsPage{},
|
||||
logType: errLog,
|
||||
},
|
||||
{
|
||||
desc: "get thing without domain token",
|
||||
args: []string{
|
||||
all,
|
||||
tokenWithoutDomain,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrDomainAuthorization, http.StatusForbidden),
|
||||
errLogMessage: fmt.Sprintf("\nerror: %s\n\n", errors.NewSDKErrorWithStatus(svcerr.ErrDomainAuthorization, http.StatusForbidden)),
|
||||
logType: errLog,
|
||||
},
|
||||
{
|
||||
desc: "get things with invalid args",
|
||||
args: []string{
|
||||
@@ -212,6 +201,7 @@ func TestGetThingsCmd(t *testing.T) {
|
||||
desc: "get thing without token",
|
||||
args: []string{
|
||||
all,
|
||||
domainID,
|
||||
},
|
||||
logType: usageLog,
|
||||
},
|
||||
@@ -219,6 +209,7 @@ func TestGetThingsCmd(t *testing.T) {
|
||||
desc: "get thing with invalid thing id",
|
||||
args: []string{
|
||||
invalidID,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrAuthorization, http.StatusForbidden),
|
||||
@@ -229,8 +220,8 @@ func TestGetThingsCmd(t *testing.T) {
|
||||
|
||||
for _, tc := range cases {
|
||||
t.Run(tc.desc, func(t *testing.T) {
|
||||
sdkCall := sdkMock.On("Things", mock.Anything, mock.Anything).Return(tc.page, tc.sdkErr)
|
||||
sdkCall1 := sdkMock.On("Thing", mock.Anything, mock.Anything).Return(tc.thing, tc.sdkErr)
|
||||
sdkCall := sdkMock.On("Things", mock.Anything, mock.Anything, mock.Anything).Return(tc.page, tc.sdkErr)
|
||||
sdkCall1 := sdkMock.On("Thing", mock.Anything, mock.Anything, mock.Anything).Return(tc.thing, tc.sdkErr)
|
||||
|
||||
out := executeCommand(t, rootCmd, append([]string{getCmd}, tc.args...)...)
|
||||
|
||||
@@ -296,6 +287,7 @@ func TestUpdateThingCmd(t *testing.T) {
|
||||
args: []string{
|
||||
thing.ID,
|
||||
newNameandMeta,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
thing: sdk.Thing{
|
||||
@@ -316,6 +308,7 @@ func TestUpdateThingCmd(t *testing.T) {
|
||||
args: []string{
|
||||
thing.ID,
|
||||
"{\"name\": \"thingName\", \"metadata\": {\"role\": \"general\"}",
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
sdkErr: errors.NewSDKError(errors.New("unexpected end of JSON input")),
|
||||
@@ -327,6 +320,7 @@ func TestUpdateThingCmd(t *testing.T) {
|
||||
args: []string{
|
||||
invalidID,
|
||||
newNameandMeta,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrAuthorization, http.StatusForbidden),
|
||||
@@ -339,6 +333,7 @@ func TestUpdateThingCmd(t *testing.T) {
|
||||
tagUpdateType,
|
||||
thing.ID,
|
||||
newTagsJson,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
thing: sdk.Thing{
|
||||
@@ -356,6 +351,7 @@ func TestUpdateThingCmd(t *testing.T) {
|
||||
tagUpdateType,
|
||||
thing.ID,
|
||||
"[\"tag1\", \"tag2\"",
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
logType: errLog,
|
||||
@@ -368,6 +364,7 @@ func TestUpdateThingCmd(t *testing.T) {
|
||||
tagUpdateType,
|
||||
invalidID,
|
||||
newTagsJson,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrAuthorization, http.StatusForbidden),
|
||||
@@ -380,6 +377,7 @@ func TestUpdateThingCmd(t *testing.T) {
|
||||
secretUpdateType,
|
||||
thing.ID,
|
||||
newSecret,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
thing: sdk.Thing{
|
||||
@@ -399,6 +397,7 @@ func TestUpdateThingCmd(t *testing.T) {
|
||||
secretUpdateType,
|
||||
thing.ID,
|
||||
"",
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(errors.Wrap(apiutil.ErrValidation, apiutil.ErrMissingSecret), http.StatusBadRequest),
|
||||
@@ -411,6 +410,7 @@ func TestUpdateThingCmd(t *testing.T) {
|
||||
secretUpdateType,
|
||||
thing.ID,
|
||||
newSecret,
|
||||
domainID,
|
||||
invalidToken,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrAuthorization, http.StatusForbidden),
|
||||
@@ -423,6 +423,7 @@ func TestUpdateThingCmd(t *testing.T) {
|
||||
secretUpdateType,
|
||||
thing.ID,
|
||||
newSecret,
|
||||
domainID,
|
||||
token,
|
||||
extraArg,
|
||||
},
|
||||
@@ -433,9 +434,9 @@ func TestUpdateThingCmd(t *testing.T) {
|
||||
for _, tc := range cases {
|
||||
t.Run(tc.desc, func(t *testing.T) {
|
||||
var tg sdk.Thing
|
||||
sdkCall := sdkMock.On("UpdateThing", mock.Anything, mock.Anything).Return(tc.thing, tc.sdkErr)
|
||||
sdkCall1 := sdkMock.On("UpdateThingTags", mock.Anything, mock.Anything).Return(tc.thing, tc.sdkErr)
|
||||
sdkCall2 := sdkMock.On("UpdateThingSecret", mock.Anything, mock.Anything, mock.Anything).Return(tc.thing, tc.sdkErr)
|
||||
sdkCall := sdkMock.On("UpdateThing", mock.Anything, mock.Anything, mock.Anything).Return(tc.thing, tc.sdkErr)
|
||||
sdkCall1 := sdkMock.On("UpdateThingTags", mock.Anything, mock.Anything, mock.Anything).Return(tc.thing, tc.sdkErr)
|
||||
sdkCall2 := sdkMock.On("UpdateThingSecret", mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(tc.thing, tc.sdkErr)
|
||||
|
||||
switch {
|
||||
case tc.args[0] == tagUpdateType:
|
||||
@@ -488,6 +489,7 @@ func TestDeleteThingCmd(t *testing.T) {
|
||||
desc: "delete thing successfully",
|
||||
args: []string{
|
||||
thing.ID,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
logType: okLog,
|
||||
@@ -496,6 +498,7 @@ func TestDeleteThingCmd(t *testing.T) {
|
||||
desc: "delete thing with invalid token",
|
||||
args: []string{
|
||||
thing.ID,
|
||||
domainID,
|
||||
invalidToken,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrAuthorization, http.StatusForbidden),
|
||||
@@ -506,6 +509,7 @@ func TestDeleteThingCmd(t *testing.T) {
|
||||
desc: "delete thing with invalid thing id",
|
||||
args: []string{
|
||||
invalidID,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrAuthorization, http.StatusForbidden),
|
||||
@@ -516,6 +520,7 @@ func TestDeleteThingCmd(t *testing.T) {
|
||||
desc: "delete thing with invalid args",
|
||||
args: []string{
|
||||
thing.ID,
|
||||
domainID,
|
||||
token,
|
||||
extraArg,
|
||||
},
|
||||
@@ -525,7 +530,7 @@ func TestDeleteThingCmd(t *testing.T) {
|
||||
|
||||
for _, tc := range cases {
|
||||
t.Run(tc.desc, func(t *testing.T) {
|
||||
sdkCall := sdkMock.On("DeleteThing", tc.args[0], tc.args[1]).Return(tc.sdkErr)
|
||||
sdkCall := sdkMock.On("DeleteThing", tc.args[0], tc.args[1], tc.args[2]).Return(tc.sdkErr)
|
||||
out := executeCommand(t, rootCmd, append([]string{delCmd}, tc.args...)...)
|
||||
|
||||
switch tc.logType {
|
||||
@@ -560,6 +565,7 @@ func TestEnableThingCmd(t *testing.T) {
|
||||
desc: "enable thing successfully",
|
||||
args: []string{
|
||||
thing.ID,
|
||||
domainID,
|
||||
validToken,
|
||||
},
|
||||
sdkErr: nil,
|
||||
@@ -570,6 +576,7 @@ func TestEnableThingCmd(t *testing.T) {
|
||||
desc: "delete thing with invalid token",
|
||||
args: []string{
|
||||
thing.ID,
|
||||
domainID,
|
||||
invalidToken,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrAuthorization, http.StatusForbidden),
|
||||
@@ -580,6 +587,7 @@ func TestEnableThingCmd(t *testing.T) {
|
||||
desc: "delete thing with invalid thing ID",
|
||||
args: []string{
|
||||
invalidID,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrAuthorization, http.StatusForbidden),
|
||||
@@ -590,6 +598,7 @@ func TestEnableThingCmd(t *testing.T) {
|
||||
desc: "enable thing with invalid args",
|
||||
args: []string{
|
||||
thing.ID,
|
||||
domainID,
|
||||
validToken,
|
||||
extraArg,
|
||||
},
|
||||
@@ -599,7 +608,7 @@ func TestEnableThingCmd(t *testing.T) {
|
||||
|
||||
for _, tc := range cases {
|
||||
t.Run(tc.desc, func(t *testing.T) {
|
||||
sdkCall := sdkMock.On("EnableThing", tc.args[0], tc.args[1]).Return(tc.thing, tc.sdkErr)
|
||||
sdkCall := sdkMock.On("EnableThing", tc.args[0], tc.args[1], tc.args[2]).Return(tc.thing, tc.sdkErr)
|
||||
out := executeCommand(t, rootCmd, append([]string{enableCmd}, tc.args...)...)
|
||||
|
||||
switch tc.logType {
|
||||
@@ -638,6 +647,7 @@ func TestDisablethingCmd(t *testing.T) {
|
||||
desc: "disable thing successfully",
|
||||
args: []string{
|
||||
thing.ID,
|
||||
domainID,
|
||||
validToken,
|
||||
},
|
||||
logType: entityLog,
|
||||
@@ -647,6 +657,7 @@ func TestDisablethingCmd(t *testing.T) {
|
||||
desc: "delete thing with invalid token",
|
||||
args: []string{
|
||||
thing.ID,
|
||||
domainID,
|
||||
invalidToken,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrAuthorization, http.StatusForbidden),
|
||||
@@ -657,6 +668,7 @@ func TestDisablethingCmd(t *testing.T) {
|
||||
desc: "delete thing with invalid thing ID",
|
||||
args: []string{
|
||||
invalidID,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrAuthorization, http.StatusForbidden),
|
||||
@@ -667,6 +679,7 @@ func TestDisablethingCmd(t *testing.T) {
|
||||
desc: "disable thing with invalid args",
|
||||
args: []string{
|
||||
thing.ID,
|
||||
domainID,
|
||||
validToken,
|
||||
extraArg,
|
||||
},
|
||||
@@ -676,7 +689,7 @@ func TestDisablethingCmd(t *testing.T) {
|
||||
|
||||
for _, tc := range cases {
|
||||
t.Run(tc.desc, func(t *testing.T) {
|
||||
sdkCall := sdkMock.On("DisableThing", tc.args[0], tc.args[1]).Return(tc.thing, tc.sdkErr)
|
||||
sdkCall := sdkMock.On("DisableThing", tc.args[0], tc.args[1], tc.args[2]).Return(tc.thing, tc.sdkErr)
|
||||
out := executeCommand(t, rootCmd, append([]string{disableCmd}, tc.args...)...)
|
||||
|
||||
switch tc.logType {
|
||||
@@ -717,6 +730,7 @@ func TestUsersThingCmd(t *testing.T) {
|
||||
desc: "get thing's users successfully",
|
||||
args: []string{
|
||||
thing.ID,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
page: sdk.UsersPage{
|
||||
@@ -733,16 +747,18 @@ func TestUsersThingCmd(t *testing.T) {
|
||||
desc: "list thing users' with invalid args",
|
||||
args: []string{
|
||||
thing.ID,
|
||||
domainID,
|
||||
token,
|
||||
extraArg,
|
||||
},
|
||||
logType: usageLog,
|
||||
},
|
||||
{
|
||||
desc: "list thing users' without domain token",
|
||||
desc: "list thing users' with invalid domain",
|
||||
args: []string{
|
||||
thing.ID,
|
||||
tokenWithoutDomain,
|
||||
invalidID,
|
||||
token,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrDomainAuthorization, http.StatusForbidden),
|
||||
errLogMessage: fmt.Sprintf("\nerror: %s\n\n", errors.NewSDKErrorWithStatus(svcerr.ErrDomainAuthorization, http.StatusForbidden)),
|
||||
@@ -752,22 +768,13 @@ func TestUsersThingCmd(t *testing.T) {
|
||||
desc: "list thing users with invalid id",
|
||||
args: []string{
|
||||
invalidID,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrAuthorization, http.StatusForbidden),
|
||||
errLogMessage: fmt.Sprintf("\nerror: %s\n\n", errors.NewSDKErrorWithStatus(svcerr.ErrAuthorization, http.StatusForbidden)),
|
||||
logType: errLog,
|
||||
},
|
||||
{
|
||||
desc: "list thing users' without domain token",
|
||||
args: []string{
|
||||
thing.ID,
|
||||
tokenWithoutDomain,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrDomainAuthorization, http.StatusForbidden),
|
||||
errLogMessage: fmt.Sprintf("\nerror: %s\n\n", errors.NewSDKErrorWithStatus(svcerr.ErrDomainAuthorization, http.StatusForbidden)),
|
||||
logType: errLog,
|
||||
},
|
||||
}
|
||||
|
||||
for _, tc := range cases {
|
||||
@@ -810,6 +817,7 @@ func TestConnectThingCmd(t *testing.T) {
|
||||
args: []string{
|
||||
thing.ID,
|
||||
channel.ID,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
logType: okLog,
|
||||
@@ -819,6 +827,7 @@ func TestConnectThingCmd(t *testing.T) {
|
||||
args: []string{
|
||||
thing.ID,
|
||||
channel.ID,
|
||||
domainID,
|
||||
token,
|
||||
extraArg,
|
||||
},
|
||||
@@ -829,6 +838,7 @@ func TestConnectThingCmd(t *testing.T) {
|
||||
args: []string{
|
||||
invalidID,
|
||||
channel.ID,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrAddPolicies, http.StatusBadRequest),
|
||||
@@ -840,6 +850,7 @@ func TestConnectThingCmd(t *testing.T) {
|
||||
args: []string{
|
||||
thing.ID,
|
||||
invalidID,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrAuthorization, http.StatusForbidden),
|
||||
@@ -847,11 +858,12 @@ func TestConnectThingCmd(t *testing.T) {
|
||||
logType: errLog,
|
||||
},
|
||||
{
|
||||
desc: "list thing users' without domain token",
|
||||
desc: "list thing users' with invalid domain",
|
||||
args: []string{
|
||||
thing.ID,
|
||||
channel.ID,
|
||||
tokenWithoutDomain,
|
||||
invalidID,
|
||||
token,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrDomainAuthorization, http.StatusForbidden),
|
||||
errLogMessage: fmt.Sprintf("\nerror: %s\n\n", errors.NewSDKErrorWithStatus(svcerr.ErrDomainAuthorization, http.StatusForbidden)),
|
||||
@@ -861,7 +873,7 @@ func TestConnectThingCmd(t *testing.T) {
|
||||
|
||||
for _, tc := range cases {
|
||||
t.Run(tc.desc, func(t *testing.T) {
|
||||
sdkCall := sdkMock.On("Connect", mock.Anything, tc.args[2]).Return(tc.sdkErr)
|
||||
sdkCall := sdkMock.On("Connect", mock.Anything, tc.args[2], tc.args[3]).Return(tc.sdkErr)
|
||||
out := executeCommand(t, rootCmd, append([]string{connCmd}, tc.args...)...)
|
||||
|
||||
switch tc.logType {
|
||||
@@ -895,6 +907,7 @@ func TestDisconnectThingCmd(t *testing.T) {
|
||||
args: []string{
|
||||
thing.ID,
|
||||
channel.ID,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
logType: okLog,
|
||||
@@ -904,6 +917,7 @@ func TestDisconnectThingCmd(t *testing.T) {
|
||||
args: []string{
|
||||
thing.ID,
|
||||
channel.ID,
|
||||
domainID,
|
||||
token,
|
||||
extraArg,
|
||||
},
|
||||
@@ -914,6 +928,7 @@ func TestDisconnectThingCmd(t *testing.T) {
|
||||
args: []string{
|
||||
invalidID,
|
||||
channel.ID,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrAddPolicies, http.StatusBadRequest),
|
||||
@@ -925,6 +940,7 @@ func TestDisconnectThingCmd(t *testing.T) {
|
||||
args: []string{
|
||||
thing.ID,
|
||||
invalidID,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrAuthorization, http.StatusForbidden),
|
||||
@@ -932,11 +948,12 @@ func TestDisconnectThingCmd(t *testing.T) {
|
||||
logType: errLog,
|
||||
},
|
||||
{
|
||||
desc: "disconnect thing without domain token",
|
||||
desc: "disconnect thing with invalid domain",
|
||||
args: []string{
|
||||
thing.ID,
|
||||
channel.ID,
|
||||
tokenWithoutDomain,
|
||||
invalidID,
|
||||
token,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrDomainAuthorization, http.StatusForbidden),
|
||||
errLogMessage: fmt.Sprintf("\nerror: %s\n\n", errors.NewSDKErrorWithStatus(svcerr.ErrDomainAuthorization, http.StatusForbidden)),
|
||||
@@ -946,7 +963,7 @@ func TestDisconnectThingCmd(t *testing.T) {
|
||||
|
||||
for _, tc := range cases {
|
||||
t.Run(tc.desc, func(t *testing.T) {
|
||||
sdkCall := sdkMock.On("Disconnect", mock.Anything, tc.args[2]).Return(tc.sdkErr)
|
||||
sdkCall := sdkMock.On("Disconnect", mock.Anything, tc.args[2], tc.args[3]).Return(tc.sdkErr)
|
||||
out := executeCommand(t, rootCmd, append([]string{disconnCmd}, tc.args...)...)
|
||||
|
||||
switch tc.logType {
|
||||
@@ -981,6 +998,7 @@ func TestListConnectionCmd(t *testing.T) {
|
||||
desc: "list connections successfully",
|
||||
args: []string{
|
||||
thing.ID,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
page: sdk.ChannelsPage{
|
||||
@@ -997,6 +1015,7 @@ func TestListConnectionCmd(t *testing.T) {
|
||||
desc: "list connections with invalid args",
|
||||
args: []string{
|
||||
thing.ID,
|
||||
domainID,
|
||||
token,
|
||||
extraArg,
|
||||
},
|
||||
@@ -1006,6 +1025,7 @@ func TestListConnectionCmd(t *testing.T) {
|
||||
desc: "list connections with invalid thing ID",
|
||||
args: []string{
|
||||
invalidID,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrAuthorization, http.StatusForbidden),
|
||||
@@ -1016,6 +1036,7 @@ func TestListConnectionCmd(t *testing.T) {
|
||||
desc: "list connections with invalid token",
|
||||
args: []string{
|
||||
thing.ID,
|
||||
domainID,
|
||||
invalidToken,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrAuthorization, http.StatusUnauthorized),
|
||||
@@ -1025,7 +1046,7 @@ func TestListConnectionCmd(t *testing.T) {
|
||||
}
|
||||
for _, tc := range cases {
|
||||
t.Run(tc.desc, func(t *testing.T) {
|
||||
sdkCall := sdkMock.On("ChannelsByThing", tc.args[0], mock.Anything, tc.args[1]).Return(tc.page, tc.sdkErr)
|
||||
sdkCall := sdkMock.On("ChannelsByThing", tc.args[0], mock.Anything, tc.args[1], tc.args[2]).Return(tc.page, tc.sdkErr)
|
||||
out := executeCommand(t, rootCmd, append([]string{connsCmd}, tc.args...)...)
|
||||
|
||||
switch tc.logType {
|
||||
@@ -1065,6 +1086,7 @@ func TestShareThingCmd(t *testing.T) {
|
||||
thing.ID,
|
||||
user.ID,
|
||||
relation,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
logType: okLog,
|
||||
@@ -1075,6 +1097,7 @@ func TestShareThingCmd(t *testing.T) {
|
||||
thing.ID,
|
||||
invalidID,
|
||||
relation,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrAddPolicies, http.StatusBadRequest),
|
||||
@@ -1087,6 +1110,7 @@ func TestShareThingCmd(t *testing.T) {
|
||||
invalidID,
|
||||
user.ID,
|
||||
relation,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrAuthorization, http.StatusForbidden),
|
||||
@@ -1099,6 +1123,7 @@ func TestShareThingCmd(t *testing.T) {
|
||||
thing.ID,
|
||||
user.ID,
|
||||
relation,
|
||||
domainID,
|
||||
token,
|
||||
extraArg,
|
||||
},
|
||||
@@ -1110,6 +1135,7 @@ func TestShareThingCmd(t *testing.T) {
|
||||
thing.ID,
|
||||
user.ID,
|
||||
"invalid",
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrUpdateEntity, http.StatusBadRequest),
|
||||
@@ -1119,7 +1145,7 @@ func TestShareThingCmd(t *testing.T) {
|
||||
}
|
||||
for _, tc := range cases {
|
||||
t.Run(tc.desc, func(t *testing.T) {
|
||||
sdkCall := sdkMock.On("ShareThing", tc.args[0], mock.Anything, tc.args[3]).Return(tc.sdkErr)
|
||||
sdkCall := sdkMock.On("ShareThing", tc.args[0], mock.Anything, tc.args[3], tc.args[4]).Return(tc.sdkErr)
|
||||
out := executeCommand(t, rootCmd, append([]string{shrCmd}, tc.args...)...)
|
||||
|
||||
switch tc.logType {
|
||||
@@ -1154,6 +1180,7 @@ func TestUnshareThingCmd(t *testing.T) {
|
||||
thing.ID,
|
||||
user.ID,
|
||||
relation,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
logType: okLog,
|
||||
@@ -1164,6 +1191,7 @@ func TestUnshareThingCmd(t *testing.T) {
|
||||
invalidID,
|
||||
user.ID,
|
||||
relation,
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrAuthorization, http.StatusForbidden),
|
||||
@@ -1176,6 +1204,7 @@ func TestUnshareThingCmd(t *testing.T) {
|
||||
thing.ID,
|
||||
user.ID,
|
||||
relation,
|
||||
domainID,
|
||||
token,
|
||||
extraArg,
|
||||
},
|
||||
@@ -1187,6 +1216,7 @@ func TestUnshareThingCmd(t *testing.T) {
|
||||
thing.ID,
|
||||
user.ID,
|
||||
"invalid",
|
||||
domainID,
|
||||
token,
|
||||
},
|
||||
sdkErr: errors.NewSDKErrorWithStatus(svcerr.ErrUpdateEntity, http.StatusBadRequest),
|
||||
@@ -1196,7 +1226,7 @@ func TestUnshareThingCmd(t *testing.T) {
|
||||
}
|
||||
for _, tc := range cases {
|
||||
t.Run(tc.desc, func(t *testing.T) {
|
||||
sdkCall := sdkMock.On("UnshareThing", tc.args[0], mock.Anything, tc.args[3]).Return(tc.sdkErr)
|
||||
sdkCall := sdkMock.On("UnshareThing", tc.args[0], mock.Anything, tc.args[3], tc.args[4]).Return(tc.sdkErr)
|
||||
out := executeCommand(t, rootCmd, append([]string{unshrCmd}, tc.args...)...)
|
||||
|
||||
switch tc.logType {
|
||||
|
||||
Reference in New Issue
Block a user