photoprism/pkg/fs/fileinfo_test.go

88 lines
1.8 KiB
Go
Raw Normal View History

package fs
import (
"io/ioutil"
"os"
"testing"
"time"
"github.com/stretchr/testify/assert"
)
func TestNewFileInfo(t *testing.T) {
info, err := os.Stat("testdata/test.jpg")
if err != nil {
t.Fatal(err)
}
result := NewFileInfo(info, "Photos/")
assert.Equal(t, "test.jpg", result.Name)
assert.Equal(t, "/Photos/test.jpg", result.Abs)
assert.Equal(t, int64(10990), result.Size)
assert.IsType(t, time.Time{}, result.Date)
assert.Equal(t, false, result.Dir)
}
func TestNewFileInfos(t *testing.T) {
infos, err := ioutil.ReadDir("testdata")
if err != nil {
t.Fatal(err)
}
result := NewFileInfos(infos, "/")
if len(result) < 1 {
t.Fatal("empty result")
}
2020-04-28 15:04:03 +00:00
assert.Equal(t, "test.jpg", result[2].Name)
assert.Equal(t, "/test.jpg", result[2].Abs)
assert.Equal(t, int64(10990), result[2].Size)
assert.IsType(t, time.Time{}, result[2].Date)
assert.Equal(t, false, result[2].Dir)
}
func TestFileInfos_Less(t *testing.T) {
infos, err := ioutil.ReadDir("testdata")
if err != nil {
t.Fatal(err)
}
result := NewFileInfos(infos, "/")
if len(result) < 1 {
t.Fatal("empty result")
}
assert.Equal(t, 3, result.Len())
assert.Equal(t, []string{"/CATYELLOW.jpg", "/chameleon_lime.jpg", "/test.jpg"}, result.Abs())
assert.Equal(t, false, result.Less(0, 0))
assert.Equal(t, true, result.Less(0, 1))
}
func TestFileInfos_Swap(t *testing.T) {
infos, err := ioutil.ReadDir("testdata")
if err != nil {
t.Fatal(err)
}
result := NewFileInfos(infos, "/")
if len(result) < 1 {
t.Fatal("empty result")
}
assert.Equal(t, 3, result.Len())
assert.Equal(t, []string{"/CATYELLOW.jpg", "/chameleon_lime.jpg", "/test.jpg"}, result.Abs())
result.Swap(0, 1)
assert.Equal(t, 3, result.Len())
assert.Equal(t, []string{"/chameleon_lime.jpg", "/CATYELLOW.jpg", "/test.jpg"}, result.Abs())
}