66
pkg/bbutil/sortedfile_test.go
Normal file
66
pkg/bbutil/sortedfile_test.go
Normal file
@@ -0,0 +1,66 @@
|
||||
package bbutil
|
||||
|
||||
import (
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestAddLinesToSortedFile(t *testing.T) {
|
||||
|
||||
var tests = []struct {
|
||||
start string
|
||||
add []string
|
||||
expected string
|
||||
}{
|
||||
{
|
||||
"",
|
||||
[]string{"one"},
|
||||
"one\n",
|
||||
},
|
||||
{
|
||||
"begin\ntwo\n",
|
||||
[]string{"at top"},
|
||||
"at top\nbegin\ntwo\n",
|
||||
},
|
||||
{
|
||||
"begin\ntwo\n",
|
||||
[]string{"zbottom"},
|
||||
"begin\ntwo\nzbottom\n",
|
||||
},
|
||||
{
|
||||
"begin\ntwo\n",
|
||||
[]string{"middle"},
|
||||
"begin\nmiddle\ntwo\n",
|
||||
},
|
||||
}
|
||||
|
||||
for i, test := range tests {
|
||||
content := []byte(test.start)
|
||||
tmpfile, err := ioutil.TempFile("", "example")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
tmpfilename := tmpfile.Name()
|
||||
defer os.Remove(tmpfilename)
|
||||
|
||||
if _, err := tmpfile.Write(content); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if err := tmpfile.Close(); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
AddLinesToSortedFile(tmpfilename, test.add...)
|
||||
expected := test.expected
|
||||
|
||||
got, err := ioutil.ReadFile(tmpfilename)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if expected != string(got) {
|
||||
t.Errorf("test %v: contents wrong:\nexpected: %q\n got: %q", i, expected, got)
|
||||
}
|
||||
os.Remove(tmpfilename)
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user