func (modelHelperAdapter) FetchAccountGroups(username string) ([]*models.Group, error) { return modelhelper.FetchAccountGroups(username) }
func TestFetchAccountGroups(t *testing.T) { db := modeltesthelper.NewMongoDB(t) defer db.Close() acc1 := createTestAccount(t) defer modelhelper.RemoveAccount(acc1.Id) groups, err := modelhelper.FetchAccountGroups(acc1.Profile.Nickname) if err != mgo.ErrNotFound { t.Fatalf("want err = %v; got %v", mgo.ErrNotFound, err) } if len(groups) != 0 { t.Fatalf("expected len(groups) to be 0, got groups: %+v", groups) } group1, err := createGroup() if err != nil { t.Fatal(err) } if err := modelhelper.AddRelationship(&models.Relationship{ Id: bson.NewObjectId(), TargetId: acc1.Id, TargetName: "JAccount", SourceId: group1.Id, SourceName: "JGroup", As: "member", }); err != nil { t.Error(err) } groups, err = modelhelper.FetchAccountGroups(acc1.Profile.Nickname) if err != nil { t.Fatal(err) } if len(groups) != 1 { t.Fatalf("expected len(groups) to be 1, got groups: %+v", groups) } // test having 2 relationsips in one group group2, err := createGroup() if err != nil { t.Error(err) } if err := modelhelper.AddRelationship(&models.Relationship{ Id: bson.NewObjectId(), TargetId: acc1.Id, TargetName: "JAccount", SourceId: group2.Id, SourceName: "JGroup", As: "admin", }); err != nil { t.Error(err) } if err := modelhelper.AddRelationship(&models.Relationship{ Id: bson.NewObjectId(), TargetId: acc1.Id, TargetName: "JAccount", SourceId: group2.Id, SourceName: "JGroup", As: "member", }); err != nil { t.Fatal(err) } groups, err = modelhelper.FetchAccountGroups(acc1.Profile.Nickname) if err != nil { t.Fatal(err) } if len(groups) != 2 { t.Fatalf("expected len(groups) to be 2, got groups: %+v", groups) } }