blob: f08b44c1d3b3e8e29df7d804e038ea7064055a66 [file] [log] [blame]
package impl_test
import (
"fmt"
)
type Tape struct {
stimuli []interface{}
responses []interface{}
}
func (r *Tape) Record(call interface{}) interface{} {
r.stimuli = append(r.stimuli, call)
if len(r.responses) < 1 {
return fmt.Errorf("Record(%#v) had no response", call)
}
resp := r.responses[0]
r.responses = r.responses[1:]
return resp
}
func (r *Tape) SetResponses(responses []interface{}) {
r.responses = responses
}
func (r *Tape) Rewind() {
r.stimuli = make([]interface{}, 0)
r.responses = make([]interface{}, 0)
}
func (r *Tape) Play() []interface{} {
return r.stimuli
}
func NewTape() *Tape {
tape := new(Tape)
tape.Rewind()
return tape
}