package msgdata import ( "errors" "fmt" "testing" "github.com/stretchr/testify/assert" ) var ( defaultCommand = "echo hello" defaultComID = "efgh" defaultRequestData = RequestData{ Command: defaultCommand, } defaultRequestAttr = RequestAttributes{ GeneralAttributes: defaultAttr, CommandID: defaultComID, } ) func TestSuccessNewCommandRequest(t *testing.T) { expected := &commandRequest{ data: defaultRequestData, attributes: defaultRequestAttr, } req, err := NewCommandRequest(defaultCommand, defaultAttrMap) assert.NoError(t, err) assert.Equal(t, expected, req) } func TestFailNewCommandRequest(t *testing.T) { req, err := NewCommandRequest(defaultCommand, nil) assert.Error(t, err) assert.Nil(t, req) req, err = NewCommandRequest("", defaultAttrMap) assert.Error(t, err) assert.Nil(t, req) req, err = NewCommandRequest("", nil) assert.Error(t, err) assert.Nil(t, req) } func TestCommandRequestValidate(t *testing.T) { req := commandRequest{ data: defaultRequestData, attributes: defaultRequestAttr, } assert.NoError(t, req.validate()) badReq := commandRequest{} assert.Len(t, badReq.validate(), 7) } func TestError(t *testing.T) { errmsg1, errmsg2, errmsg3 := "error 1", "error 2", "error 3" expectedErrMsg := fmt.Sprintf("%s, %s, %s", errmsg1, errmsg2, errmsg3) err1, err2 := CommandRequestErr{}, CommandResponseErr{} err1 = append(err1, errors.New(errmsg1), errors.New(errmsg2), errors.New(errmsg3)) err2 = append(err2, errors.New(errmsg1), errors.New(errmsg2), errors.New(errmsg3)) assert.Equal(t, expectedErrMsg, err1.Error()) assert.Equal(t, expectedErrMsg, err2.Error()) }