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 lib
import (
"strings"
"testing"
)
func TestRegisterInputConverter(t *testing.T) {
resetInputConverters()
if err := RegisterInputConverter("json", mockInputConverter{typ: "json", action: ActionAdd}); err != nil {
t.Fatalf("RegisterInputConverter() error = %v", err)
}
if err := RegisterInputConverter("json", mockInputConverter{}); err != ErrDuplicatedConverter {
t.Fatalf("expected ErrDuplicatedConverter, got %v", err)
}
}
func TestRegisterOutputConverter(t *testing.T) {
resetOutputConverters()
if err := RegisterOutputConverter("txt", mockOutputConverter{typ: "txt", action: ActionOutput}); err != nil {
t.Fatalf("RegisterOutputConverter() error = %v", err)
}
if err := RegisterOutputConverter("txt", mockOutputConverter{}); err != ErrDuplicatedConverter {
t.Fatalf("expected ErrDuplicatedConverter, got %v", err)
}
}
func TestListConverters(t *testing.T) {
resetInputConverters()
resetOutputConverters()
_ = RegisterInputConverter("b", mockInputConverter{typ: "b", desc: "second"})
_ = RegisterInputConverter("a", mockInputConverter{typ: "a", desc: "first"})
_ = RegisterOutputConverter("x", mockOutputConverter{typ: "x", desc: "out"})
out := captureOutput(t, func() {
ListInputConverter()
ListOutputConverter()
})
if !strings.Contains(out, "a") || !strings.Contains(out, "b") || !strings.Contains(out, "x") {
t.Fatalf("unexpected output: %s", out)
}
}
|