85 lines
1.8 KiB
Go
85 lines
1.8 KiB
Go
package stario
|
|
|
|
import (
|
|
"fmt"
|
|
"testing"
|
|
)
|
|
|
|
func TestPromptRedrawHint(t *testing.T) {
|
|
got := promptRedrawHint("头部提示\n 中文确认: ")
|
|
if got != "中文确认:" {
|
|
t.Fatalf("unexpected redraw hint: got %q", got)
|
|
}
|
|
}
|
|
|
|
func TestStringDisplayWidth(t *testing.T) {
|
|
got := stringDisplayWidth("中a[]")
|
|
if got != 5 {
|
|
t.Fatalf("unexpected display width: got %d want 5", got)
|
|
}
|
|
}
|
|
|
|
func TestParseYesNoValue(t *testing.T) {
|
|
cases := []struct {
|
|
name string
|
|
input string
|
|
defaults bool
|
|
want bool
|
|
ok bool
|
|
}{
|
|
{name: "default", input: " ", defaults: true, want: true, ok: true},
|
|
{name: "yes", input: "yes", defaults: false, want: true, ok: true},
|
|
{name: "no", input: "No", defaults: true, want: false, ok: true},
|
|
{name: "invalid", input: "maybe", defaults: false, want: false, ok: false},
|
|
}
|
|
for _, tc := range cases {
|
|
got, ok := parseYesNoValue(tc.input, tc.defaults)
|
|
if got != tc.want || ok != tc.ok {
|
|
t.Fatalf("%s: got (%v, %v) want (%v, %v)", tc.name, got, ok, tc.want, tc.ok)
|
|
}
|
|
}
|
|
}
|
|
|
|
func Test_Slice(t *testing.T) {
|
|
var data = InputMsg{
|
|
msg: "true,false,true,true,false,0,1,hello",
|
|
err: nil,
|
|
skipSliceSigErr: false,
|
|
}
|
|
res, err := data.IgnoreSliceParseError(true).SliceBool(",")
|
|
if err != nil {
|
|
fmt.Println(res)
|
|
t.Fatal(err)
|
|
}
|
|
if len(res) == 0 {
|
|
t.Fatal(res)
|
|
}
|
|
fmt.Println(res)
|
|
}
|
|
|
|
func TestSliceMsg(t *testing.T) {
|
|
var data = InputMsg{
|
|
msg: "",
|
|
err: nil,
|
|
skipSliceSigErr: false,
|
|
}
|
|
res, err := data.SliceString(",")
|
|
if err != nil {
|
|
fmt.Println(res)
|
|
t.Fatal(err)
|
|
}
|
|
if len(res) != 0 {
|
|
t.Fatal(res)
|
|
}
|
|
fmt.Println(len(res))
|
|
res2, err := data.SliceInt64(",")
|
|
if err != nil {
|
|
fmt.Println(res2)
|
|
t.Fatal(err)
|
|
}
|
|
if len(res2) != 0 {
|
|
t.Fatal(res2)
|
|
}
|
|
fmt.Println(len(res2))
|
|
}
|