File: resolver_test.go

package info (click to toggle)
golang-github-manyminds-api2go 1.0-RC2%2Bgit20161229.31.dc368bb-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 484 kB
  • ctags: 488
  • sloc: sh: 23; makefile: 3
file content (33 lines) | stat: -rw-r--r-- 859 bytes parent folder | download | duplicates (3)
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
package api2go

import (
	"net/http"

	. "github.com/onsi/ginkgo"
	. "github.com/onsi/gomega"
)

var _ = Describe("Resolver test", func() {
	Context("basic function of callback resolver", func() {
		It("works", func() {
			callback := func(r http.Request) string {
				if r.Header.Get("lol") != "" {
					return "funny"
				}

				return "unfunny"
			}

			resolver := NewCallbackResolver(callback)
			Expect(resolver.GetBaseURL()).To(Equal("unfunny"))
			req, err := http.NewRequest("GET", "/v1/posts", nil)
			req.Header.Set("lol", "lol")
			Expect(err).To(BeNil())
			requestResolver, ok := resolver.(RequestAwareURLResolver)
			Expect(ok).To(Equal(true), "does not implement interface")
			Expect(requestResolver.GetBaseURL()).To(Equal("unfunny"))
			requestResolver.SetRequest(*req)
			Expect(requestResolver.GetBaseURL()).To(Equal("funny"))
		})
	})
})