photoprism/internal/entity/details_test.go
Michael Mayer dd42d2b823 Entities: Refactor FirstOrCreate
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-05-26 11:00:39 +02:00

81 lines
2.4 KiB
Go

package entity
import (
"github.com/stretchr/testify/assert"
"testing"
)
func TestFirstOrCreateDetails(t *testing.T) {
details := &Details{PhotoID: 123, Keywords: ""}
details = FirstOrCreateDetails(details)
if details == nil {
t.Fatal("details should not be nil")
}
}
func TestDetails_NoKeywords(t *testing.T) {
t.Run("no keywords", func(t *testing.T) {
description := &Details{PhotoID: 123, Keywords: ""}
assert.Equal(t, true, description.NoKeywords())
})
t.Run("keywords", func(t *testing.T) {
description := &Details{PhotoID: 123, Keywords: "test cat dog", Subject: "animals", Artist: "Bender", Notes: "notes", Copyright: "copy"}
assert.Equal(t, false, description.NoKeywords())
})
}
func TestDetails_NoSubject(t *testing.T) {
t.Run("no subject", func(t *testing.T) {
description := &Details{PhotoID: 123, Subject: ""}
assert.Equal(t, true, description.NoSubject())
})
t.Run("subject", func(t *testing.T) {
description := &Details{PhotoID: 123, Keywords: "test cat dog", Subject: "animals", Artist: "Bender", Notes: "notes", Copyright: "copy"}
assert.Equal(t, false, description.NoSubject())
})
}
func TestDetails_NoNotes(t *testing.T) {
t.Run("no notes", func(t *testing.T) {
description := &Details{PhotoID: 123, Notes: ""}
assert.Equal(t, true, description.NoNotes())
})
t.Run("notes", func(t *testing.T) {
description := &Details{PhotoID: 123, Keywords: "test cat dog", Subject: "animals", Artist: "Bender", Notes: "notes", Copyright: "copy"}
assert.Equal(t, false, description.NoNotes())
})
}
func TestDetails_NoArtist(t *testing.T) {
t.Run("no artist", func(t *testing.T) {
description := &Details{PhotoID: 123, Artist: ""}
assert.Equal(t, true, description.NoArtist())
})
t.Run("artist", func(t *testing.T) {
description := &Details{PhotoID: 123, Keywords: "test cat dog", Subject: "animals", Artist: "Bender", Notes: "notes", Copyright: "copy"}
assert.Equal(t, false, description.NoArtist())
})
}
func TestDetails_NoCopyright(t *testing.T) {
t.Run("no copyright", func(t *testing.T) {
description := &Details{PhotoID: 123, Copyright: ""}
assert.Equal(t, true, description.NoCopyright())
})
t.Run("copyright", func(t *testing.T) {
description := &Details{PhotoID: 123, Keywords: "test cat dog", Subject: "animals", Artist: "Bender", Notes: "notes", Copyright: "copy"}
assert.Equal(t, false, description.NoCopyright())
})
}