ducky/devices

Paddy 2015-11-29 Parent:b6494e1a499e Child:c24a6c5fcd8c

13:e3ced527d4ab Go to Latest

ducky/devices/context.go

Add tests for ToSlice and ToMap. Add simple unit tests that verify that ToSlice and ToMap both work as we expect. These are probably overly-simplistic, but so are the functions we're testing. Not sure about this... feel a bit conflicted. But let's try it.

History
1 package devices
3 import (
4 "errors"
6 "golang.org/x/net/context"
7 )
9 const (
10 storerKey = "code.secondbit.org/ducky/devices.hg#Storer"
11 )
13 var (
14 // ErrNoStorerSet is returned when the Context has no Storer set in it.
15 ErrNoStorerSet = errors.New("storerKey not set in Context")
16 // ErrStorerKeyNotStorer is returned when there's a value in the Context for storerKey, but it's not a Storer.
17 ErrStorerKeyNotStorer = errors.New("the value for storerKey does not fulfill the Storer interface")
18 )
20 func getStorer(c context.Context) (Storer, error) {
21 val := c.Value(storerKey)
22 if val == nil {
23 return nil, ErrNoStorerSet
24 }
25 storer, ok := val.(Storer)
26 if !ok {
27 return nil, ErrStorerKeyNotStorer
28 }
29 return storer, nil
30 }