-
Notifications
You must be signed in to change notification settings - Fork 1
/
testing.go
70 lines (56 loc) · 1.96 KB
/
testing.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
/*
Copyright 2013-2014 Canonical Ltd.
This program is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License version 3, as published
by the Free Software Foundation.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranties of
MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program. If not, see <http://www.gnu.org/licenses/>.
*/
// Package whoopsie/identifier/testing implements a couple of Ids that
// are useful for testing things that use whoopsie/identifier.
package testing
import "errors"
// SettableIdentifier is an Id that lets you set the value of the identifier.
//
// By default the identifier's value is "<Settable>", so it's visible
// if you're misusing it.
type SettableIdentifier struct {
value string
}
// Settable is the constructor for SettableIdentifier.
func Settable() *SettableIdentifier {
return &SettableIdentifier{"<Settable>"}
}
// Set is the method you use to set the identifier.
func (sid *SettableIdentifier) Set(value string) {
sid.value = value
}
// Generate does nothing.
func (sid *SettableIdentifier) Generate() error {
return nil
}
// String returns the string you set.
func (sid *SettableIdentifier) String() string {
return sid.value
}
// FailingIdentifier is an Id that always fails to generate.
type FailingIdentifier struct{}
// Failing is the constructor for FailingIdentifier.
func Failing() *FailingIdentifier {
return &FailingIdentifier{}
}
// Generate fails with an ubiquitous error.
func (*FailingIdentifier) Generate() error {
return errors.New("lp0 on fire")
}
// String returns "<Failing>".
//
// The purpose of this is to make it easy to spot if you're using it
// by accident.
func (*FailingIdentifier) String() string {
return "<Failing>"
}