~juju-qa/ubuntu/yakkety/juju/juju-1.25.8

« back to all changes in this revision

Viewing changes to src/github.com/juju/juju/apiserver/metricsender/testing/mocksender.go

  • Committer: Nicholas Skaggs
  • Date: 2016-12-02 17:28:37 UTC
  • Revision ID: nicholas.skaggs@canonical.com-20161202172837-jkrbdlyjcxtrii2n
Initial commit of 1.25.6

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
// Copyright 2012, 2013 Canonical Ltd.
 
2
// Licensed under the AGPLv3, see LICENCE file for details.
 
3
 
 
4
package testing
 
5
 
 
6
import (
 
7
        "github.com/juju/utils"
 
8
 
 
9
        "github.com/juju/juju/apiserver/metricsender/wireformat"
 
10
)
 
11
 
 
12
// MockSender implements the metric sender interface.
 
13
type MockSender struct {
 
14
        Data [][]*wireformat.MetricBatch
 
15
}
 
16
 
 
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()
 
21
        if err != nil {
 
22
                return nil, err
 
23
        }
 
24
        var envResponses = make(wireformat.EnvironmentResponses)
 
25
 
 
26
        for _, batch := range d {
 
27
                envResponses.Ack(batch.EnvUUID, batch.UUID)
 
28
        }
 
29
        return &wireformat.Response{
 
30
                UUID:         respUUID.String(),
 
31
                EnvResponses: envResponses,
 
32
        }, nil
 
33
}
 
34
 
 
35
// ErrorSender implements the metric sender interface and is used
 
36
// to return errors during testing
 
37
type ErrorSender struct {
 
38
        Err error
 
39
}
 
40
 
 
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
 
44
}