1 package msgdata
2
3 import (
4 "errors"
5 "fmt"
6 "testing"
7
8 "github.com/stretchr/testify/assert"
9 )
10
11 var (
12 defaultCommand = "echo hello"
13 defaultComID = "efgh"
14 defaultRequestData = RequestData{
15 Command: defaultCommand,
16 }
17 defaultRequestAttr = RequestAttributes{
18 GeneralAttributes: defaultAttr,
19 CommandID: defaultComID,
20 }
21 )
22
23 func TestSuccessNewCommandRequest(t *testing.T) {
24 expected := &commandRequest{
25 data: defaultRequestData,
26 attributes: defaultRequestAttr,
27 }
28 req, err := NewCommandRequest(defaultCommand, defaultAttrMap)
29 assert.NoError(t, err)
30 assert.Equal(t, expected, req)
31 }
32
33 func TestFailNewCommandRequest(t *testing.T) {
34 req, err := NewCommandRequest(defaultCommand, nil)
35 assert.Error(t, err)
36 assert.Nil(t, req)
37
38 req, err = NewCommandRequest("", defaultAttrMap)
39 assert.Error(t, err)
40 assert.Nil(t, req)
41
42 req, err = NewCommandRequest("", nil)
43 assert.Error(t, err)
44 assert.Nil(t, req)
45 }
46
47 func TestCommandRequestValidate(t *testing.T) {
48 req := commandRequest{
49 data: defaultRequestData,
50 attributes: defaultRequestAttr,
51 }
52 assert.NoError(t, req.validate())
53
54 badReq := commandRequest{}
55 assert.Len(t, badReq.validate(), 7)
56 }
57
58 func TestError(t *testing.T) {
59 errmsg1, errmsg2, errmsg3 := "error 1", "error 2", "error 3"
60 expectedErrMsg := fmt.Sprintf("%s, %s, %s", errmsg1, errmsg2, errmsg3)
61
62 err1, err2 := CommandRequestErr{}, CommandResponseErr{}
63 err1 = append(err1, errors.New(errmsg1), errors.New(errmsg2), errors.New(errmsg3))
64 err2 = append(err2, errors.New(errmsg1), errors.New(errmsg2), errors.New(errmsg3))
65
66 assert.Equal(t, expectedErrMsg, err1.Error())
67 assert.Equal(t, expectedErrMsg, err2.Error())
68 }
69
View as plain text