aboutsummaryrefslogtreecommitdiff
path: root/server/testdata/type.go
diff options
context:
space:
mode:
Diffstat (limited to 'server/testdata/type.go')
-rw-r--r--server/testdata/type.go32
1 files changed, 32 insertions, 0 deletions
diff --git a/server/testdata/type.go b/server/testdata/type.go
new file mode 100644
index 0000000..93041c9
--- /dev/null
+++ b/server/testdata/type.go
@@ -0,0 +1,32 @@
+package testdata
+
+import (
+ "context"
+ "fmt"
+
+ "github.com/golang/mock/gomock"
+)
+
+// DeadlineMatcher implements gomock.Matcher, such that an error is raised if
+// there is no context.Context deadline set
+type DeadlineMatcher struct{}
+
+// NewDeadlineMatcher returns a new DeadlineMatcher
+func NewDeadlineMatcher() gomock.Matcher {
+ return &DeadlineMatcher{}
+}
+
+// Matches returns true if the passed interface is a context with a deadline
+func (dm *DeadlineMatcher) Matches(i interface{}) bool {
+ ctx, ok := i.(context.Context)
+ if !ok {
+ return false
+ }
+ _, ok = ctx.Deadline()
+ return ok
+}
+
+// String is needed to implement gomock.Matcher
+func (dm *DeadlineMatcher) String() string {
+ return fmt.Sprintf("deadlineMatcher{}")
+}