forked from mirrors/tar-split
66 lines
1.1 KiB
Go
66 lines
1.1 KiB
Go
package storage
|
|
|
|
import (
|
|
"encoding/json"
|
|
"sort"
|
|
"testing"
|
|
)
|
|
|
|
func TestEntries(t *testing.T) {
|
|
e := Entries{
|
|
Entry{
|
|
Type: SegmentType,
|
|
Payload: []byte("y'all"),
|
|
Position: 1,
|
|
},
|
|
Entry{
|
|
Type: SegmentType,
|
|
Payload: []byte("doin"),
|
|
Position: 3,
|
|
},
|
|
Entry{
|
|
Type: FileType,
|
|
Name: "./hurr.txt",
|
|
Payload: []byte("deadbeef"),
|
|
Position: 2,
|
|
},
|
|
Entry{
|
|
Type: SegmentType,
|
|
Payload: []byte("how"),
|
|
Position: 0,
|
|
},
|
|
}
|
|
sort.Sort(e)
|
|
if e[0].Position != 0 {
|
|
t.Errorf("expected Position 0, but got %d", e[0].Position)
|
|
}
|
|
}
|
|
|
|
func TestFile(t *testing.T) {
|
|
f := Entry{
|
|
Type: FileType,
|
|
Name: "./hello.txt",
|
|
Size: 100,
|
|
Position: 2,
|
|
}
|
|
|
|
buf, err := json.Marshal(f)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
f1 := Entry{}
|
|
if err = json.Unmarshal(buf, &f1); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
if f.Name != f1.Name {
|
|
t.Errorf("expected Name %q, got %q", f.Name, f1.Name)
|
|
}
|
|
if f.Size != f1.Size {
|
|
t.Errorf("expected Size %q, got %q", f.Size, f1.Size)
|
|
}
|
|
if f.Position != f1.Position {
|
|
t.Errorf("expected Position %q, got %q", f.Position, f1.Position)
|
|
}
|
|
}
|