forked from mirrors/tar-split
67 lines
1.1 KiB
Go
67 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)
|
||
|
}
|
||
|
}
|