|
@@ -9,22 +9,18 @@ import (
|
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/assert"
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
-func TestFeedbagStore(t *testing.T) {
|
|
|
|
|
|
|
+const testFile string = "aim_test.db"
|
|
|
|
|
+
|
|
|
|
|
+func TestUserStore(t *testing.T) {
|
|
|
|
|
|
|
|
- const testFile string = "aim_test.db"
|
|
|
|
|
const screenName = "sn2day"
|
|
const screenName = "sn2day"
|
|
|
|
|
|
|
|
defer func() {
|
|
defer func() {
|
|
|
- err := os.Remove(testFile)
|
|
|
|
|
- if err != nil {
|
|
|
|
|
- t.Error("unable to clean up test file")
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ assert.NoError(t, os.Remove(testFile))
|
|
|
}()
|
|
}()
|
|
|
|
|
|
|
|
- f, err := NewSQLiteFeedbagStore(testFile)
|
|
|
|
|
- if err != nil {
|
|
|
|
|
- t.Fatalf("failed to create new feedbag store: %s", err.Error())
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ f, err := NewSQLiteUserStore(testFile)
|
|
|
|
|
+ assert.NoError(t, err)
|
|
|
|
|
|
|
|
itemsIn := []oscar.FeedbagItem{
|
|
itemsIn := []oscar.FeedbagItem{
|
|
|
{
|
|
{
|
|
@@ -41,11 +37,11 @@ func TestFeedbagStore(t *testing.T) {
|
|
|
Name: "Friends",
|
|
Name: "Friends",
|
|
|
},
|
|
},
|
|
|
}
|
|
}
|
|
|
- if err := f.Upsert(screenName, itemsIn); err != nil {
|
|
|
|
|
|
|
+ if err := f.FeedbagUpsert(screenName, itemsIn); err != nil {
|
|
|
t.Fatalf("failed to upsert: %s", err.Error())
|
|
t.Fatalf("failed to upsert: %s", err.Error())
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- itemsOut, err := f.Retrieve(screenName)
|
|
|
|
|
|
|
+ itemsOut, err := f.Feedbag(screenName)
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
t.Fatalf("failed to retrieve: %s", err.Error())
|
|
t.Fatalf("failed to retrieve: %s", err.Error())
|
|
|
}
|
|
}
|
|
@@ -57,20 +53,14 @@ func TestFeedbagStore(t *testing.T) {
|
|
|
|
|
|
|
|
func TestFeedbagDelete(t *testing.T) {
|
|
func TestFeedbagDelete(t *testing.T) {
|
|
|
|
|
|
|
|
- const testFile string = "aim_test.db"
|
|
|
|
|
const screenName = "sn2day"
|
|
const screenName = "sn2day"
|
|
|
|
|
|
|
|
defer func() {
|
|
defer func() {
|
|
|
- err := os.Remove(testFile)
|
|
|
|
|
- if err != nil {
|
|
|
|
|
- t.Error("unable to clean up test file")
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ assert.NoError(t, os.Remove(testFile))
|
|
|
}()
|
|
}()
|
|
|
|
|
|
|
|
- f, err := NewSQLiteFeedbagStore(testFile)
|
|
|
|
|
- if err != nil {
|
|
|
|
|
- t.Fatalf("failed to create new feedbag store: %s", err.Error())
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ f, err := NewSQLiteUserStore(testFile)
|
|
|
|
|
+ assert.NoError(t, err)
|
|
|
|
|
|
|
|
itemsIn := []oscar.FeedbagItem{
|
|
itemsIn := []oscar.FeedbagItem{
|
|
|
{
|
|
{
|
|
@@ -98,15 +88,15 @@ func TestFeedbagDelete(t *testing.T) {
|
|
|
},
|
|
},
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- if err := f.Upsert(screenName, itemsIn); err != nil {
|
|
|
|
|
|
|
+ if err := f.FeedbagUpsert(screenName, itemsIn); err != nil {
|
|
|
t.Fatalf("failed to upsert: %s", err.Error())
|
|
t.Fatalf("failed to upsert: %s", err.Error())
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- if err := f.Delete(screenName, []oscar.FeedbagItem{itemsIn[0]}); err != nil {
|
|
|
|
|
|
|
+ if err := f.FeedbagDelete(screenName, []oscar.FeedbagItem{itemsIn[0]}); err != nil {
|
|
|
t.Fatalf("failed to delete: %s", err.Error())
|
|
t.Fatalf("failed to delete: %s", err.Error())
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- itemsOut, err := f.Retrieve(screenName)
|
|
|
|
|
|
|
+ itemsOut, err := f.Feedbag(screenName)
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
t.Fatalf("failed to retrieve: %s", err.Error())
|
|
t.Fatalf("failed to retrieve: %s", err.Error())
|
|
|
}
|
|
}
|
|
@@ -120,22 +110,16 @@ func TestFeedbagDelete(t *testing.T) {
|
|
|
|
|
|
|
|
func TestLastModifiedEmpty(t *testing.T) {
|
|
func TestLastModifiedEmpty(t *testing.T) {
|
|
|
|
|
|
|
|
- const testFile string = "aim_test.db"
|
|
|
|
|
const screenName = "sn2day"
|
|
const screenName = "sn2day"
|
|
|
|
|
|
|
|
defer func() {
|
|
defer func() {
|
|
|
- err := os.Remove(testFile)
|
|
|
|
|
- if err != nil {
|
|
|
|
|
- t.Error("unable to clean up test file")
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ assert.NoError(t, os.Remove(testFile))
|
|
|
}()
|
|
}()
|
|
|
|
|
|
|
|
- f, err := NewSQLiteFeedbagStore(testFile)
|
|
|
|
|
- if err != nil {
|
|
|
|
|
- t.Fatalf("failed to create new feedbag store: %s", err.Error())
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ f, err := NewSQLiteUserStore(testFile)
|
|
|
|
|
+ assert.NoError(t, err)
|
|
|
|
|
|
|
|
- _, err = f.LastModified(screenName)
|
|
|
|
|
|
|
+ _, err = f.FeedbagLastModified(screenName)
|
|
|
|
|
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
t.Fatalf("get error from last modified: %s", err.Error())
|
|
t.Fatalf("get error from last modified: %s", err.Error())
|
|
@@ -144,20 +128,14 @@ func TestLastModifiedEmpty(t *testing.T) {
|
|
|
|
|
|
|
|
func TestLastModifiedNotEmpty(t *testing.T) {
|
|
func TestLastModifiedNotEmpty(t *testing.T) {
|
|
|
|
|
|
|
|
- const testFile string = "aim_test.db"
|
|
|
|
|
const screenName = "sn2day"
|
|
const screenName = "sn2day"
|
|
|
|
|
|
|
|
defer func() {
|
|
defer func() {
|
|
|
- err := os.Remove(testFile)
|
|
|
|
|
- if err != nil {
|
|
|
|
|
- t.Error("unable to clean up test file")
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ assert.NoError(t, os.Remove(testFile))
|
|
|
}()
|
|
}()
|
|
|
|
|
|
|
|
- f, err := NewSQLiteFeedbagStore(testFile)
|
|
|
|
|
- if err != nil {
|
|
|
|
|
- t.Fatalf("failed to create new feedbag store: %s", err.Error())
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ f, err := NewSQLiteUserStore(testFile)
|
|
|
|
|
+ assert.NoError(t, err)
|
|
|
|
|
|
|
|
itemsIn := []oscar.FeedbagItem{
|
|
itemsIn := []oscar.FeedbagItem{
|
|
|
{
|
|
{
|
|
@@ -167,11 +145,11 @@ func TestLastModifiedNotEmpty(t *testing.T) {
|
|
|
Name: "Friends",
|
|
Name: "Friends",
|
|
|
},
|
|
},
|
|
|
}
|
|
}
|
|
|
- if err := f.Upsert(screenName, itemsIn); err != nil {
|
|
|
|
|
|
|
+ if err := f.FeedbagUpsert(screenName, itemsIn); err != nil {
|
|
|
t.Fatalf("failed to upsert: %s", err.Error())
|
|
t.Fatalf("failed to upsert: %s", err.Error())
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- _, err = f.LastModified(screenName)
|
|
|
|
|
|
|
+ _, err = f.FeedbagLastModified(screenName)
|
|
|
|
|
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
t.Fatalf("get error from last modified: %s", err.Error())
|
|
t.Fatalf("get error from last modified: %s", err.Error())
|
|
@@ -180,29 +158,23 @@ func TestLastModifiedNotEmpty(t *testing.T) {
|
|
|
|
|
|
|
|
func TestProfile(t *testing.T) {
|
|
func TestProfile(t *testing.T) {
|
|
|
|
|
|
|
|
- const testFile string = "aim_test.db"
|
|
|
|
|
const screenName = "sn2day"
|
|
const screenName = "sn2day"
|
|
|
|
|
|
|
|
defer func() {
|
|
defer func() {
|
|
|
- err := os.Remove(testFile)
|
|
|
|
|
- if err != nil {
|
|
|
|
|
- t.Error("unable to clean up test file")
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ assert.NoError(t, os.Remove(testFile))
|
|
|
}()
|
|
}()
|
|
|
|
|
|
|
|
- f, err := NewSQLiteFeedbagStore(testFile)
|
|
|
|
|
- if err != nil {
|
|
|
|
|
- t.Fatalf("failed to create new feedbag store: %s", err.Error())
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ f, err := NewSQLiteUserStore(testFile)
|
|
|
|
|
+ assert.NoError(t, err)
|
|
|
|
|
|
|
|
u := User{
|
|
u := User{
|
|
|
ScreenName: screenName,
|
|
ScreenName: screenName,
|
|
|
}
|
|
}
|
|
|
- if err := f.UpsertUser(u); err != nil {
|
|
|
|
|
|
|
+ if err := f.InsertUser(u); err != nil {
|
|
|
t.Fatalf("failed to upsert new user: %s", err.Error())
|
|
t.Fatalf("failed to upsert new user: %s", err.Error())
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- profile, err := f.RetrieveProfile(screenName)
|
|
|
|
|
|
|
+ profile, err := f.Profile(screenName)
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
t.Fatalf("failed to retrieve profile: %s", err.Error())
|
|
t.Fatalf("failed to retrieve profile: %s", err.Error())
|
|
|
}
|
|
}
|
|
@@ -212,11 +184,11 @@ func TestProfile(t *testing.T) {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
newProfile := "here is my profile"
|
|
newProfile := "here is my profile"
|
|
|
- if err := f.UpsertProfile(screenName, newProfile); err != nil {
|
|
|
|
|
|
|
+ if err := f.SetProfile(screenName, newProfile); err != nil {
|
|
|
t.Fatalf("failed to create new profile: %s", err.Error())
|
|
t.Fatalf("failed to create new profile: %s", err.Error())
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- profile, err = f.RetrieveProfile(screenName)
|
|
|
|
|
|
|
+ profile, err = f.Profile(screenName)
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
t.Fatalf("failed to retrieve profile: %s", err.Error())
|
|
t.Fatalf("failed to retrieve profile: %s", err.Error())
|
|
|
}
|
|
}
|
|
@@ -226,11 +198,11 @@ func TestProfile(t *testing.T) {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
updatedProfile := "here is my profile [updated]"
|
|
updatedProfile := "here is my profile [updated]"
|
|
|
- if err := f.UpsertProfile(screenName, updatedProfile); err != nil {
|
|
|
|
|
|
|
+ if err := f.SetProfile(screenName, updatedProfile); err != nil {
|
|
|
t.Fatalf("failed to create new profile: %s", err.Error())
|
|
t.Fatalf("failed to create new profile: %s", err.Error())
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- profile, err = f.RetrieveProfile(screenName)
|
|
|
|
|
|
|
+ profile, err = f.Profile(screenName)
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
t.Fatalf("failed to retrieve profile: %s", err.Error())
|
|
t.Fatalf("failed to retrieve profile: %s", err.Error())
|
|
|
}
|
|
}
|
|
@@ -242,70 +214,51 @@ func TestProfile(t *testing.T) {
|
|
|
|
|
|
|
|
func TestProfileNonExistent(t *testing.T) {
|
|
func TestProfileNonExistent(t *testing.T) {
|
|
|
|
|
|
|
|
- const testFile string = "aim_test.db"
|
|
|
|
|
const screenName = "sn2day"
|
|
const screenName = "sn2day"
|
|
|
|
|
|
|
|
defer func() {
|
|
defer func() {
|
|
|
- err := os.Remove(testFile)
|
|
|
|
|
- if err != nil {
|
|
|
|
|
- t.Error("unable to clean up test file")
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ assert.NoError(t, os.Remove(testFile))
|
|
|
}()
|
|
}()
|
|
|
|
|
|
|
|
- f, err := NewSQLiteFeedbagStore(testFile)
|
|
|
|
|
- if err != nil {
|
|
|
|
|
- t.Fatalf("failed to create new feedbag store: %s", err.Error())
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ f, err := NewSQLiteUserStore(testFile)
|
|
|
|
|
+ assert.NoError(t, err)
|
|
|
|
|
|
|
|
- prof, err := f.RetrieveProfile(screenName)
|
|
|
|
|
|
|
+ prof, err := f.Profile(screenName)
|
|
|
assert.NoError(t, err)
|
|
assert.NoError(t, err)
|
|
|
assert.Empty(t, prof)
|
|
assert.Empty(t, prof)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
func TestInterestedUsers(t *testing.T) {
|
|
func TestInterestedUsers(t *testing.T) {
|
|
|
- const testFile string = "aim_test.db"
|
|
|
|
|
|
|
|
|
|
defer func() {
|
|
defer func() {
|
|
|
- err := os.Remove(testFile)
|
|
|
|
|
- if err != nil {
|
|
|
|
|
- t.Error("unable to clean up test file")
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ assert.NoError(t, os.Remove(testFile))
|
|
|
}()
|
|
}()
|
|
|
|
|
|
|
|
- f, err := NewSQLiteFeedbagStore(testFile)
|
|
|
|
|
- if err != nil {
|
|
|
|
|
- t.Fatalf("failed to create new feedbag store: %s", err.Error())
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ f, err := NewSQLiteUserStore(testFile)
|
|
|
|
|
+ assert.NoError(t, err)
|
|
|
|
|
|
|
|
f.db.Exec(`INSERT INTO "feedbag" VALUES('userA',0,13852,3,'userB',NULL,1691286176)`)
|
|
f.db.Exec(`INSERT INTO "feedbag" VALUES('userA',0,13852,3,'userB',NULL,1691286176)`)
|
|
|
f.db.Exec(`INSERT INTO "feedbag" VALUES('userA',27631,4016,0,'userB',NULL,1690508233)`)
|
|
f.db.Exec(`INSERT INTO "feedbag" VALUES('userA',27631,4016,0,'userB',NULL,1690508233)`)
|
|
|
f.db.Exec(`INSERT INTO "feedbag" VALUES('userB',28330,8120,0,'userA',NULL,1691180328)`)
|
|
f.db.Exec(`INSERT INTO "feedbag" VALUES('userB',28330,8120,0,'userA',NULL,1691180328)`)
|
|
|
|
|
|
|
|
- users, err := f.InterestedUsers("userA")
|
|
|
|
|
|
|
+ users, err := f.AdjacentUsers("userA")
|
|
|
if len(users) != 0 {
|
|
if len(users) != 0 {
|
|
|
t.Fatalf("expected no interested users, got %v", users)
|
|
t.Fatalf("expected no interested users, got %v", users)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- users, err = f.InterestedUsers("userB")
|
|
|
|
|
|
|
+ users, err = f.AdjacentUsers("userB")
|
|
|
if len(users) != 0 {
|
|
if len(users) != 0 {
|
|
|
t.Fatalf("expected no interested users, got %v", users)
|
|
t.Fatalf("expected no interested users, got %v", users)
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-func TestFeedbagStoreBuddiesBlockedUser(t *testing.T) {
|
|
|
|
|
- const testFile string = "aim_test.db"
|
|
|
|
|
-
|
|
|
|
|
|
|
+func TestUserStoreBuddiesBlockedUser(t *testing.T) {
|
|
|
defer func() {
|
|
defer func() {
|
|
|
- err := os.Remove(testFile)
|
|
|
|
|
- if err != nil {
|
|
|
|
|
- t.Error("unable to clean up test file")
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ assert.NoError(t, os.Remove(testFile))
|
|
|
}()
|
|
}()
|
|
|
|
|
|
|
|
- f, err := NewSQLiteFeedbagStore(testFile)
|
|
|
|
|
- if err != nil {
|
|
|
|
|
- t.Fatalf("failed to create new feedbag store: %s", err.Error())
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ f, err := NewSQLiteUserStore(testFile)
|
|
|
|
|
+ assert.NoError(t, err)
|
|
|
|
|
|
|
|
f.db.Exec(`INSERT INTO "feedbag" VALUES('userA',0,13852,3,'userB',NULL,1691286176)`)
|
|
f.db.Exec(`INSERT INTO "feedbag" VALUES('userA',0,13852,3,'userB',NULL,1691286176)`)
|
|
|
f.db.Exec(`INSERT INTO "feedbag" VALUES('userA',27631,4016,0,'userB',NULL,1690508233)`)
|
|
f.db.Exec(`INSERT INTO "feedbag" VALUES('userA',27631,4016,0,'userB',NULL,1690508233)`)
|
|
@@ -322,20 +275,14 @@ func TestFeedbagStoreBuddiesBlockedUser(t *testing.T) {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-func TestFeedbagStoreBlockedA(t *testing.T) {
|
|
|
|
|
- const testFile string = "aim_test.db"
|
|
|
|
|
|
|
+func TestUserStoreBlockedA(t *testing.T) {
|
|
|
|
|
|
|
|
defer func() {
|
|
defer func() {
|
|
|
- err := os.Remove(testFile)
|
|
|
|
|
- if err != nil {
|
|
|
|
|
- t.Error("unable to clean up test file")
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ assert.NoError(t, os.Remove(testFile))
|
|
|
}()
|
|
}()
|
|
|
|
|
|
|
|
- f, err := NewSQLiteFeedbagStore(testFile)
|
|
|
|
|
- if err != nil {
|
|
|
|
|
- t.Fatalf("failed to create new feedbag store: %s", err.Error())
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ f, err := NewSQLiteUserStore(testFile)
|
|
|
|
|
+ assert.NoError(t, err)
|
|
|
|
|
|
|
|
f.db.Exec(`INSERT INTO "feedbag" VALUES('userA',0,13852,3,'userB',NULL,1691286176)`)
|
|
f.db.Exec(`INSERT INTO "feedbag" VALUES('userA',0,13852,3,'userB',NULL,1691286176)`)
|
|
|
f.db.Exec(`INSERT INTO "feedbag" VALUES('userA',27631,4016,0,'userB',NULL,1690508233)`)
|
|
f.db.Exec(`INSERT INTO "feedbag" VALUES('userA',27631,4016,0,'userB',NULL,1690508233)`)
|
|
@@ -343,7 +290,7 @@ func TestFeedbagStoreBlockedA(t *testing.T) {
|
|
|
|
|
|
|
|
sn1 := "userA"
|
|
sn1 := "userA"
|
|
|
sn2 := "userB"
|
|
sn2 := "userB"
|
|
|
- blocked, err := f.Blocked(sn1, sn2)
|
|
|
|
|
|
|
+ blocked, err := f.BlockedState(sn1, sn2)
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
t.Fatalf("db err: %s", err.Error())
|
|
t.Fatalf("db err: %s", err.Error())
|
|
|
}
|
|
}
|
|
@@ -352,20 +299,13 @@ func TestFeedbagStoreBlockedA(t *testing.T) {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-func TestFeedbagStoreBlockedB(t *testing.T) {
|
|
|
|
|
- const testFile string = "aim_test.db"
|
|
|
|
|
-
|
|
|
|
|
|
|
+func TestUserStoreBlockedB(t *testing.T) {
|
|
|
defer func() {
|
|
defer func() {
|
|
|
- err := os.Remove(testFile)
|
|
|
|
|
- if err != nil {
|
|
|
|
|
- t.Error("unable to clean up test file")
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ assert.NoError(t, os.Remove(testFile))
|
|
|
}()
|
|
}()
|
|
|
|
|
|
|
|
- f, err := NewSQLiteFeedbagStore(testFile)
|
|
|
|
|
- if err != nil {
|
|
|
|
|
- t.Fatalf("failed to create new feedbag store: %s", err.Error())
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ f, err := NewSQLiteUserStore(testFile)
|
|
|
|
|
+ assert.NoError(t, err)
|
|
|
|
|
|
|
|
f.db.Exec(`INSERT INTO "feedbag" VALUES('userB',0,13852,3,'userA',NULL,1691286176)`)
|
|
f.db.Exec(`INSERT INTO "feedbag" VALUES('userB',0,13852,3,'userA',NULL,1691286176)`)
|
|
|
f.db.Exec(`INSERT INTO "feedbag" VALUES('userA',27631,4016,0,'userB',NULL,1690508233)`)
|
|
f.db.Exec(`INSERT INTO "feedbag" VALUES('userA',27631,4016,0,'userB',NULL,1690508233)`)
|
|
@@ -373,7 +313,7 @@ func TestFeedbagStoreBlockedB(t *testing.T) {
|
|
|
|
|
|
|
|
sn1 := "userA"
|
|
sn1 := "userA"
|
|
|
sn2 := "userB"
|
|
sn2 := "userB"
|
|
|
- blocked, err := f.Blocked(sn1, sn2)
|
|
|
|
|
|
|
+ blocked, err := f.BlockedState(sn1, sn2)
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
t.Fatalf("db err: %s", err.Error())
|
|
t.Fatalf("db err: %s", err.Error())
|
|
|
}
|
|
}
|
|
@@ -382,27 +322,20 @@ func TestFeedbagStoreBlockedB(t *testing.T) {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-func TestFeedbagStoreBlockedNoBlocked(t *testing.T) {
|
|
|
|
|
- const testFile string = "aim_test.db"
|
|
|
|
|
-
|
|
|
|
|
|
|
+func TestUserStoreBlockedNoBlocked(t *testing.T) {
|
|
|
defer func() {
|
|
defer func() {
|
|
|
- err := os.Remove(testFile)
|
|
|
|
|
- if err != nil {
|
|
|
|
|
- t.Error("unable to clean up test file")
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ assert.NoError(t, os.Remove(testFile))
|
|
|
}()
|
|
}()
|
|
|
|
|
|
|
|
- f, err := NewSQLiteFeedbagStore(testFile)
|
|
|
|
|
- if err != nil {
|
|
|
|
|
- t.Fatalf("failed to create new feedbag store: %s", err.Error())
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ f, err := NewSQLiteUserStore(testFile)
|
|
|
|
|
+ assert.NoError(t, err)
|
|
|
|
|
|
|
|
f.db.Exec(`INSERT INTO "feedbag" VALUES('userA',27631,4016,0,'userB',NULL,1690508233)`)
|
|
f.db.Exec(`INSERT INTO "feedbag" VALUES('userA',27631,4016,0,'userB',NULL,1690508233)`)
|
|
|
f.db.Exec(`INSERT INTO "feedbag" VALUES('userB',28330,8120,0,'userA',NULL,1691180328)`)
|
|
f.db.Exec(`INSERT INTO "feedbag" VALUES('userB',28330,8120,0,'userA',NULL,1691180328)`)
|
|
|
|
|
|
|
|
sn1 := "userA"
|
|
sn1 := "userA"
|
|
|
sn2 := "userB"
|
|
sn2 := "userB"
|
|
|
- blocked, err := f.Blocked(sn1, sn2)
|
|
|
|
|
|
|
+ blocked, err := f.BlockedState(sn1, sn2)
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
t.Fatalf("db err: %s", err.Error())
|
|
t.Fatalf("db err: %s", err.Error())
|
|
|
}
|
|
}
|
|
@@ -412,19 +345,12 @@ func TestFeedbagStoreBlockedNoBlocked(t *testing.T) {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
func TestGetUser(t *testing.T) {
|
|
func TestGetUser(t *testing.T) {
|
|
|
- const testFile string = "aim_test.db"
|
|
|
|
|
-
|
|
|
|
|
defer func() {
|
|
defer func() {
|
|
|
- err := os.Remove(testFile)
|
|
|
|
|
- if err != nil {
|
|
|
|
|
- t.Error("unable to clean up test file")
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ assert.NoError(t, os.Remove(testFile))
|
|
|
}()
|
|
}()
|
|
|
|
|
|
|
|
- f, err := NewSQLiteFeedbagStore(testFile)
|
|
|
|
|
- if err != nil {
|
|
|
|
|
- t.Fatalf("failed to create new feedbag store: %s", err.Error())
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ f, err := NewSQLiteUserStore(testFile)
|
|
|
|
|
+ assert.NoError(t, err)
|
|
|
|
|
|
|
|
expectUser := &User{
|
|
expectUser := &User{
|
|
|
ScreenName: "testscreenname",
|
|
ScreenName: "testscreenname",
|
|
@@ -437,7 +363,7 @@ func TestGetUser(t *testing.T) {
|
|
|
t.Fatalf("failed to insert user: %s", err.Error())
|
|
t.Fatalf("failed to insert user: %s", err.Error())
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- actualUser, err := f.GetUser(expectUser.ScreenName)
|
|
|
|
|
|
|
+ actualUser, err := f.User(expectUser.ScreenName)
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
t.Fatalf("failed to get user: %s", err.Error())
|
|
t.Fatalf("failed to get user: %s", err.Error())
|
|
|
}
|
|
}
|
|
@@ -448,21 +374,14 @@ func TestGetUser(t *testing.T) {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
func TestGetUserNotFound(t *testing.T) {
|
|
func TestGetUserNotFound(t *testing.T) {
|
|
|
- const testFile string = "aim_test.db"
|
|
|
|
|
-
|
|
|
|
|
defer func() {
|
|
defer func() {
|
|
|
- err := os.Remove(testFile)
|
|
|
|
|
- if err != nil {
|
|
|
|
|
- t.Error("unable to clean up test file")
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ assert.NoError(t, os.Remove(testFile))
|
|
|
}()
|
|
}()
|
|
|
|
|
|
|
|
- f, err := NewSQLiteFeedbagStore(testFile)
|
|
|
|
|
- if err != nil {
|
|
|
|
|
- t.Fatalf("failed to create new feedbag store: %s", err.Error())
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ f, err := NewSQLiteUserStore(testFile)
|
|
|
|
|
+ assert.NoError(t, err)
|
|
|
|
|
|
|
|
- actualUser, err := f.GetUser("testscreenname")
|
|
|
|
|
|
|
+ actualUser, err := f.User("testscreenname")
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
t.Fatalf("failed to get user: %s", err.Error())
|
|
t.Fatalf("failed to get user: %s", err.Error())
|
|
|
}
|
|
}
|
|
@@ -472,12 +391,99 @@ func TestGetUserNotFound(t *testing.T) {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-func TestHashPassword(t *testing.T) {
|
|
|
|
|
- u := &User{
|
|
|
|
|
- AuthKey: "the_auth_key",
|
|
|
|
|
|
|
+func TestSQLiteUserStore_Users(t *testing.T) {
|
|
|
|
|
+ defer func() {
|
|
|
|
|
+ assert.NoError(t, os.Remove(testFile))
|
|
|
|
|
+ }()
|
|
|
|
|
+
|
|
|
|
|
+ f, err := NewSQLiteUserStore(testFile)
|
|
|
|
|
+ if err != nil {
|
|
|
|
|
+ assert.NoError(t, err)
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ want := []User{
|
|
|
|
|
+ {ScreenName: "userA"},
|
|
|
|
|
+ {ScreenName: "userB"},
|
|
|
|
|
+ {ScreenName: "userC"},
|
|
|
}
|
|
}
|
|
|
- if err := u.HashPassword(""); err != nil {
|
|
|
|
|
- t.Fatalf("error hashing password: %s", err.Error())
|
|
|
|
|
|
|
+
|
|
|
|
|
+ for _, u := range want {
|
|
|
|
|
+ err := f.InsertUser(u)
|
|
|
|
|
+ assert.NoError(t, err)
|
|
|
}
|
|
}
|
|
|
- t.Logf("password hash: %s", u.PassHash)
|
|
|
|
|
|
|
+
|
|
|
|
|
+ have, err := f.AllUsers()
|
|
|
|
|
+ assert.NoError(t, err)
|
|
|
|
|
+
|
|
|
|
|
+ assert.Equal(t, want, have)
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func TestSQLiteUserStore_Buddies(t *testing.T) {
|
|
|
|
|
+ defer func() {
|
|
|
|
|
+ assert.NoError(t, os.Remove(testFile))
|
|
|
|
|
+ }()
|
|
|
|
|
+
|
|
|
|
|
+ feedbagStore, err := NewSQLiteUserStore(testFile)
|
|
|
|
|
+ assert.NoError(t, err)
|
|
|
|
|
+
|
|
|
|
|
+ assert.NoError(t, feedbagStore.FeedbagUpsert("userA", []oscar.FeedbagItem{
|
|
|
|
|
+ {Name: "userB", ItemID: 1, ClassID: oscar.FeedbagClassIdBuddy},
|
|
|
|
|
+ {Name: "userC", ItemID: 2, ClassID: oscar.FeedbagClassIdBuddy},
|
|
|
|
|
+ {Name: "userD", ItemID: 3, ClassID: oscar.FeedbagClassIdBuddy},
|
|
|
|
|
+ }))
|
|
|
|
|
+ assert.NoError(t, feedbagStore.FeedbagUpsert("userB", []oscar.FeedbagItem{
|
|
|
|
|
+ {Name: "userA", ItemID: 1, ClassID: oscar.FeedbagClassIdBuddy},
|
|
|
|
|
+ {Name: "userC", ItemID: 2, ClassID: oscar.FeedbagClassIdBuddy},
|
|
|
|
|
+ {Name: "userD", ItemID: 3, ClassID: oscar.FeedbagClassIdBuddy},
|
|
|
|
|
+ }))
|
|
|
|
|
+
|
|
|
|
|
+ want := []string{"userB", "userC", "userD"}
|
|
|
|
|
+ have, err := feedbagStore.Buddies("userA")
|
|
|
|
|
+ assert.NoError(t, err)
|
|
|
|
|
+
|
|
|
|
|
+ assert.Equal(t, want, have)
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func TestNewStubUser(t *testing.T) {
|
|
|
|
|
+ have, err := NewStubUser("userA")
|
|
|
|
|
+ assert.NoError(t, err)
|
|
|
|
|
+
|
|
|
|
|
+ want := User{
|
|
|
|
|
+ ScreenName: "userA",
|
|
|
|
|
+ AuthKey: have.AuthKey,
|
|
|
|
|
+ }
|
|
|
|
|
+ assert.NoError(t, want.HashPassword("welcome1"))
|
|
|
|
|
+
|
|
|
|
|
+ assert.Equal(t, want, have)
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func TestSQLiteUserStore_InterestedUsers(t *testing.T) {
|
|
|
|
|
+ defer func() {
|
|
|
|
|
+ assert.NoError(t, os.Remove(testFile))
|
|
|
|
|
+ }()
|
|
|
|
|
+
|
|
|
|
|
+ feedbagStore, err := NewSQLiteUserStore(testFile)
|
|
|
|
|
+ assert.NoError(t, err)
|
|
|
|
|
+
|
|
|
|
|
+ assert.NoError(t, feedbagStore.FeedbagUpsert("userA", []oscar.FeedbagItem{
|
|
|
|
|
+ {Name: "userB", ItemID: 1, ClassID: oscar.FeedbagClassIdBuddy},
|
|
|
|
|
+ {Name: "userC", ItemID: 2, ClassID: oscar.FeedbagClassIdBuddy},
|
|
|
|
|
+ {Name: "userD", ItemID: 3, ClassID: oscar.FeedbagClassIdBuddy},
|
|
|
|
|
+ }))
|
|
|
|
|
+ assert.NoError(t, feedbagStore.FeedbagUpsert("userB", []oscar.FeedbagItem{
|
|
|
|
|
+ {Name: "userA", ItemID: 1, ClassID: oscar.FeedbagClassIdBuddy},
|
|
|
|
|
+ {Name: "userC", ItemID: 2, ClassID: oscar.FeedbagClassIdBuddy},
|
|
|
|
|
+ {Name: "userD", ItemID: 3, ClassID: oscar.FeedbagClassIdBuddy},
|
|
|
|
|
+ }))
|
|
|
|
|
+ assert.NoError(t, feedbagStore.FeedbagUpsert("userC", []oscar.FeedbagItem{
|
|
|
|
|
+ {Name: "userA", ItemID: 1, ClassID: oscar.FeedbagClassIdBuddy},
|
|
|
|
|
+ {Name: "userB", ItemID: 2, ClassID: oscar.FeedbagClassIdBuddy},
|
|
|
|
|
+ {Name: "userD", ItemID: 3, ClassID: oscar.FeedbagClassIdBuddy},
|
|
|
|
|
+ }))
|
|
|
|
|
+
|
|
|
|
|
+ want := []string{"userB", "userC"}
|
|
|
|
|
+ have, err := feedbagStore.AdjacentUsers("userA")
|
|
|
|
|
+ assert.NoError(t, err)
|
|
|
|
|
+
|
|
|
|
|
+ assert.Equal(t, want, have)
|
|
|
}
|
|
}
|