From 11cade0e51d7f393946c24b574d9e4f4b197c333 Mon Sep 17 00:00:00 2001 From: Gabriel Simmer Date: Sat, 16 Jul 2022 02:44:32 +0100 Subject: [PATCH] Goimport sort, invite tests --- auth/auth.go | 6 ++- invite/invite.go | 1 + invite/invite_test.go | 72 ++++++++++++++++++++++++++++++++++++ main.go | 4 +- minecraft/minecraft.go | 2 + mocks/invite/invite.go | 1 + mocks/minecraft/minecraft.go | 1 + mocks/store/database.go | 1 + store/database.go | 5 ++- transport/http.go | 6 ++- transport/http_test.go | 6 ++- 11 files changed, 96 insertions(+), 9 deletions(-) create mode 100644 invite/invite_test.go diff --git a/auth/auth.go b/auth/auth.go index 8dda493..f99145d 100644 --- a/auth/auth.go +++ b/auth/auth.go @@ -7,12 +7,14 @@ import ( "encoding/json" "errors" "fmt" - "golang.org/x/oauth2" - "golang.org/x/oauth2/endpoints" "io/ioutil" "net/http" "os" "time" + + "golang.org/x/oauth2" + "golang.org/x/oauth2/endpoints" + "whitelistmanager/store" ) diff --git a/invite/invite.go b/invite/invite.go index 478984f..62f22bf 100644 --- a/invite/invite.go +++ b/invite/invite.go @@ -5,6 +5,7 @@ import ( "database/sql" "errors" "math/big" + "whitelistmanager/store" ) diff --git a/invite/invite_test.go b/invite/invite_test.go new file mode 100644 index 0000000..c414005 --- /dev/null +++ b/invite/invite_test.go @@ -0,0 +1,72 @@ +package invite_test + +import ( + "database/sql" + "testing" + + "github.com/golang/mock/gomock" + + "whitelistmanager/invite" + mock_store "whitelistmanager/mocks/store" + "whitelistmanager/store" +) + +func TestInvite(t *testing.T) { + ctrl := gomock.NewController(t) + st := mock_store.NewMockStorer(ctrl) + inm := invite.NewManager(st) + + user := store.User{Id: "1"} + + server := store.Server{ + Id: "1", + Owner: user, + } + + inv := store.Invite{ + Token: "foo", + Server: server, + Uses: 1, + Unlimited: false, + } + + t.Run("generate invite successfully", func(t *testing.T) { + st.EXPECT().GetServer(server.Id).Return(server, nil) + st.EXPECT().GetInvite(gomock.Any()).Return(store.Invite{}, sql.ErrNoRows) + st.EXPECT().SaveInvite(gomock.Any()).Return(nil) + + token, err := inm.Create(inv, user) + if err != nil { + t.Fatal(err) + } + if token == "" { + t.Errorf("expected non empty string, but got empty string") + } + }) + + t.Run("no logged uses of invite", func(t *testing.T) { + st.EXPECT().InviteLog(inv).Return([]store.InviteLog{}, nil) + uses, err := inm.RemainingUses(inv) + if err != nil { + t.Fatal(err) + } + + if uses != inv.Uses { + t.Errorf("remaining uses is not correctly calculated: got %v want %v", + uses, inv.Uses) + } + }) + + t.Run("one logged use of invite", func(t *testing.T) { + st.EXPECT().InviteLog(inv).Return(make([]store.InviteLog, 1), nil) + uses, err := inm.RemainingUses(inv) + if err != nil { + t.Fatal(err) + } + + if uses != 0 { + t.Errorf("remaining uses is not correctly calculated: got %v want %v", + uses, 0) + } + }) +} diff --git a/main.go b/main.go index c1c67c6..7b12159 100644 --- a/main.go +++ b/main.go @@ -1,9 +1,11 @@ package main import ( - "github.com/alexedwards/flow" "log" "net/http" + + "github.com/alexedwards/flow" + "whitelistmanager/invite" "whitelistmanager/minecraft" "whitelistmanager/store" diff --git a/minecraft/minecraft.go b/minecraft/minecraft.go index 2dd657d..ed21e5d 100644 --- a/minecraft/minecraft.go +++ b/minecraft/minecraft.go @@ -3,7 +3,9 @@ package minecraft import ( "errors" "fmt" + mcrcon "github.com/Kelwing/mc-rcon" + "whitelistmanager/store" ) diff --git a/mocks/invite/invite.go b/mocks/invite/invite.go index cb628d1..a96bed5 100644 --- a/mocks/invite/invite.go +++ b/mocks/invite/invite.go @@ -6,6 +6,7 @@ package mock_invite import ( reflect "reflect" + store "whitelistmanager/store" gomock "github.com/golang/mock/gomock" diff --git a/mocks/minecraft/minecraft.go b/mocks/minecraft/minecraft.go index c3edef5..2f2556c 100644 --- a/mocks/minecraft/minecraft.go +++ b/mocks/minecraft/minecraft.go @@ -6,6 +6,7 @@ package mock_minecraft import ( reflect "reflect" + store "whitelistmanager/store" gomock "github.com/golang/mock/gomock" diff --git a/mocks/store/database.go b/mocks/store/database.go index db42107..f21b362 100644 --- a/mocks/store/database.go +++ b/mocks/store/database.go @@ -6,6 +6,7 @@ package mock_store import ( reflect "reflect" + store "whitelistmanager/store" gomock "github.com/golang/mock/gomock" diff --git a/store/database.go b/store/database.go index 7f06461..38574d6 100644 --- a/store/database.go +++ b/store/database.go @@ -4,11 +4,12 @@ import ( "database/sql" "embed" "errors" - "github.com/google/uuid" - _ "github.com/mattn/go-sqlite3" "log" "os" "time" + + "github.com/google/uuid" + _ "github.com/mattn/go-sqlite3" ) //go:embed database.sql diff --git a/transport/http.go b/transport/http.go index 7921026..3e89b38 100644 --- a/transport/http.go +++ b/transport/http.go @@ -8,10 +8,12 @@ import ( "encoding/json" "errors" "fmt" - "github.com/alexedwards/flow" - "github.com/google/uuid" "log" "net/http" + + "github.com/alexedwards/flow" + "github.com/google/uuid" + "whitelistmanager/auth" "whitelistmanager/invite" "whitelistmanager/minecraft" diff --git a/transport/http_test.go b/transport/http_test.go index b492a4b..c94fcd4 100644 --- a/transport/http_test.go +++ b/transport/http_test.go @@ -6,13 +6,15 @@ import ( "database/sql" "encoding/json" "errors" - "github.com/alexedwards/flow" - "github.com/golang/mock/gomock" "log" "net/http" "net/http/httptest" "testing" "time" + + "github.com/alexedwards/flow" + "github.com/golang/mock/gomock" + "whitelistmanager/invite" mock_invite "whitelistmanager/mocks/invite" mock_minecraft "whitelistmanager/mocks/minecraft"