photoprism/internal/entity/place_test.go

83 lines
1.7 KiB
Go
Raw Normal View History

2020-05-08 14:18:11 +02:00
package entity
import (
"testing"
"time"
"github.com/stretchr/testify/assert"
2020-05-08 14:18:11 +02:00
)
func TestCreateUnknownPlace(t *testing.T) {
r := FirstOrCreatePlace(&UnknownPlace)
2020-05-08 14:18:11 +02:00
assert.True(t, r.Unknown())
}
func TestFindPlaceByLabel(t *testing.T) {
t.Run("find by id", func(t *testing.T) {
2020-05-11 17:01:19 +02:00
r := FindPlaceByLabel("1ef744d1e280", "")
if r == nil {
t.Fatal("result should not be nil")
}
2020-05-11 17:01:19 +02:00
assert.Equal(t, "de", r.LocCountry)
2020-05-08 14:18:11 +02:00
})
2020-05-15 13:15:10 +02:00
t.Run("find by id", func(t *testing.T) {
r := FindPlaceByLabel("85d1ea7d3278", "")
if r == nil {
t.Fatal("result should not be nil")
}
assert.Equal(t, "mx", r.LocCountry)
})
2020-05-08 14:18:11 +02:00
t.Run("find by label", func(t *testing.T) {
r := FindPlaceByLabel("", "KwaDukuza, KwaZulu-Natal, South Africa")
if r == nil {
t.Fatal("result should not be nil")
}
2020-05-08 14:18:11 +02:00
assert.Equal(t, "za", r.LocCountry)
})
t.Run("not matching", func(t *testing.T) {
r := FindPlaceByLabel("111", "xxx")
if r != nil {
t.Fatal("result should be nil")
}
2020-05-08 14:18:11 +02:00
})
}
func TestPlace_Find(t *testing.T) {
t.Run("record exists", func(t *testing.T) {
m := PlaceFixtures.Get("mexico")
if err := m.Find(); err != nil {
t.Fatal(err)
}
2020-05-08 14:18:11 +02:00
})
t.Run("record does not exist", func(t *testing.T) {
place := &Place{
PlaceUID: "1110",
LocLabel: "test",
LocCity: "testCity",
LocState: "",
LocCountry: "",
LocKeywords: "",
LocNotes: "",
LocFavorite: false,
PhotoCount: 0,
CreatedAt: time.Now(),
UpdatedAt: time.Now(),
New: false,
}
2020-05-08 14:18:11 +02:00
r := place.Find()
assert.Equal(t, "record not found", r.Error())
})
}
func TestFirstOrCreatePlace(t *testing.T) {
m := PlaceFixtures.Pointer("zinkwazi")
r := FirstOrCreatePlace(m)
2020-05-08 14:18:11 +02:00
assert.Equal(t, "KwaDukuza, KwaZulu-Natal, South Africa", r.LocLabel)
}