200 lines
5.2 KiB
Go
200 lines
5.2 KiB
Go
package entity
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
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())
|
|
}
|
|
})
|
|
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")
|
|
}
|
|
})
|
|
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")
|
|
}
|
|
})
|
|
}
|
|
|
|
func TestDuplicate_Purge(t *testing.T) {
|
|
t.Run("success", func(t *testing.T) {
|
|
if err := AddDuplicate(
|
|
"forpurge.jpg",
|
|
RootOriginals,
|
|
"3cad9168fa6acc5c5c2965ddf6ec465ca42fd844",
|
|
661851,
|
|
time.Date(2019, 1, 6, 2, 6, 51, 0, time.UTC).Unix(),
|
|
); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
if err := AddDuplicate(
|
|
"forpurge.jpg",
|
|
RootOriginals,
|
|
"3cad9168fa6acc5c5c2965ddf6ec465ca42fd855",
|
|
661858,
|
|
time.Date(2019, 3, 6, 2, 6, 51, 0, time.UTC).Unix(),
|
|
); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
duplicate := &Duplicate{FileName: "forpurge.jpg", FileRoot: RootOriginals}
|
|
if err := duplicate.Find(); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if err := duplicate.Purge(); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if err := duplicate.Find(); err == nil {
|
|
t.Log("Dulicate deleted")
|
|
}
|
|
})
|
|
}
|
|
|
|
func TestPurgeDuplicate(t *testing.T) {
|
|
t.Run("empty filename", func(t *testing.T) {
|
|
assert.Error(t, PurgeDuplicate("", RootOriginals))
|
|
})
|
|
t.Run("empty fileroot", func(t *testing.T) {
|
|
assert.Error(t, PurgeDuplicate("test.jpg", ""))
|
|
})
|
|
}
|