50 lines
908 B
Go
50 lines
908 B
Go
package script
|
|
|
|
import (
|
|
"context"
|
|
"slices"
|
|
"testing"
|
|
)
|
|
|
|
func TestChainProcessor(t *testing.T) {
|
|
p := func(_ context.Context, in []string) ([]string, error) {
|
|
in[0] = in[0] + in[0]
|
|
return in, nil
|
|
}
|
|
|
|
chain := ChainProcessor(p, p, p)
|
|
|
|
in := []string{"a"}
|
|
want := []string{"aaaaaaaa"}
|
|
|
|
res, err := chain(t.Context(), in)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
if !slices.Equal(res, want) {
|
|
t.Fatalf("slices are not equal, have: %+v, want: %+v", res, want)
|
|
}
|
|
}
|
|
|
|
func TestChainWriter(t *testing.T) {
|
|
w1 := NewMemWriter()
|
|
w2 := NewMemWriter()
|
|
|
|
w := ChainWriter(w1, w2)
|
|
|
|
in := []string{"a"}
|
|
|
|
if err := w.Write(in); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
if !slices.Equal(w1.Output()[0], in) {
|
|
t.Fatalf("w1 slices are not equal, have: %+v, want: %+v", w1.Output()[0], in)
|
|
}
|
|
|
|
if !slices.Equal(w2.Output()[0], in) {
|
|
t.Fatalf("w2 slices are not equal, have: %+v, want: %+v", w2.Output()[0], in)
|
|
}
|
|
}
|