2023-03-20 16:28:45 +00:00
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
|
|
|
"github.com/stretchr/testify/assert"
|
2023-04-17 21:07:56 +00:00
|
|
|
"openamt/pkg/amtrpc"
|
2023-03-20 16:28:45 +00:00
|
|
|
"rpc/pkg/utils"
|
|
|
|
"testing"
|
|
|
|
)
|
|
|
|
|
|
|
|
var amtUnavailable = amtrpc.AMTRPC{
|
|
|
|
MockAccessStatus: func() int { return utils.AmtNotDetected },
|
|
|
|
MockExec: func(s string) (string, int) { return "", utils.Success },
|
|
|
|
}
|
|
|
|
|
|
|
|
var amtAccessError = amtrpc.AMTRPC{
|
|
|
|
MockAccessStatus: func() int { return utils.IncorrectPermissions },
|
|
|
|
MockExec: func(s string) (string, int) { return "", utils.Success },
|
|
|
|
}
|
|
|
|
|
|
|
|
var amtActive = amtrpc.AMTRPC{
|
|
|
|
MockAccessStatus: func() int { return utils.Success },
|
|
|
|
MockExec: func(s string) (string, int) { return "", utils.Success },
|
|
|
|
}
|
|
|
|
|
|
|
|
var amtExecError = amtrpc.AMTRPC{
|
|
|
|
MockAccessStatus: func() int { return utils.Success },
|
|
|
|
MockExec: func(s string) (string, int) { return "", utils.ActivationFailed },
|
|
|
|
}
|
|
|
|
|
|
|
|
func Test_activateAMTUnavailable(t *testing.T) {
|
2023-04-14 20:44:54 +00:00
|
|
|
config := &AMT{
|
|
|
|
ServerAddress: "wss://fake",
|
2023-03-20 16:28:45 +00:00
|
|
|
}
|
|
|
|
|
2023-04-14 20:44:54 +00:00
|
|
|
err := activateAMT(amtUnavailable, config)
|
2023-03-20 16:28:45 +00:00
|
|
|
|
2023-04-14 20:44:54 +00:00
|
|
|
assert.NoError(t, err)
|
2023-03-20 16:28:45 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
func Test_activateAMTCheckAccessError(t *testing.T) {
|
2023-04-14 20:44:54 +00:00
|
|
|
config := &AMT{
|
|
|
|
ServerAddress: "wss://fake",
|
2023-03-20 16:28:45 +00:00
|
|
|
}
|
|
|
|
|
2023-04-14 20:44:54 +00:00
|
|
|
err := activateAMT(amtAccessError, config)
|
2023-03-20 16:28:45 +00:00
|
|
|
|
2023-04-14 20:44:54 +00:00
|
|
|
assert.Error(t, err)
|
2023-03-20 16:28:45 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
func Test_activateAMTNoConfiguration(t *testing.T) {
|
2023-04-14 20:44:54 +00:00
|
|
|
err := activateAMT(amtActive, &AMT{})
|
2023-03-20 16:28:45 +00:00
|
|
|
|
2023-04-14 20:44:54 +00:00
|
|
|
assert.NoError(t, err)
|
2023-03-20 16:28:45 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
func Test_activateAMTApplyError(t *testing.T) {
|
2023-04-14 20:44:54 +00:00
|
|
|
config := &AMT{
|
|
|
|
ServerAddress: "wss://fake",
|
2023-03-20 16:28:45 +00:00
|
|
|
}
|
|
|
|
|
2023-04-14 20:44:54 +00:00
|
|
|
err := activateAMT(amtExecError, config)
|
2023-03-20 16:28:45 +00:00
|
|
|
|
2023-04-14 20:44:54 +00:00
|
|
|
assert.Error(t, err)
|
2023-03-20 16:28:45 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
func Test_activateAMTStandard(t *testing.T) {
|
|
|
|
var execCommand string
|
|
|
|
|
2023-04-14 20:44:54 +00:00
|
|
|
config := &AMT{
|
|
|
|
ServerAddress: "wss://fake",
|
|
|
|
Extra: map[string]string{
|
|
|
|
"-foo": "bar",
|
2023-03-20 16:28:45 +00:00
|
|
|
},
|
|
|
|
}
|
|
|
|
amt := amtrpc.AMTRPC{
|
|
|
|
MockAccessStatus: func() int { return utils.Success },
|
|
|
|
MockExec: func(s string) (string, int) {
|
|
|
|
execCommand = s
|
|
|
|
return "", utils.Success
|
|
|
|
},
|
|
|
|
}
|
|
|
|
|
2023-04-14 20:44:54 +00:00
|
|
|
err := activateAMT(amt, config)
|
2023-03-20 16:28:45 +00:00
|
|
|
|
|
|
|
assert.Contains(t, execCommand, "activate")
|
2023-04-14 20:44:54 +00:00
|
|
|
assert.Contains(t, execCommand, "-u "+config.ServerAddress)
|
2023-03-20 16:28:45 +00:00
|
|
|
assert.Contains(t, execCommand, "-foo bar")
|
2023-04-14 20:44:54 +00:00
|
|
|
assert.NoError(t, err)
|
2023-03-20 16:28:45 +00:00
|
|
|
}
|