Skip to content

Commit

Permalink
Little improvements
Browse files Browse the repository at this point in the history
  • Loading branch information
felipejfc committed Jan 2, 2020
1 parent 59a1347 commit a1c1c81
Show file tree
Hide file tree
Showing 4 changed files with 51 additions and 20 deletions.
6 changes: 1 addition & 5 deletions agent/agent.go
Original file line number Diff line number Diff line change
Expand Up @@ -103,11 +103,7 @@ func NewAgent(
metricsReporters []metrics.Reporter,
) *Agent {
// initialize heartbeat and handshake data on first user connection
serializerName := ""

if serializer != nil { //should never be true, only during testing
serializerName = serializer.GetName()
}
serializerName := serializer.GetName()

once.Do(func() {
hbdEncode(heartbeatTime, packetEncoder, messageEncoder.IsCompressionEnabled(), serializerName)
Expand Down
54 changes: 42 additions & 12 deletions agent/agent_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ func TestNewAgent(t *testing.T) {
defer ctrl.Finish()

mockSerializer := serializemocks.NewMockSerializer(ctrl)
mockSerializer.EXPECT().GetName()
mockSerializer.EXPECT().GetName().Times(2)

mockMetricsReporter := metricsmocks.NewMockReporter(ctrl)
mockEncoder := codecmocks.NewMockPacketEncoder(ctrl)
Expand Down Expand Up @@ -114,7 +114,7 @@ func TestNewAgent(t *testing.T) {

// second call should no call hdb encode
mockMetricsReporter.EXPECT().ReportGauge(metrics.ConnectedClients, gomock.Any(), gomock.Any())
ag = NewAgent(nil, nil, mockEncoder, nil, hbTime, 10, dieChan, messageEncoder, mockMetricsReporters)
ag = NewAgent(nil, nil, mockEncoder, mockSerializer, hbTime, 10, dieChan, messageEncoder, mockMetricsReporters)
assert.NotNil(t, ag)
}

Expand Down Expand Up @@ -189,11 +189,14 @@ func TestAgentPushFailsIfClosedAgent(t *testing.T) {
ctrl := gomock.NewController(t)
defer ctrl.Finish()

mockSerializer := serializemocks.NewMockSerializer(ctrl)
mockSerializer.EXPECT().GetName()

mockEncoder := codecmocks.NewMockPacketEncoder(ctrl)
heartbeatAndHandshakeMocks(mockEncoder)
messageEncoder := message.NewMessagesEncoder(false)

ag := NewAgent(nil, nil, mockEncoder, nil, time.Second, 10, nil, messageEncoder, nil)
ag := NewAgent(nil, nil, mockEncoder, mockSerializer, time.Second, 10, nil, messageEncoder, nil)
assert.NotNil(t, ag)
ag.state = constants.StatusClosed
err := ag.Push("", nil)
Expand Down Expand Up @@ -289,9 +292,12 @@ func TestAgentResponseMIDFailsIfClosedAgent(t *testing.T) {
mockMessageEncoder := messagemocks.NewMockEncoder(ctrl)
mockMetricsReporter := metricsmocks.NewMockReporter(ctrl)

mockSerializer := serializemocks.NewMockSerializer(ctrl)
mockSerializer.EXPECT().GetName()

mockMetricsReporters := []metrics.Reporter{mockMetricsReporter}
mockMetricsReporter.EXPECT().ReportGauge(metrics.ConnectedClients, gomock.Any(), gomock.Any())
ag := NewAgent(nil, nil, mockEncoder, nil, time.Second, 10, nil, mockMessageEncoder, mockMetricsReporters)
ag := NewAgent(nil, nil, mockEncoder, mockSerializer, time.Second, 10, nil, mockMessageEncoder, mockMetricsReporters)
assert.NotNil(t, ag)
ag.state = constants.StatusClosed

Expand Down Expand Up @@ -407,8 +413,10 @@ func TestAgentCloseFailsIfAlreadyClosed(t *testing.T) {
mockEncoder := codecmocks.NewMockPacketEncoder(ctrl)
heartbeatAndHandshakeMocks(mockEncoder)
mockMessageEncoder := messagemocks.NewMockEncoder(ctrl)
mockSerializer := serializemocks.NewMockSerializer(ctrl)
mockSerializer.EXPECT().GetName()

ag := NewAgent(nil, nil, mockEncoder, nil, time.Second, 10, nil, mockMessageEncoder, nil)
ag := NewAgent(nil, nil, mockEncoder, mockSerializer, time.Second, 10, nil, mockMessageEncoder, nil)
assert.NotNil(t, ag)
ag.state = constants.StatusClosed
err := ag.Close()
Expand All @@ -423,7 +431,10 @@ func TestAgentClose(t *testing.T) {
mockEncoder := codecmocks.NewMockPacketEncoder(ctrl)
heartbeatAndHandshakeMocks(mockEncoder)
mockMessageEncoder := messagemocks.NewMockEncoder(ctrl)
ag := NewAgent(mockConn, nil, mockEncoder, nil, time.Second, 0, nil, mockMessageEncoder, nil)
mockSerializer := serializemocks.NewMockSerializer(ctrl)
mockSerializer.EXPECT().GetName()

ag := NewAgent(mockConn, nil, mockEncoder, mockSerializer, time.Second, 0, nil, mockMessageEncoder, nil)
assert.NotNil(t, ag)

expected := false
Expand Down Expand Up @@ -467,7 +478,10 @@ func TestAgentRemoteAddr(t *testing.T) {
mockEncoder := codecmocks.NewMockPacketEncoder(ctrl)
heartbeatAndHandshakeMocks(mockEncoder)
mockMessageEncoder := messagemocks.NewMockEncoder(ctrl)
ag := NewAgent(mockConn, nil, mockEncoder, nil, time.Second, 0, nil, mockMessageEncoder, nil)
mockSerializer := serializemocks.NewMockSerializer(ctrl)
mockSerializer.EXPECT().GetName()

ag := NewAgent(mockConn, nil, mockEncoder, mockSerializer, time.Second, 0, nil, mockMessageEncoder, nil)
assert.NotNil(t, ag)

expected := &mockAddr{}
Expand All @@ -484,7 +498,10 @@ func TestAgentString(t *testing.T) {
mockEncoder := codecmocks.NewMockPacketEncoder(ctrl)
heartbeatAndHandshakeMocks(mockEncoder)
mockMessageEncoder := messagemocks.NewMockEncoder(ctrl)
ag := NewAgent(mockConn, nil, mockEncoder, nil, time.Second, 0, nil, mockMessageEncoder, nil)
mockSerializer := serializemocks.NewMockSerializer(ctrl)
mockSerializer.EXPECT().GetName()

ag := NewAgent(mockConn, nil, mockEncoder, mockSerializer, time.Second, 0, nil, mockMessageEncoder, nil)
assert.NotNil(t, ag)

mockConn.EXPECT().RemoteAddr().Return(&mockAddr{})
Expand All @@ -511,7 +528,11 @@ func TestAgentGetStatus(t *testing.T) {
mockEncoder := codecmocks.NewMockPacketEncoder(ctrl)
heartbeatAndHandshakeMocks(mockEncoder)
mockMessageEncoder := messagemocks.NewMockEncoder(ctrl)
ag := NewAgent(mockConn, nil, mockEncoder, nil, time.Second, 0, nil, mockMessageEncoder, nil)

mockSerializer := serializemocks.NewMockSerializer(ctrl)
mockSerializer.EXPECT().GetName()

ag := NewAgent(mockConn, nil, mockEncoder, mockSerializer, time.Second, 0, nil, mockMessageEncoder, nil)
assert.NotNil(t, ag)

ag.state = table.status
Expand All @@ -529,7 +550,10 @@ func TestAgentSetLastAt(t *testing.T) {
mockEncoder := codecmocks.NewMockPacketEncoder(ctrl)
heartbeatAndHandshakeMocks(mockEncoder)
mockMessageEncoder := messagemocks.NewMockEncoder(ctrl)
ag := NewAgent(nil, nil, mockEncoder, nil, time.Second, 0, nil, mockMessageEncoder, nil)
mockSerializer := serializemocks.NewMockSerializer(ctrl)
mockSerializer.EXPECT().GetName()

ag := NewAgent(nil, nil, mockEncoder, mockSerializer, time.Second, 0, nil, mockMessageEncoder, nil)
assert.NotNil(t, ag)

ag.lastAt = 0
Expand All @@ -554,7 +578,10 @@ func TestAgentSetStatus(t *testing.T) {
mockEncoder := codecmocks.NewMockPacketEncoder(ctrl)
heartbeatAndHandshakeMocks(mockEncoder)
mockMessageEncoder := messagemocks.NewMockEncoder(ctrl)
ag := NewAgent(nil, nil, mockEncoder, nil, time.Second, 0, nil, mockMessageEncoder, nil)
mockSerializer := serializemocks.NewMockSerializer(ctrl)
mockSerializer.EXPECT().GetName()

ag := NewAgent(nil, nil, mockEncoder, mockSerializer, time.Second, 0, nil, mockMessageEncoder, nil)
assert.NotNil(t, ag)

ag.SetStatus(table.status)
Expand Down Expand Up @@ -608,7 +635,10 @@ func TestAgentSendHandshakeResponse(t *testing.T) {
mockEncoder := codecmocks.NewMockPacketEncoder(ctrl)
heartbeatAndHandshakeMocks(mockEncoder)
mockMessageEncoder := messagemocks.NewMockEncoder(ctrl)
ag := NewAgent(mockConn, nil, mockEncoder, nil, time.Second, 0, nil, mockMessageEncoder, nil)
mockSerializer := serializemocks.NewMockSerializer(ctrl)
mockSerializer.EXPECT().GetName()

ag := NewAgent(mockConn, nil, mockEncoder, mockSerializer, time.Second, 0, nil, mockMessageEncoder, nil)
assert.NotNil(t, ag)

mockConn.EXPECT().Write(hrd).Return(0, table.err)
Expand Down
1 change: 0 additions & 1 deletion service/handler.go
Original file line number Diff line number Diff line change
Expand Up @@ -205,7 +205,6 @@ func (h *HandlerService) Handle(conn acceptor.PlayerConn) {
return
}
}
//buf.Reset()
}
}

Expand Down
10 changes: 8 additions & 2 deletions service/handler_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -296,7 +296,10 @@ func TestHandlerServiceProcessPacketHandshakeAck(t *testing.T) {
svc := NewHandlerService(nil, nil, nil, nil, 1*time.Second, 1, 1, 1, nil, nil, nil, nil)

mockConn.EXPECT().RemoteAddr().Return(&mockAddr{})
ag := agent.NewAgent(mockConn, nil, packetEncoder, nil, 1*time.Second, 1, nil, messageEncoder, nil)
mockSerializer := serializemocks.NewMockSerializer(ctrl)
mockSerializer.EXPECT().GetName()

ag := agent.NewAgent(mockConn, nil, packetEncoder, mockSerializer, 1*time.Second, 1, nil, messageEncoder, nil)
err := svc.processPacket(ag, &packet.Packet{Type: packet.HandshakeAck})
assert.NoError(t, err)
assert.Equal(t, constants.StatusWorking, ag.GetStatus())
Expand All @@ -312,7 +315,10 @@ func TestHandlerServiceProcessPacketHeartbeat(t *testing.T) {
svc := NewHandlerService(nil, nil, nil, nil, 1*time.Second, 1, 1, 1, nil, nil, nil, nil)

mockConn.EXPECT().RemoteAddr().Return(&mockAddr{})
ag := agent.NewAgent(mockConn, nil, packetEncoder, nil, 1*time.Second, 1, nil, messageEncoder, nil)
mockSerializer := serializemocks.NewMockSerializer(ctrl)
mockSerializer.EXPECT().GetName()

ag := agent.NewAgent(mockConn, nil, packetEncoder, mockSerializer, 1*time.Second, 1, nil, messageEncoder, nil)
// wait to check if lastTime is updated. SORRY!
time.Sleep(1 * time.Second)
err := svc.processPacket(ag, &packet.Packet{Type: packet.Heartbeat})
Expand Down

0 comments on commit a1c1c81

Please sign in to comment.