71 lines
2.4 KiB
Go
71 lines
2.4 KiB
Go
package migrator
|
|
|
|
import (
|
|
"io/ioutil"
|
|
"os"
|
|
"testing"
|
|
|
|
"github.com/coreos/bbolt"
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
"github.com/umputun/remark/app/store/service"
|
|
|
|
"github.com/umputun/remark/app/store/engine"
|
|
)
|
|
|
|
func TestMigrator_ImportDisqus(t *testing.T) {
|
|
defer func() {
|
|
os.Remove("/tmp/remark-test.db")
|
|
os.Remove("/tmp/disqus-test.xml")
|
|
}()
|
|
|
|
err := ioutil.WriteFile("/tmp/disqus-test.xml", []byte(xmlTest), 0600)
|
|
require.Nil(t, err)
|
|
|
|
b, err := engine.NewBoltDB(bolt.Options{}, engine.BoltSite{FileName: "/tmp/remark-test.db", SiteID: "test"})
|
|
require.Nil(t, err, "create store")
|
|
dataStore := &service.DataStore{Interface: b}
|
|
size, err := ImportComments(ImportParams{
|
|
DataStore: dataStore,
|
|
InputFile: "/tmp/disqus-test.xml",
|
|
SiteID: "test",
|
|
Provider: "disqus",
|
|
})
|
|
assert.Nil(t, err)
|
|
assert.Equal(t, 3, size)
|
|
|
|
last, err := dataStore.Last("test", 10)
|
|
assert.Nil(t, err)
|
|
assert.Equal(t, 3, len(last), "3 comments imported")
|
|
}
|
|
|
|
func TestMigrator_ImportRemark(t *testing.T) {
|
|
defer func() {
|
|
os.Remove("/tmp/remark-test.db")
|
|
os.Remove("/tmp/disqus-test.r42")
|
|
}()
|
|
|
|
data := `{"id":"efbc17f177ee1a1c0ee6e1e025749966ec071adc","pid":"","text":"some text, <a href=\"http://radio-t.com\" rel=\"nofollow\">link</a>","user":{"name":"user name","id":"user1","picture":"","profile":"","admin":false},"locator":{"site":"radio-t","url":"https://radio-t.com"},"score":0,"votes":{},"time":"2017-12-20T15:18:22-06:00"}` + "\n" +
|
|
`{"id":"afbc17f177ee1a1c0ee6e1e025749966ec071adc","pid":"efbc17f177ee1a1c0ee6e1e025749966ec071adc","text":"some text2, <a href=\"http://radio-t.com\" rel=\"nofollow\">link</a>","user":{"name":"user name","id":"user1","picture":"","profile":"","admin":false},"locator":{"site":"radio-t","url":"https://radio-t.com"},"score":0,"votes":{},"time":"2017-12-20T15:18:23-06:00"}` + "\n"
|
|
|
|
err := ioutil.WriteFile("/tmp/disqus-test.r42", []byte(data), 0600)
|
|
require.Nil(t, err)
|
|
|
|
b, err := engine.NewBoltDB(bolt.Options{}, engine.BoltSite{FileName: "/tmp/remark-test.db", SiteID: "radio-t"})
|
|
require.Nil(t, err, "create store")
|
|
dataStore := &service.DataStore{Interface: b}
|
|
|
|
size, err := ImportComments(ImportParams{
|
|
DataStore: dataStore,
|
|
InputFile: "/tmp/disqus-test.r42",
|
|
SiteID: "radio-t",
|
|
Provider: "native",
|
|
})
|
|
assert.Nil(t, err)
|
|
assert.Equal(t, 2, size)
|
|
|
|
last, err := dataStore.Last("radio-t", 10)
|
|
assert.Nil(t, err)
|
|
assert.Equal(t, 2, len(last), "2 comments imported")
|
|
}
|