Merge branch 'sca/631-alias-lookup' of github.com:serra-allgood/dendrite into sca/631-alias-lookup

Signed-off-by: Serra Allgood <serra@allgood.dev>
This commit is contained in:
Serra Allgood 2019-06-02 12:14:17 -07:00
commit eaacecc36d

View file

@ -25,7 +25,7 @@ import (
) )
type MockRoomserverAliasAPIDatabase struct { type MockRoomserverAliasAPIDatabase struct {
methodModes map[string]string mode string
attempts int attempts int
} }
@ -48,7 +48,7 @@ func (db *MockRoomserverAliasAPIDatabase) GetRoomIDForAlias(
ctx context.Context, ctx context.Context,
alias string, alias string,
) (string, error) { ) (string, error) {
switch db.methodModes["GetRoomIDForAlias"] { switch db.mode {
case "empty": case "empty":
return "", nil return "", nil
case "error": case "error":
@ -72,7 +72,7 @@ func (db *MockRoomserverAliasAPIDatabase) GetRoomIDForAlias(
} }
type MockAppServiceQueryAPI struct { type MockAppServiceQueryAPI struct {
methodModes map[string]string mode string
} }
// This method can be noop // This method can be noop
@ -89,7 +89,7 @@ func (q MockAppServiceQueryAPI) RoomAliasExists(
req *appserviceAPI.RoomAliasExistsRequest, req *appserviceAPI.RoomAliasExistsRequest,
resp *appserviceAPI.RoomAliasExistsResponse, resp *appserviceAPI.RoomAliasExistsResponse,
) error { ) error {
switch q.methodModes["RoomAliasExists"] { switch q.mode {
case "error": case "error":
return fmt.Errorf("found an error from RoomAliasExists") return fmt.Errorf("found an error from RoomAliasExists")
case "found": case "found":
@ -116,9 +116,9 @@ func TestGetRoomIDForAlias(t *testing.T) {
&roomserverAPI.GetRoomIDForAliasResponse{}, &roomserverAPI.GetRoomIDForAliasResponse{},
} }
setup := func(modes map[string]string) *RoomserverAliasAPI { setup := func(dbMode, queryMode string) *RoomserverAliasAPI {
mockAliasAPIDB := &MockRoomserverAliasAPIDatabase{modes, 0} mockAliasAPIDB := &MockRoomserverAliasAPIDatabase{dbMode, 0}
mockAppServiceQueryAPI := MockAppServiceQueryAPI{modes} mockAppServiceQueryAPI := MockAppServiceQueryAPI{queryMode}
return &RoomserverAliasAPI{ return &RoomserverAliasAPI{
DB: mockAliasAPIDB, DB: mockAliasAPIDB,
@ -127,10 +127,7 @@ func TestGetRoomIDForAlias(t *testing.T) {
} }
t.Run("Found local alias", func(t *testing.T) { t.Run("Found local alias", func(t *testing.T) {
methodModes := make(map[string]string) aliasAPI := setup("found", "error")
methodModes["GetRoomIDForAlias"] = "found"
methodModes["RoomAliasExists"] = "error"
aliasAPI := setup(methodModes)
err := aliasAPI.GetRoomIDForAlias(args.ctx, args.request, args.response) err := aliasAPI.GetRoomIDForAlias(args.ctx, args.request, args.response)
if err != nil { if err != nil {
@ -143,10 +140,7 @@ func TestGetRoomIDForAlias(t *testing.T) {
}) })
t.Run("found appservice alias", func(t *testing.T) { t.Run("found appservice alias", func(t *testing.T) {
methodModes := make(map[string]string) aliasAPI := setup("emptyFound", "found")
methodModes["GetRoomIDForAlias"] = "emptyFound"
methodModes["RoomAliasExists"] = "found"
aliasAPI := setup(methodModes)
if err := aliasAPI.GetRoomIDForAlias(args.ctx, args.request, args.response); err != nil { if err := aliasAPI.GetRoomIDForAlias(args.ctx, args.request, args.response); err != nil {
t.Fatalf("Got %s; wanted no error", err) t.Fatalf("Got %s; wanted no error", err)
@ -158,9 +152,7 @@ func TestGetRoomIDForAlias(t *testing.T) {
}) })
t.Run("error returned from DB", func(t *testing.T) { t.Run("error returned from DB", func(t *testing.T) {
methodModes := make(map[string]string) aliasAPI := setup("error", "")
methodModes["GetRoomIDForAlias"] = "error"
aliasAPI := setup(methodModes)
err := aliasAPI.GetRoomIDForAlias(args.ctx, args.request, args.response) err := aliasAPI.GetRoomIDForAlias(args.ctx, args.request, args.response)
if err == nil { if err == nil {
@ -171,10 +163,7 @@ func TestGetRoomIDForAlias(t *testing.T) {
}) })
t.Run("error returned from appserviceAPI", func(t *testing.T) { t.Run("error returned from appserviceAPI", func(t *testing.T) {
methodModes := make(map[string]string) aliasAPI := setup("empty", "error")
methodModes["GetRoomIDForAlias"] = "empty"
methodModes["RoomAliasExists"] = "error"
aliasAPI := setup(methodModes)
err := aliasAPI.GetRoomIDForAlias(args.ctx, args.request, args.response) err := aliasAPI.GetRoomIDForAlias(args.ctx, args.request, args.response)
if err == nil { if err == nil {
@ -185,10 +174,7 @@ func TestGetRoomIDForAlias(t *testing.T) {
}) })
t.Run("no errors but no alias", func(t *testing.T) { t.Run("no errors but no alias", func(t *testing.T) {
methodModes := make(map[string]string) aliasAPI := setup("empty", "empty")
methodModes["GetRoomIDForAlias"] = "empty"
methodModes["RoomAliasExists"] = "empty"
aliasAPI := setup(methodModes)
args.response.RoomID = "Should be empty" args.response.RoomID = "Should be empty"
if err := aliasAPI.GetRoomIDForAlias(args.ctx, args.request, args.response); err != nil { if err := aliasAPI.GetRoomIDForAlias(args.ctx, args.request, args.response); err != nil {