| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 | package mainimport (	"os"	"testing")func TestParseLoad(t *testing.T) {	err := os.WriteFile(		"_tmp1.txt",		[]byte("pilot Test Pilot\nship \"Little Fish\"\n\tname \"Hello World\"\n\tkind \"Space Fish\""),		0660,	)	if err != nil {		t.Errorf("Failed creating temp file")	}	defer func() {		err = os.Remove("_tmp1.txt")		if err != nil {			t.Errorf("Failed cleaning up temp file")		}	}()	p := Parser{}	root, err := p.Load("_tmp1.txt")	if err != nil {		t.Fail()		t.Logf("Unexpected error, %v", err)		p.Debug = true		p.Load("_tmp1.txt")		p.Debug = false	}	if root.Len() != 2 {		t.Fail()		t.Logf("Incorrect child count for Root node, expected 2")		t.Logf("%#v", root)		for _, k := range root.Children {			t.Logf("%#v", k)		}	}	k, err := root.Child(1)	if err != nil {		t.Errorf("Unexpected error, %v", err)	}	if k.Line != "ship \"Little Fish\"" || k.Depth() != 0 {		t.Errorf("Expected 'ship \"Little Fish\"' depth of 0, got '%s' (depth=%d)", k.Line, k.Depth())	}	if k.Len() != 2 {		t.Fail()		t.Logf("Incorrect child count for Root.1 node, expected 2")		t.Logf("%#v", k)		for _, k0 := range k.Children {			t.Logf("%#v", k0)		}	}	k1, err := k.Child(0)	if err != nil {		t.Errorf("Unexpected error, %v", err)	}	if k1.Line != "name \"Hello World\"" || k1.Depth() != 1 {		t.Errorf("Expected 'name \"Hello World\"' depth 1, got '%s' (depth=%d)", k1.Line, k1.Depth())	}}func TestParseSave(t *testing.T) {	n := Node{}	n1 := n.NewChild()	n1.Line = "Hello World"	n1 = n.NewChild()	n1.Line = "Tacocat"	n2 := n1.NewChild()	n2.Line = "Meow?"	p := Parser{}	err := p.Save("_tmp2.txt", &n)	if err != nil {		t.Errorf("Unexpected error, %v", err)	}	defer func() {		os.Remove("_tmp2.txt")	}()}
 |