Skip to content

Commit 040a60f

Browse files
committed
fix mock encoding
1 parent 8ec1611 commit 040a60f

File tree

4 files changed

+29
-2
lines changed

4 files changed

+29
-2
lines changed

.travis.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ go:
66
- 1.9.x
77
- 1.10.x
88
- 1.11.x
9+
- 1.12.x
910
- master
1011

1112
cache: apt

connection.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -464,7 +464,7 @@ func (c *Connection) processResponse(ctx context.Context, q Query, response *Res
464464
case p.Response_WAIT_COMPLETE:
465465
return c.processWaitResponse(response)
466466
default:
467-
return nil, nil, RQLDriverError{rqlError("Unexpected response type: %v")}
467+
return nil, nil, RQLDriverError{rqlError(fmt.Sprintf("Unexpected response type: %v", response.Type.String()))}
468468
}
469469
}
470470

mock.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"encoding/json"
66
"fmt"
77
"gopkg.in/check.v1"
8+
"gopkg.in/rethinkdb/rethinkdb-go.v5/encoding"
89
"net"
910
"reflect"
1011
"sync"
@@ -472,7 +473,11 @@ func (c *mockConn) Read(b []byte) (n int, err error) {
472473

473474
jresps := make([]json.RawMessage, len(values))
474475
for i := range values {
475-
jresps[i], err = json.Marshal(values[i])
476+
coded, err := encoding.Encode(values[i])
477+
if err != nil {
478+
panic(fmt.Sprintf("failed to encode response: %v", err))
479+
}
480+
jresps[i], err = json.Marshal(coded)
476481
if err != nil {
477482
panic(fmt.Sprintf("failed to encode response: %v", err))
478483
}

mock_test.go

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -350,6 +350,27 @@ func (s *MockSuite) TestMockAnything(c *test.C) {
350350
mock.AssertExpectations(c)
351351
}
352352

353+
func (s *MockSuite) TestMockRethinkStructsRunWrite(c *test.C) {
354+
mock := NewMock()
355+
mock.On(DB("test").Table("test").Update(map[string]int{"val": 1})).Return(WriteResponse{
356+
Replaced: 1,
357+
Changes: []ChangeResponse{
358+
{NewValue: map[string]interface{}{"val": 1}, OldValue: map[string]interface{}{"val": 0}},
359+
},
360+
}, nil)
361+
362+
res, err := DB("test").Table("test").Update(map[string]int{"val": 1}).RunWrite(mock)
363+
c.Assert(err, test.IsNil)
364+
365+
c.Assert(res, tests.JsonEquals, WriteResponse{
366+
Replaced: 1,
367+
Changes: []ChangeResponse{
368+
{NewValue: map[string]interface{}{"val": 1}, OldValue: map[string]interface{}{"val": 0}},
369+
},
370+
})
371+
mock.AssertExpectations(c)
372+
}
373+
353374
type simpleTestingT struct {
354375
failed bool
355376
}

0 commit comments

Comments
 (0)