|
@@ -2,13 +2,30 @@ package selsl
|
|
|
|
|
|
import "testing"
|
|
|
|
|
|
+func Check(t *testing.T, ok bool, mesg ...interface{}) {
|
|
|
+ reporter := t.Logf
|
|
|
+ head := "Check:"
|
|
|
+ if !ok {
|
|
|
+ reporter = t.Errorf
|
|
|
+ head = "Check failed:"
|
|
|
+ }
|
|
|
+
|
|
|
+ if len(mesg) < 1 {
|
|
|
+ reporter(head)
|
|
|
+ } else {
|
|
|
+ reporter(head+mesg[0].(string), mesg[1:]...)
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+func TestCheck(t *testing.T) {
|
|
|
+ Check(t, true, "true")
|
|
|
+}
|
|
|
+
|
|
|
func TestRootType(t *testing.T) {
|
|
|
name := Send(RootType, "name", nil, nil)
|
|
|
nameString := string(name.(String))
|
|
|
- if nameString != "Type" {
|
|
|
- t.Errorf("Root type name wrong: %v", name)
|
|
|
- }
|
|
|
- t.Logf("Name root type: %s", nameString)
|
|
|
+ Check(t, nameString == "Type",
|
|
|
+ "Root type name: %v", name)
|
|
|
}
|
|
|
|
|
|
func TestStringType(t *testing.T) {
|
|
@@ -16,19 +33,27 @@ func TestStringType(t *testing.T) {
|
|
|
str := String(raw)
|
|
|
name := Send(str, "name", nil, nil)
|
|
|
nameString := string(name.(String))
|
|
|
- if nameString != raw {
|
|
|
- t.Errorf("String type name wrong: %v", name)
|
|
|
- }
|
|
|
- t.Logf("Name string type: %s", nameString)
|
|
|
+ Check(t, nameString == raw,
|
|
|
+ "String type name: %v", name)
|
|
|
}
|
|
|
|
|
|
func TestListType(t *testing.T) {
|
|
|
- raw := [ "apple", "banana", "pear" ]
|
|
|
- list := List{ String(raw[0]),
|
|
|
- String(raw[1]),
|
|
|
- String(raw[2]) }
|
|
|
- clone := list.Clone()
|
|
|
- clone[1] = String("cumquat")
|
|
|
+ raw := []string{"apple", "banana", "pear"}
|
|
|
+ list := List{String(raw[0]),
|
|
|
+ String(raw[1]),
|
|
|
+ String(raw[2]),
|
|
|
+ }
|
|
|
+ clone := list.Clone().(List)
|
|
|
+ alt := []string{"apple", "kumquat", "pear"}
|
|
|
+ clone[1] = String(alt[1])
|
|
|
|
|
|
-}
|
|
|
+ for i, s := range raw {
|
|
|
+ f := string(list[i].(String))
|
|
|
+ Check(t, s == f, "list %s <-> %s", s, f)
|
|
|
+ }
|
|
|
|
|
|
+ for i, s := range alt {
|
|
|
+ f := string(clone[i].(String))
|
|
|
+ Check(t, s == f, "clone %s <-> %s", s, f)
|
|
|
+ }
|
|
|
+}
|