-
Notifications
You must be signed in to change notification settings - Fork 5
/
ctx_helper_test.go
69 lines (66 loc) · 2.11 KB
/
ctx_helper_test.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
package gobis_test
import (
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
. "github.com/orange-cloudfoundry/gobis"
"net/http"
)
var _ = Describe("CtxHelper", func() {
Context("InjectContextValue", func() {
It("should inject simple value when it's found in context", func() {
req := &http.Request{}
AddContextValue(req, "key", "value")
var val string
err := InjectContextValue(req, "key", &val)
Expect(err).NotTo(HaveOccurred())
Expect(val).Should(Equal("value"))
})
It("should inject pointer value when it's found in context", func() {
req := &http.Request{}
value := "value"
AddContextValue(req, "key", &value)
var val *string
err := InjectContextValue(req, "key", &val)
Expect(err).NotTo(HaveOccurred())
Expect(*val).Should(Equal("value"))
*val = "changed"
var valChanged *string
err = InjectContextValue(req, "key", &valChanged)
Expect(err).NotTo(HaveOccurred())
Expect(*valChanged).Should(Equal("changed"))
})
It("should inject complex value when it's found in context", func() {
req := &http.Request{}
sValues := []string{"val1", "val2", "val3"}
AddContextValue(req, "key", sValues)
var val []string
err := InjectContextValue(req, "key", &val)
Expect(err).NotTo(HaveOccurred())
Expect(val).Should(HaveLen(len(sValues)))
for i := 0; i < len(sValues); i++ {
Expect(val[i]).Should(Equal(sValues[i]))
}
})
It("should inject nothing if key not found and not give error", func() {
req := &http.Request{}
var val string
err := InjectContextValue(req, "key", &val)
Expect(err).NotTo(HaveOccurred())
Expect(val).Should(Equal(""))
})
It("should return error if a pointer is not given", func() {
req := &http.Request{}
AddContextValue(req, "key", "value")
var val string
err := InjectContextValue(req, "key", val)
Expect(err).Should(HaveOccurred())
})
It("should return error if value found is not type of the request interface", func() {
req := &http.Request{}
AddContextValue(req, "key", "value")
var val int
err := InjectContextValue(req, "key", val)
Expect(err).Should(HaveOccurred())
})
})
})