Files
opencloud/services/search/pkg/content/basic_test.go
Jörn Friedrich Dreyer b07b5a1149 use plain pkg module
Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de>
2025-01-13 16:42:19 +01:00

91 lines
2.1 KiB
Go

package content_test
import (
"context"
storageProvider "github.com/cs3org/go-cs3apis/cs3/storage/provider/v1beta1"
cs3Types "github.com/cs3org/go-cs3apis/cs3/types/v1beta1"
. "github.com/onsi/ginkgo/v2"
. "github.com/onsi/gomega"
"github.com/opencloud-eu/opencloud/pkg/log"
"github.com/opencloud-eu/opencloud/services/search/pkg/content"
)
var _ = Describe("Basic", func() {
var (
basic content.Extractor
logger = log.NewLogger()
ctx = context.TODO()
)
BeforeEach(func() {
basic, _ = content.NewBasicExtractor(logger)
})
Describe("extract", func() {
It("basic fields", func() {
ri := &storageProvider.ResourceInfo{
Name: "bar.pdf",
Path: "./foo/bar.pdf",
Size: 1024,
MimeType: "application/pdf",
}
doc, err := basic.Extract(ctx, ri)
Expect(err).To(BeNil())
Expect(doc).ToNot(BeNil())
Expect(doc.Name).To(Equal(ri.Name))
Expect(doc.Size).To(Equal(ri.Size))
Expect(doc.MimeType).To(Equal(ri.MimeType))
})
It("adds tags", func() {
for _, data := range []struct {
tags string
expect []string
}{
{tags: "", expect: []string{}},
{tags: ",,,", expect: []string{}},
{tags: ",foo,,", expect: []string{"foo"}},
{tags: ",foo,,bar,", expect: []string{"foo", "bar"}},
} {
ri := &storageProvider.ResourceInfo{
ArbitraryMetadata: &storageProvider.ArbitraryMetadata{
Metadata: map[string]string{
"tags": data.tags,
},
},
}
doc, err := basic.Extract(ctx, ri)
Expect(err).To(BeNil())
Expect(doc).ToNot(BeNil())
Expect(doc.Tags).To(Equal(data.expect))
}
})
It("RFC3339 mtime", func() {
for _, data := range []struct {
second uint64
expect string
}{
{second: 4000, expect: "1970-01-01T01:06:40Z"},
{second: 3000, expect: "1970-01-01T00:50:00Z"},
{expect: ""},
} {
ri := &storageProvider.ResourceInfo{}
if data.second != 0 {
ri.Mtime = &cs3Types.Timestamp{Seconds: data.second}
}
doc, err := basic.Extract(ctx, ri)
Expect(err).To(BeNil())
Expect(doc).ToNot(BeNil())
Expect(doc.Mtime).To(Equal(data.expect))
}
})
})
})