90 lines
2.0 KiB
Go
90 lines
2.0 KiB
Go
package discover
|
|
|
|
import (
|
|
"os"
|
|
"testing"
|
|
|
|
"backend/common/media_store"
|
|
"backend/common/service/testx"
|
|
"backend/modules/medias"
|
|
"backend/providers/postgres"
|
|
|
|
. "github.com/smartystreets/goconvey/convey"
|
|
"github.com/stretchr/testify/suite"
|
|
"go.uber.org/dig"
|
|
)
|
|
|
|
type DiscoverMediasInjectParams struct {
|
|
dig.In
|
|
Svc *DiscoverMedias
|
|
}
|
|
|
|
type DiscoverMediasTestSuite struct {
|
|
suite.Suite
|
|
DiscoverMediasInjectParams
|
|
}
|
|
|
|
func Test_DiscoverMedias(t *testing.T) {
|
|
providers := testx.Default(
|
|
postgres.DefaultProvider(),
|
|
).With(
|
|
Provide,
|
|
medias.Provide,
|
|
)
|
|
|
|
testx.Serve(providers, t, func(params DiscoverMediasInjectParams) {
|
|
suite.Run(t, &DiscoverMediasTestSuite{DiscoverMediasInjectParams: params})
|
|
})
|
|
}
|
|
|
|
func (t *DiscoverMediasTestSuite) Test_ffmpegVideoToM3U8() {
|
|
Convey("Test_ffmpegVideoToM3U8", t.T(), func() {
|
|
output := "/projects/mp-qvyun/backend/fixtures/medias/abc"
|
|
os.RemoveAll(output)
|
|
|
|
err := t.Svc.ffmpegVideoToM3U8("/projects/mp-qvyun/backend/fixtures/medias/video.mp4", output)
|
|
So(err, ShouldBeNil)
|
|
})
|
|
}
|
|
|
|
func (t *DiscoverMediasTestSuite) Test_item() {
|
|
Convey("Test_item", t.T(), func() {
|
|
items := []int{}
|
|
defer func() {
|
|
for _, item := range items {
|
|
t.T().Logf("Recovered in f %d", item)
|
|
}
|
|
}()
|
|
|
|
for i := 0; i < 4; i++ {
|
|
items = append(items, i)
|
|
}
|
|
})
|
|
}
|
|
|
|
func (t *DiscoverMediasTestSuite) TestDiscoverMedias_getMediaDuration() {
|
|
Convey("TestDiscoverMedias_getMediaDuration", t.T(), func() {
|
|
duration, err := t.Svc.getMediaDuration("/projects/mp-qvyun/backend/fixtures/medias/video.mp4")
|
|
So(err, ShouldBeNil)
|
|
t.T().Logf("Duration: %d", duration)
|
|
})
|
|
}
|
|
|
|
func (t *DiscoverMediasTestSuite) Test_globMedias() {
|
|
Convey("Test_globMedias", t.T(), func() {
|
|
store, err := media_store.NewStore("/projects/mp-qvyun/backend/fixtures/processed")
|
|
So(err, ShouldBeNil)
|
|
|
|
hash := "eed0fa530f95531f9fac2a962dfbc7ea"
|
|
store.Update(media_store.VideoInfo{
|
|
Hash: hash,
|
|
Name: "video",
|
|
Duration: 10,
|
|
})
|
|
|
|
info, ok := store.HashExists(hash)
|
|
So(ok, ShouldBeTrue)
|
|
So(info.Name, ShouldEqual, "video")
|
|
})
|
|
}
|