go-translator/pkg/service/service_test.go

88 строки
1,7 КиБ
Go

package service
import (
"bytes"
"io"
"strings"
. "my/go-translator/pkg/testgodoglib"
"github.com/cucumber/godog"
. "github.com/onsi/gomega"
)
type testData struct {
src []string
}
var (
t *testData
)
func resetTestData() {
t = &testData{}
_ = Ω
}
func beforeSuite() {
}
func afterSuite() {
}
func beforeScenario() {
resetTestData()
}
func afterScenario(result error) {
}
// -----------------------
func исходник(src *godog.DocString) {
t.src = append(t.src, src.Content)
}
func результат(out *godog.DocString) {
Compare_new(t.src, out.Content)
}
func Compare_new(source []string, expected string) {
var in []io.Reader
var out bytes.Buffer
for _, s := range source {
b := &bytes.Buffer{}
b.WriteString(s)
in = append(in, b)
}
service := NewService(in, &out)
err := service.Start()
got := out.String()
tgot, texpected := trim_new(got), trim_new(expected)
// spew.Dump(got)
ExpectWithOffset(1, err).NotTo(HaveOccurred())
ExpectWithOffset(1, tgot).To(Be(texpected))
}
func trim_new(s string) string {
s = strings.Replace(s, "\n", "", -1)
s = strings.Replace(s, "\r", "", -1)
s = strings.Replace(s, "\t", "", -1)
return s
}
func Compare(source, expected string) {
var in, out bytes.Buffer
in.WriteString(source)
service := NewService([]io.Reader{&in}, &out)
err := service.Start()
got := out.String()
tgot, texpected := Trim(got), Trim(expected)
// spew.Dump(tgot)
ExpectWithOffset(1, err).NotTo(HaveOccurred())
ExpectWithOffset(1, tgot).To(Be(texpected))
}
func Trim(s string) string {
s = strings.Replace(s, " ", "", -1)
s = strings.Replace(s, "\n", "", -1)
s = strings.Replace(s, "\r", "", -1)
s = strings.Replace(s, "\t", "", -1)
return s
}