-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcucumber.go
44 lines (35 loc) · 942 Bytes
/
cucumber.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
package gourd
const DefaultPort uint = 1847
type Cucumber interface {
Given(pattern string) Step
When(pattern string) Step
Then(pattern string) Step
Run()
SetPort(port uint)
}
func NewCucumber(new_context func() interface{}) Cucumber {
steps := &gourd_steps{}
steps.new_context = new_context
server := new_wire_server(steps)
return &gourd_cucumber{steps, server, DefaultPort}
}
type gourd_cucumber struct {
steps steps
server wire_server
port uint
}
func (cucumber *gourd_cucumber) Given(pattern string) Step {
return cucumber.steps.add_step(pattern)
}
func (cucumber *gourd_cucumber) When(pattern string) Step {
return cucumber.steps.add_step(pattern)
}
func (cucumber *gourd_cucumber) Then(pattern string) Step {
return cucumber.steps.add_step(pattern)
}
func (cucumber *gourd_cucumber) Run() {
cucumber.server.listen(cucumber.port)
}
func (cucumber *gourd_cucumber) SetPort(port uint) {
cucumber.port = port
}