photoprism/internal/entity/duplicate_test.go

155 lines
4.2 KiB
Go
Raw Normal View History

package entity
import (
"testing"
"time"
)
func TestAddDuplicate(t *testing.T) {
t.Run("success", func(t *testing.T) {
if err := AddDuplicate(
"foobar.jpg",
RootOriginals,
"3cad9168fa6acc5c5c2965ddf6ec465ca42fd811",
661851,
time.Date(2019, 1, 6, 2, 6, 51, 0, time.UTC).Unix(),
); err != nil {
t.Fatal(err)
}
if err := AddDuplicate(
"foobar.jpg",
RootOriginals,
"3cad9168fa6acc5c5c2965ddf6ec465ca42fd818",
661858,
time.Date(2019, 3, 6, 2, 6, 51, 0, time.UTC).Unix(),
); err != nil {
t.Fatal(err)
}
duplicate := &Duplicate{FileName: "foobar.jpg", FileRoot: RootOriginals}
if err := duplicate.Find(); err != nil {
t.Fatal(err)
} else if duplicate.FileHash != "3cad9168fa6acc5c5c2965ddf6ec465ca42fd818" {
t.Fatal("file hash should be 3cad9168fa6acc5c5c2965ddf6ec465ca42fd818")
} else if duplicate.ModTime != time.Date(2019, 3, 6, 2, 6, 51, 0, time.UTC).Unix() {
t.Fatalf("mod time should be %d", time.Date(2019, 3, 6, 2, 6, 51, 0, time.UTC).Unix())
}
})
2020-10-19 17:06:09 +02:00
t.Run("error filename empty", func(t *testing.T) {
err := AddDuplicate(
"",
"",
"3cad9168fa6acc5c5c2965ddf6ec465ca42fd818",
661858,
time.Date(2019, 3, 6, 2, 6, 51, 0, time.UTC).Unix(),
)
if err == nil {
t.Fatal("error expected")
}
})
2020-10-19 17:06:09 +02:00
t.Run("error filehash empty", func(t *testing.T) {
err := AddDuplicate(
"foobar.jpg",
"",
"",
661858,
time.Date(2019, 3, 6, 2, 6, 51, 0, time.UTC).Unix(),
)
if err == nil {
t.Fatal("error expected")
}
})
t.Run("error mod time empty", func(t *testing.T) {
err := AddDuplicate(
"foobar.jpg",
"",
"3cad9168fa6acc5c5c2965ddf6ec465ca42fd818",
661858,
0,
)
if err == nil {
t.Fatal("error expected")
}
})
t.Run("error fileRoot empty", func(t *testing.T) {
err := AddDuplicate(
"foobar.jpg",
"",
"3cad9168fa6acc5c5c2965ddf6ec465ca42fd818",
661858,
time.Date(2019, 3, 6, 2, 6, 51, 0, time.UTC).Unix(),
)
if err == nil {
t.Fatal("error expected")
}
})
}
func TestCreateDuplicate(t *testing.T) {
t.Run("error mod time 0", func(t *testing.T) {
duplicate := &Duplicate{FileName: "foobar.jpg", FileHash: "12345tghy", FileRoot: RootOriginals, ModTime: 0}
err := duplicate.Create()
if err == nil {
t.Fatal("error expected")
}
})
t.Run("error filename empty", func(t *testing.T) {
duplicate := &Duplicate{FileName: "", FileHash: "12345tghy", FileRoot: RootOriginals, ModTime: time.Date(2019, 3, 6, 2, 6, 51, 0, time.UTC).Unix()}
err := duplicate.Create()
if err == nil {
t.Fatal("error expected")
}
})
t.Run("error filehash empty", func(t *testing.T) {
duplicate := &Duplicate{FileName: "foobar.jpg", FileHash: "", FileRoot: RootOriginals, ModTime: time.Date(2019, 3, 6, 2, 6, 51, 0, time.UTC).Unix()}
err := duplicate.Create()
if err == nil {
t.Fatal("error expected")
}
})
t.Run("error fileroot empty", func(t *testing.T) {
duplicate := &Duplicate{FileName: "foobar.jpg", FileHash: "jhg678", FileRoot: "", ModTime: time.Date(2019, 3, 6, 2, 6, 51, 0, time.UTC).Unix()}
err := duplicate.Create()
if err == nil {
t.Fatal("error expected")
}
})
}
func TestSaveDuplicate(t *testing.T) {
t.Run("error mod time 0", func(t *testing.T) {
duplicate := &Duplicate{FileName: "foobar.jpg", FileHash: "12345tghy", FileRoot: RootOriginals, ModTime: 0}
err := duplicate.Save()
if err == nil {
t.Fatal("error expected")
}
})
t.Run("error filename empty", func(t *testing.T) {
duplicate := &Duplicate{FileName: "", FileHash: "12345tghy", FileRoot: RootOriginals, ModTime: time.Date(2019, 3, 6, 2, 6, 51, 0, time.UTC).Unix()}
err := duplicate.Save()
if err == nil {
t.Fatal("error expected")
}
})
t.Run("error filehash empty", func(t *testing.T) {
duplicate := &Duplicate{FileName: "foobar.jpg", FileHash: "", FileRoot: RootOriginals, ModTime: time.Date(2019, 3, 6, 2, 6, 51, 0, time.UTC).Unix()}
err := duplicate.Save()
if err == nil {
t.Fatal("error expected")
}
})
t.Run("error fileroot empty", func(t *testing.T) {
duplicate := &Duplicate{FileName: "foobar.jpg", FileHash: "jhg678", FileRoot: "", ModTime: time.Date(2019, 3, 6, 2, 6, 51, 0, time.UTC).Unix()}
err := duplicate.Save()
if err == nil {
t.Fatal("error expected")
}
})
}