88 lines
1.8 KiB
Go
88 lines
1.8 KiB
Go
package scraper_test
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
|
|
. "gitlab.com/offline-twitter/twitter_offline_engine/pkg/scraper"
|
|
)
|
|
|
|
func TestMergeTweetTroves(t *testing.T) {
|
|
assert := assert.New(t)
|
|
t1 := Tweet{Text: "1"}
|
|
t2 := Tweet{Text: "2"}
|
|
t3 := Tweet{Text: "3"}
|
|
|
|
u1 := User{Handle: "1"}
|
|
u2 := User{Handle: "2"}
|
|
|
|
r1 := Retweet{TweetID: 1}
|
|
r2 := Retweet{TweetID: 2}
|
|
r3 := Retweet{TweetID: 3}
|
|
|
|
trove1 := NewTweetTrove()
|
|
trove1.Tweets[1] = t1
|
|
trove1.Tweets[2] = t2
|
|
|
|
trove1.Retweets[1] = r1
|
|
|
|
trove1.TombstoneUsers = []UserHandle{"a", "b"}
|
|
|
|
trove2 := NewTweetTrove()
|
|
trove2.Tweets[3] = t3
|
|
|
|
trove2.Users[1] = u1
|
|
trove2.Users[2] = u2
|
|
|
|
trove2.Retweets[2] = r2
|
|
trove2.Retweets[3] = r3
|
|
|
|
trove2.TombstoneUsers = []UserHandle{"c"}
|
|
|
|
trove1.MergeWith(trove2)
|
|
|
|
assert.Equal(3, len(trove1.Tweets))
|
|
assert.Equal(2, len(trove1.Users))
|
|
assert.Equal(3, len(trove1.Retweets))
|
|
assert.Equal(3, len(trove1.TombstoneUsers))
|
|
}
|
|
|
|
func TestFillMissingUserIDs(t *testing.T) {
|
|
assert := assert.New(t)
|
|
u1 := User{ID: 1, Handle: "A"}
|
|
|
|
t1 := Tweet{ID: 1, UserID: 1}
|
|
t2 := Tweet{ID: 2, UserHandle: "a"}
|
|
|
|
trove := NewTweetTrove()
|
|
trove.Users[u1.ID] = u1
|
|
trove.Tweets[t1.ID] = t1
|
|
trove.Tweets[t2.ID] = t2
|
|
|
|
assert.NotEqual(trove.Tweets[2].UserID, UserID(1))
|
|
|
|
trove.FillMissingUserIDs()
|
|
|
|
assert.Equal(trove.Tweets[2].UserID, UserID(1))
|
|
}
|
|
|
|
func TestFindUserByHandle(t *testing.T) {
|
|
assert := assert.New(t)
|
|
|
|
u1 := User{ID: 1, Handle: "1", DisplayName: "One"}
|
|
u2 := User{ID: 2, Handle: "b", DisplayName: "Two"}
|
|
|
|
trove := NewTweetTrove()
|
|
trove.Users[u1.ID] = u1
|
|
trove.Users[u2.ID] = u2
|
|
|
|
user_2, ok := trove.FindUserByHandle("B")
|
|
require.True(t, ok)
|
|
assert.Equal(user_2.DisplayName, "Two")
|
|
|
|
_, ok = trove.FindUserByHandle("3")
|
|
assert.False(ok)
|
|
}
|