2018-01-22 11:19:33 +02:00

48 lines
892 B
Go

package interpol
import (
"bytes"
"io"
"strings"
"testing"
)
func TestOptions(t *testing.T) {
n := 0
format := func(key string, w io.Writer) error {
n++
return nil
}
opts := &Options{
Template: strings.NewReader("foo"),
Format: format,
Output: bytes.NewBuffer(nil),
}
opts2 := []Option{
WithTemplate(opts.Template),
WithFormat(opts.Format),
WithOutput(opts.Output),
}
opts3 := &Options{
Template: strings.NewReader("foo"),
Format: toError,
Output: bytes.NewBuffer(nil),
}
setOptions(opts2, newOptionSetter(opts3))
if opts3.Template != opts.Template {
t.Fatalf("Invalid template")
}
if opts3.Output != opts.Output {
t.Fatalf("Invalid output")
}
if n != 0 || opts3.Format == nil {
t.Fatalf("Invalid format")
}
if err := opts3.Format("", nil); err != nil {
t.Fatalf("Invalid format")
}
if n != 1 {
t.Fatalf("Invalid format")
}
}