1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
|
package analyze
import (
"bytes"
"testing"
"time"
"github.com/dundee/gdu/v5/pkg/fs"
log "github.com/sirupsen/logrus"
"github.com/stretchr/testify/assert"
)
func init() {
log.SetLevel(log.WarnLevel)
}
func TestEncode(t *testing.T) {
dir := &Dir{
File: &File{
Name: "test_dir",
Size: 10,
Usage: 18,
Mtime: time.Date(2021, 8, 19, 0, 40, 0, 0, time.UTC),
},
ItemCount: 4,
BasePath: ".",
}
subdir := &Dir{
File: &File{
Name: "nested",
Size: 9,
Usage: 14,
Parent: dir,
},
ItemCount: 3,
}
file := &File{
Name: "file2",
Size: 3,
Usage: 4,
Parent: subdir,
}
file2 := &File{
Name: "file",
Size: 5,
Usage: 6,
Parent: subdir,
Flag: '@',
Mtime: time.Date(2021, 8, 19, 0, 40, 0, 0, time.UTC),
}
file3 := &File{
Name: "file3",
Mli: 1234,
Flag: 'H',
}
dir.Files = fs.Files{subdir}
subdir.Files = fs.Files{file, file2, file3}
var buff bytes.Buffer
err := dir.EncodeJSON(&buff, true)
assert.Nil(t, err)
assert.Contains(t, buff.String(), `"name":"nested"`)
assert.Contains(t, buff.String(), `"mtime":1629333600`)
assert.Contains(t, buff.String(), `"ino":1234`)
assert.Contains(t, buff.String(), `"hlnkc":true`)
}
|