Skip to content

Commit

Permalink
Remove Close from the framing layer (#22)
Browse files Browse the repository at this point in the history
The framing layer does not use any resources that should be closed when the client closes except a transport. But the transport is created outside the framing layer so it should be closed outside it as well.
  • Loading branch information
vykulakov committed Dec 26, 2019
1 parent 50d5a5c commit 19cbc0f
Show file tree
Hide file tree
Showing 5 changed files with 7 additions and 41 deletions.
2 changes: 1 addition & 1 deletion client.go
Original file line number Diff line number Diff line change
Expand Up @@ -186,5 +186,5 @@ func (c *client) Close() error {
return err
}

return c.framingLayer.Close()
return c.transport.Close()
}
12 changes: 6 additions & 6 deletions client_internal_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -198,22 +198,22 @@ func TestClient_Close(t *testing.T) {
testErr := errors.New("test error")

t.Run("succeed", func(t *testing.T) {
c, _, f, _, _ := prepare()
c, x, _, _, _ := prepare()

f.On("Close").Return(nil)
x.On("Close").Return(nil)

err := c.Close()
require.NoError(t, err)
f.AssertExpectations(t)
x.AssertExpectations(t)
})

t.Run("framing layer error", func(t *testing.T) {
c, _, f, _, _ := prepare()
c, x, _, _, _ := prepare()

f.On("Close").Return(testErr)
x.On("Close").Return(testErr)

err := c.Close()
require.EqualError(t, err, "test error")
f.AssertExpectations(t)
x.AssertExpectations(t)
})
}
7 changes: 0 additions & 7 deletions framing.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,7 @@ const maxFrameSize = 10 * 1024

type FramingLayer interface {
Read() ([]byte, error)

Write(p []byte) error

Close() error
}

// Framing is a part on the Avro RPC protocol.
Expand Down Expand Up @@ -136,7 +133,3 @@ func (f *framingLayer) writeFrames(p []byte) (err error) {

return
}

func (f *framingLayer) Close() error {
return f.trans.Close()
}
22 changes: 0 additions & 22 deletions framing_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -203,25 +203,3 @@ func TestFramingLayer_Write(t *testing.T) {
m.AssertExpectations(t)
})
}

func TestFramingLayer_Close(t *testing.T) {
t.Run("succeed", func(t *testing.T) {
f, m := prepareFramingLayer()

m.On("Close").Return(nil).Once()

err := f.Close()
require.NoError(t, err)
m.AssertExpectations(t)
})

t.Run("failed", func(t *testing.T) {
f, m := prepareFramingLayer()

m.On("Close").Return(fmt.Errorf("test error")).Once()

err := f.Close()
require.EqualError(t, err, "test error")
m.AssertExpectations(t)
})
}
5 changes: 0 additions & 5 deletions mocks/framing.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,3 @@ func (f *MockFramingLayer) Write(p []byte) error {
args := f.Called(p)
return args.Error(0)
}

func (f *MockFramingLayer) Close() error {
args := f.Called()
return args.Error(0)
}

0 comments on commit 19cbc0f

Please sign in to comment.