+
+func TestGetCmdSuccess(t *testing.T) {
+
+ tests := []struct {
+ ns string
+ keys []string
+ result map[string]interface{}
+ expOut string
+ expErr error
+ }{
+ {ns: "testns", keys: []string{"key1"}, result: map[string]interface{}{}, expOut: "", expErr: nil},
+ {ns: "testns", keys: []string{"key1"}, result: map[string]interface{}{"key1": "1"}, expOut: "key1:1\n", expErr: nil},
+ {ns: "testns", keys: []string{"key1 key2"}, result: map[string]interface{}{"key1": "1", "key2": "2"}, expOut: "key1:1\nkey2:2\n", expErr: nil},
+ {ns: "testns", keys: []string{"key1 key3 key2"}, result: map[string]interface{}{"key1": "1", "key3": "3", "key2": "2"}, expOut: "key1:1\nkey2:2\nkey3:3\n", expErr: nil},
+ {ns: "testns", keys: []string{"key1 keyDoesNotExist"}, result: map[string]interface{}{"key1": "1"}, expOut: "key1:1\n", expErr: nil},
+ }
+ for _, test := range tests {
+ setupGetMock(test.ns, test.keys, test.result, test.expErr)
+ stdout, stderr, err := runGetCmdCli()
+
+ assert.Nil(t, err)
+ assert.Equal(t, test.expOut, stdout)
+ assert.Equal(t, "", stderr)
+ getMocks.sdlIface.AssertExpectations(t)
+ }
+}
+
+func TestGetCmdFails(t *testing.T) {
+ expErr := errors.New("Boom!")
+
+ setupGetMock("testns", []string{"key1"}, map[string]interface{}{}, expErr)
+ _, stderr, err := runGetCmdCli()
+
+ assert.Equal(t, expErr, err)
+ assert.Contains(t, stderr, expErr.Error())
+ getMocks.sdlIface.AssertExpectations(t)
+}