forked from tolexo/aqua
-
Notifications
You must be signed in to change notification settings - Fork 0
/
stub_test.go
52 lines (42 loc) · 1.23 KB
/
stub_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
package aqua
import (
"fmt"
. "github.com/smartystreets/goconvey/convey"
"testing"
)
type stubService struct {
RestService
mock GET `stub:"mocks/mock.json"`
mockNoFile GET `stub:"mocks/missing.json"`
}
func TestStubFileMissing(t *testing.T) {
s := NewRestServer()
s.AddService(&stubService{})
s.Port = getUniquePortForTestCase()
s.RunAsync()
Convey("Given a service stub", t, func() {
Convey("When the corresponding stub file is missing in current AND executable dir", func() {
Convey("Then the server should return 400 series error", func() {
url := fmt.Sprintf("http://localhost:%d/stub/mock-no-file", s.Port)
code, _, content := getUrl(url, nil)
So(code, ShouldEqual, 400)
fmt.Println(content)
})
})
})
}
func TestMockStub(t *testing.T) {
s := NewRestServer()
s.AddService(&stubService{})
s.Port = getUniquePortForTestCase()
s.RunAsync()
Convey("Given a service stub", t, func() {
Convey("When the corresponding stub file is found in current OR executable dir", func() {
Convey("Then the server should return content of file", func() {
url := fmt.Sprintf("http://localhost:%d/stub/mock", s.Port)
_, _, content := getUrl(url, nil)
So(content, ShouldEqual, "MOCK DATA")
})
})
})
}