1
// Copyright 2012, 2013 Canonical Ltd.
2
// Licensed under the AGPLv3, see LICENCE file for details.
7
"github.com/juju/utils"
9
"github.com/juju/juju/apiserver/metricsender/wireformat"
12
// MockSender implements the metric sender interface.
13
type MockSender struct {
14
Data [][]*wireformat.MetricBatch
17
// Send implements the Send interface.
18
func (m *MockSender) Send(d []*wireformat.MetricBatch) (*wireformat.Response, error) {
19
m.Data = append(m.Data, d)
20
respUUID, err := utils.NewUUID()
24
var envResponses = make(wireformat.EnvironmentResponses)
26
for _, batch := range d {
27
envResponses.Ack(batch.EnvUUID, batch.UUID)
29
return &wireformat.Response{
30
UUID: respUUID.String(),
31
EnvResponses: envResponses,
35
// ErrorSender implements the metric sender interface and is used
36
// to return errors during testing
37
type ErrorSender struct {
41
// Send implements the Send interface returning errors specified in the ErrorSender.
42
func (e *ErrorSender) Send(d []*wireformat.MetricBatch) (*wireformat.Response, error) {
43
return &wireformat.Response{}, e.Err